chiark / gitweb /
util: add new FOREACH_STRING() macro as syntactic sugar to iterate through a number...
[elogind.git] / src / test / test-util.c
index 1d952ebf1dafd4dea215d07b6d582d2c18f54b76..93929cd9fca7b26c96e1db619af6a1fc912cbd3b 100644 (file)
@@ -656,6 +656,25 @@ static void test_log2i(void) {
         assert_se(log2i(INT_MAX) == sizeof(int)*8-2);
 }
 
+static void test_foreach_string(void) {
+        const char * const t[] = {
+                "foo",
+                "bar",
+                "waldo",
+                NULL
+        };
+        const char *x;
+        unsigned i = 0;
+
+        FOREACH_STRING(x, "foo", "bar", "waldo")
+                assert_se(streq_ptr(t[i++], x));
+
+        assert_se(i == 3);
+
+        FOREACH_STRING(x, "zzz")
+                assert_se(streq(x, "zzz"));
+}
+
 int main(int argc, char *argv[]) {
         log_parse_environment();
         log_open();
@@ -699,6 +718,7 @@ int main(int argc, char *argv[]) {
         test_writing_tmpfile();
         test_hexdump();
         test_log2i();
+        test_foreach_string();
 
         return 0;
 }