# HG changeset patch # User Matti Hamalainen # Date 1456224218 -7200 # Node ID b0f9f806c8c90a9c053c9334d7d2f60cc97dd0c7 # Parent 75b22d6f8a71ce657af9c13bb3a35e40c81dd68a Implement NCOUNT() macro for getting array element counts (sizeof(arr) / sizeof(arr[0])) diff -r 75b22d6f8a71 -r b0f9f806c8c9 tests.c --- a/tests.c Tue Feb 23 12:25:05 2016 +0200 +++ b/tests.c Tue Feb 23 12:43:38 2016 +0200 @@ -244,6 +244,9 @@ } +#define NCOUNT(xxx) (sizeof(xxx) / sizeof(xxx[0])) + + #define TEST2(fun, str1, str2, ret) do { \ test_ctx ctx; test_init(&ctx); \ test_start(&ctx, # fun "('%s', '%s')", str1, str2); \ @@ -302,7 +305,7 @@ char *i_fmts[] = { "%", "%05", "%5", "%-5", "%.5", "%5.5", "%05.5", "% ", "% 3", "% 3.2", "%+3", }; char *i_types[] = { "d", "x", "X", "o", }; - for (i1 = 0; i1 < sizeof(i_vals) / sizeof(i_vals[0]); i1++) + for (i1 = 0; i1 < NCOUNT(i_vals); i1++) { snprintf(buf, sizeof(buf), "%d", i_vals[i1]); @@ -320,10 +323,10 @@ double f_vals[] = { 2.02, 612342.234, -2.07, -612342.12, 437692.9876543219, 0x1fff, 0x8000000, }; char *f_fmts[] = { "%f", "%1.1f", "%5.5f", "%5f", "%-5f", "", "%-2.2f", "%05.5f" }; - for (i1 = 0; i1 < sizeof(f_vals) / sizeof(f_vals[0]); i1++) + for (i1 = 0; i1 < NCOUNT(f_vals); i1++) { snprintf(buf, sizeof(buf), "%f", f_vals[i1]); - for (i2 = 0; i2 < sizeof(f_fmts) / sizeof(f_fmts[0]); i2++) + for (i2 = 0; i2 < NCOUNT(f_fmts); i2++) test_snprintf(buf, f_fmts[i2], f_vals[i1]); } } @@ -333,9 +336,9 @@ char *s_vals[] = { "", "XYZXYZ", "xxx yyy zzz ppp fff", NULL, "X", "abcde", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", }; char *s_fmts[] = { "%s", "%2s", "%-2s", "%5s", "%-5s", "%16s", "%-16s", "%1s", "%-1s", "% 2s", "%03s", "% -12s", "% 03s", "%-.15s", "%.8s" }; - for (i1 = 0; i1 < sizeof(s_vals) / sizeof(s_vals[0]); i1++) + for (i1 = 0; i1 < NCOUNT(s_vals); i1++) { - for (i2 = 0; i2 < sizeof(s_fmts) / sizeof(s_fmts[0]); i2++) + for (i2 = 0; i2 < NCOUNT(s_fmts); i2++) test_snprintf(s_vals[i1], s_fmts[i2], s_vals[i1]); } }