From 51e873d1b913a21c544b0724a831c5eb7879f185 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Sat, 31 Dec 2011 19:29:13 -0200 Subject: [PATCH] Add test to check kmod_validate_resources --- Makefile.am | 2 ++ test/.gitignore | 1 + test/test-invalidate-config.c | 49 +++++++++++++++++++++++++++++++++++++++++++ test/test.conf | 0 4 files changed, 52 insertions(+) create mode 100644 test/test-invalidate-config.c create mode 100644 test/test.conf diff --git a/Makefile.am b/Makefile.am index 7ea6e58..8024952 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/test/.gitignore b/test/.gitignore index 2b51bce..a71ab5e 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -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 index 0000000..52370c8 --- /dev/null +++ b/test/test-invalidate-config.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +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 index 0000000..e69de29 -- 2.7.4