- snprintf(buf, sizeof buf, "%d", 12345);
- assert(strcmp(buf, "12345") == 0);
+#define TEST(FMT, VALUE, EXPECT) do { \
+ snprintf(buf, sizeof buf, FMT, VALUE); \
+ assert(strcmp(buf, EXPECT) == 0); \
+ } while (0)
+
+ TEST("%d", 12345, "12345");
+ TEST("%ld", 123456789L, "123456789");
+ TEST("%ld", -12345678L, "-12345678");
+ TEST("%lu", 4294967295UL, "4294967295");
+ TEST("%hd", -12345, "-12345");
+ TEST("%hu", 65535U, "65535");