]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Add test to check kmod_validate_resources
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Sat, 31 Dec 2011 21:29:13 +0000 (19:29 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Sun, 1 Jan 2012 08:18:16 +0000 (06:18 -0200)
Makefile.am
test/.gitignore
test/test-invalidate-config.c [new file with mode: 0644]
test/test.conf [new file with mode: 0644]

index 7ea6e58af260d2297ccd686fbe0b9857af0503fc..8024952c85b487c066b65dc29da828a088f1ec55 100644 (file)
@@ -129,6 +129,7 @@ noinst_PROGRAMS = test/test-insmod test/test-rmmod test/test-rmmod2 \
                  test/test-lookup test/test-path-from-name \
                  test/test-get-dependencies test/test-mod-double-ref \
                  test/test-blacklist test/test-elf test/test-probe \
+                 test/test-invalidate-config
                  $(check_PROGRAMS)
 
 test_test_rmmod_LDADD = libkmod/libkmod.la
@@ -141,3 +142,4 @@ test_test_mod_double_ref_LDADD = libkmod/libkmod.la
 test_test_blacklist_LDADD = libkmod/libkmod.la
 test_test_elf_LDADD = libkmod/libkmod.la
 test_test_probe_LDADD = libkmod/libkmod.la
+test_test_invalidate_config_LDADD = libkmod/libkmod.la
index 2b51bcee40da8d12ca8401a5db6c91a76322048f..a71ab5e3edbedd142f5b7583f5323326ab4d8e3d 100644 (file)
@@ -11,3 +11,4 @@ test-mod-double-ref
 test-blacklist
 test-elf
 test-probe
+test-invalidate-config
diff --git a/test/test-invalidate-config.c b/test/test-invalidate-config.c
new file mode 100644 (file)
index 0000000..52370c8
--- /dev/null
@@ -0,0 +1,49 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <errno.h>
+#include <unistd.h>
+#include <inttypes.h>
+#include <string.h>
+#include <libkmod.h>
+
+static const char *config[] = {
+       NULL,
+       NULL,
+};
+
+int main(int argc, char *argv[])
+{
+       struct kmod_ctx *ctx;
+       int r;
+       char cmd[4096];
+
+       if (argc < 2) {
+               fprintf(stderr, "Provide a path to config\n");
+               return EXIT_FAILURE;
+       }
+
+       config[0] = argv[1];
+
+       ctx = kmod_new(NULL, config);
+       if (ctx == NULL)
+               exit(EXIT_FAILURE);
+
+       r = kmod_validate_resources(ctx);
+       if (r != KMOD_RESOURCES_OK) {
+               fprintf(stderr, "ERR: return should be 'resources ok'\n");
+               return EXIT_FAILURE;
+       }
+
+       snprintf(cmd, sizeof(cmd), "touch %s", config[0]);
+       system(cmd);
+       r = kmod_validate_resources(ctx);
+       if (r != KMOD_RESOURCES_MUST_RECREATE) {
+               fprintf(stderr, "ERR: return should be 'must recreate'\n");
+               return EXIT_FAILURE;
+       }
+
+       kmod_unref(ctx);
+
+       return EXIT_SUCCESS;
+}
diff --git a/test/test.conf b/test/test.conf
new file mode 100644 (file)
index 0000000..e69de29