]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-dns-packet: allow running without arguments
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 Feb 2016 14:18:32 +0000 (09:18 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 13 Feb 2016 01:00:42 +0000 (20:00 -0500)
Makefile.am
src/resolve/test-dns-packet.c

index 4e6a27a77dcce67d05afb8aa3919d9b3a014ead5..754772156cde7fa8526d27670344f3abc4b4a422 100644 (file)
@@ -5309,6 +5309,10 @@ test_dns_packet_SOURCES = \
        src/resolve/test-dns-packet.c \
        $(basic_dns_sources)
 
+test_dns_packet_CPPFLAGS = \
+       $(AM_CPPFLAGS) \
+       -DRESOLVE_TEST_DIR=\"$(abs_top_srcdir)/src/resolve/test-data\"
+
 test_dns_packet_LDADD = \
        libshared.la
 
index d8a5d9bbef4dd2c9482104aac1f3d188f3523ac4..1abbd3fa2e0f7f22f06bfe871c4b397a416258da 100644 (file)
 ***/
 
 #include <net/if.h>
+#include <glob.h>
 
 #include "alloc-util.h"
 #include "fileio.h"
-#include "macro.h"
+#include "glob-util.h"
 #include "log.h"
+#include "macro.h"
 #include "resolved-dns-packet.h"
 #include "resolved-dns-rr.h"
 #include "string-util.h"
+#include "strv.h"
 
 #define HASH_KEY SD_ID128_MAKE(d3,1e,48,90,4b,fa,4c,fe,af,9d,d5,a1,d7,2e,8a,b1)
 
@@ -84,15 +87,27 @@ static void test_packet_from_file(const char* filename, bool canonical) {
 }
 
 int main(int argc, char **argv) {
-        int i;
+        int i, N;
+        _cleanup_globfree_ glob_t g = {};
+        _cleanup_strv_free_ char **globs = NULL;
+        char **fnames;
 
         log_parse_environment();
 
-        for (i = 1; i < argc; i++) {
-                test_packet_from_file(argv[i], false);
+        if (argc >= 2) {
+                N = argc - 1;
+                fnames = argv + 1;
+        } else {
+                assert_se(glob(RESOLVE_TEST_DIR "/*.pkts", GLOB_NOSORT, NULL, &g) == 0);
+                N = g.gl_pathc;
+                fnames = g.gl_pathv;
+        }
+
+        for (i = 0; i < N; i++) {
+                test_packet_from_file(fnames[i], false);
                 puts("");
-                test_packet_from_file(argv[i], true);
-                if (i + 1 < argc)
+                test_packet_from_file(fnames[i], true);
+                if (i + 1 < N)
                         puts("");
         }