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
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
--- /dev/null
+#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;
+}