changeset 327:b0f9f806c8c9

Implement NCOUNT() macro for getting array element counts (sizeof(arr) / sizeof(arr[0]))
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 23 Feb 2016 12:43:38 +0200
parents 75b22d6f8a71
children 0146aa9a9524
files tests.c
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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]);
         }
     }