static const char *const names[] = { "pcspkr", "pcspkr2", "floppy", "ext4" };
ctx = kmod_new(NULL, NULL);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
for (size_t i = 0; i < ARRAY_SIZE(names); i++) {
err = kmod_module_new_from_name(ctx, names[i], &mod);
- if (err < 0)
- goto fail_lookup;
+ TS_ASSERT(err == 0);
list = kmod_list_append(list, mod);
}
err = kmod_module_apply_filter(ctx, KMOD_FILTER_BLACKLIST, list, &filtered);
- if (err < 0) {
- ERR("Could not filter: %s\n", strerror(-err));
- goto fail;
- }
- if (filtered == NULL) {
- ERR("All modules were filtered out!\n");
- goto fail;
- }
+ TS_ASSERT(err == 0);
+ TS_ASSERT(filtered != NULL);
kmod_list_foreach(l, filtered) {
const char *modname;
mod = kmod_module_get_module(l);
modname = kmod_module_get_name(mod);
- if (streq("pcspkr", modname) || streq("floppy", modname))
- goto fail;
+ TS_ASSERT(!streq("pcspkr", modname) && !streq("floppy", modname));
len++;
kmod_module_unref(mod);
}
- if (len != 2)
- goto fail;
+ TS_ASSERT(len == 2);
kmod_module_unref_list(filtered);
kmod_module_unref_list(list);
kmod_unref(ctx);
return EXIT_SUCCESS;
-
-fail:
- kmod_module_unref_list(list);
-fail_lookup:
- kmod_unref(ctx);
- return EXIT_FAILURE;
}
DEFINE_TEST(blacklist_1, .description = "check if modules are correctly blacklisted",
int fooa = 0, foob = 0, fooc = 0;
ctx = kmod_new(NULL, NULL);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_name(ctx, "mod-foo", &mod);
- if (err < 0 || mod == NULL) {
- kmod_unref(ctx);
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0 && mod != NULL);
list = kmod_module_get_dependencies(mod);
}
/* fooa, foob, fooc */
- if (len != 3 || !fooa || !foob || !fooc)
- return EXIT_FAILURE;
+ TS_ASSERT(len == 3 && fooa && foob && fooc);
kmod_module_unref_list(list);
kmod_module_unref(mod);
int err;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
kmod_set_log_priority(ctx, 7);
err = kmod_load_resources(ctx);
- if (err != 0) {
- ERR("could not load libkmod resources: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
kmod_unref(ctx);
const char *null_config = NULL;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
kmod_unref(ctx);
int err;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_path(ctx, "/mod-simple.ko", &mod);
- if (err != 0) {
- ERR("could not create module from path: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_insert_module(mod, 0, NULL);
- if (err != 0) {
- ERR("could not insert module: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
+
kmod_module_unref(mod);
kmod_unref(ctx);
int err;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_name(ctx, "mod-simple", &mod_simple);
- if (err != 0) {
- ERR("could not create module from name: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_new_from_name(ctx, "bla", &mod_bla);
- if (err != 0) {
- ERR("could not create module from name: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_remove_module(mod_simple, 0);
- if (err != 0) {
- ERR("could not remove module: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_remove_module(mod_bla, 0);
- if (err != -ENOENT) {
- ERR("wrong return code for failure test: %d\n", err);
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == -ENOENT);
kmod_module_unref(mod_bla);
kmod_module_unref(mod_simple);
int err, r;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_lookup(ctx, "fake-builtin", &list);
- if (err < 0) {
- ERR("could not create module from lookup: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
-
- if (!list) {
- ERR("could not create module from lookup: module not found: fake-builtin\n");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
+ TS_ASSERT(list != NULL);
mod = kmod_module_get_module(list);
r = kmod_module_get_initstate(mod);
- if (r != KMOD_MODULE_BUILTIN) {
- ERR("module should have builtin state but is: %s\n",
- kmod_module_initstate_str(r));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(r == KMOD_MODULE_BUILTIN);
kmod_module_unref(mod);
kmod_module_unref_list(list);
int err, r;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_name(ctx, "fake-builtin", &mod);
- if (err != 0) {
- ERR("could not create module from lookup: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
-
- if (!mod) {
- ERR("could not create module from lookup: module not found: fake-builtin\n");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
+ TS_ASSERT(mod != NULL);
r = kmod_module_get_initstate(mod);
- if (r != KMOD_MODULE_BUILTIN) {
- ERR("module should have builtin state but is: %s\n",
- kmod_module_initstate_str(r));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(r == KMOD_MODULE_BUILTIN);
kmod_module_unref(mod);
kmod_unref(ctx);
int err;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_loaded(ctx, &list);
- if (err < 0) {
- fprintf(stderr, "%s\n", strerror(-err));
- kmod_unref(ctx);
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
printf("Module Size Used by\n");
static int modprobe_module_from_relpath(void)
{
- if (chdir("/home/foo") != 0) {
- perror("failed to change into /home/foo");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(chdir("/home/foo") == 0);
return EXEC_TOOL(modprobe, "./mod-simple.ko");
}
const struct kmod_list *itr;
bool visited[MAX_SOFTDEP_N] = {};
int mod_index;
- bool all_loaded = true;
kmod_list_foreach(itr, mod_list) {
struct kmod_module *softdep_mod = kmod_module_get_module(itr);
for (mod_index = 0; mod_index < MAX_SOFTDEP_N; mod_index++) {
if (!modnames[mod_index])
break;
- if (!visited[mod_index]) {
- ERR("softdep %s not loaded\n", modnames[mod_index]);
- all_loaded = false;
- }
+ TS_ASSERT(visited[mod_index]);
}
- if (all_loaded)
- return 0;
- else
- return -1;
+ return 0;
}
static int multi_softdep(void)
int err;
ctx = kmod_new(NULL, NULL);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
for (mod_index = 0; mod_index < ARRAY_SIZE(test_modules); mod_index++) {
modname = test_modules[mod_index].modname;
printf("module %s:\n", modname);
err = kmod_module_new_from_name(ctx, modname, &mod);
- if (err < 0)
- goto fail;
+ TS_ASSERT(err == 0);
+
pre = NULL;
post = NULL;
err = kmod_module_get_softdeps(mod, &pre, &post);
- if (err < 0) {
- ERR("could not get softdeps of '%s': %s\n", modname,
- strerror(-err));
- goto fail;
- }
+ TS_ASSERT(err == 0);
printf("pre: ");
err = check_dependencies(test_modules[mod_index].pre, pre);
- if (err < 0)
- goto fail;
+ TS_ASSERT(err == 0);
+
printf("post: ");
err = check_dependencies(test_modules[mod_index].post, post);
- if (err < 0)
- goto fail;
+ TS_ASSERT(err == 0);
kmod_module_unref_list(pre);
kmod_module_unref_list(post);
}
kmod_unref(ctx);
return EXIT_SUCCESS;
-
-fail:
- kmod_module_unref_list(pre);
- kmod_module_unref_list(post);
- kmod_module_unref(mod);
- kmod_unref(ctx);
- return EXIT_FAILURE;
}
/*
int err;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
for (size_t i = 0; i < ARRAY_SIZE(modnames); i++) {
err = kmod_module_new_from_name(ctx, modnames[i], &mod);
- if (err < 0)
- return EXIT_FAILURE;
+ TS_ASSERT(err == 0);
printf("modname: %s\n", kmod_module_get_name(mod));
kmod_module_unref(mod);
int err;
ctx = kmod_new(NULL, NULL);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
for (size_t i = 0; i < ARRAY_SIZE(modnames); i++) {
struct kmod_list *l, *list = NULL;
err = kmod_module_new_from_lookup(ctx, modnames[i], &list);
- if (err < 0)
- return EXIT_FAILURE;
+ TS_ASSERT(err == 0);
kmod_list_foreach(l, list) {
struct kmod_module *m;
struct stat st;
ctx = kmod_new(NULL, &null_config);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
err = kmod_module_new_from_path(ctx, "/mod-simple.ko", &mod);
- if (err != 0) {
- ERR("could not create module from path: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_insert_module(mod, 0, NULL);
- if (err != 0) {
- ERR("could not insert module: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
err = kmod_module_remove_module(mod, 0);
- if (err != 0) {
- ERR("could not remove module: %s\n", strerror(-err));
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
+
+ TS_ASSERT(stat("/sys/module/mod_simple", &st) != 0 || !S_ISDIR(st.st_mode));
- if (stat("/sys/module/mod_simple", &st) == 0 && S_ISDIR(st.st_mode)) {
- ERR("could not remove module directory.\n");
- return EXIT_FAILURE;
- }
kmod_module_unref(mod);
kmod_unref(ctx);
struct utsname u;
int err = uname(&u);
- if (err < 0)
- return EXIT_FAILURE;
-
- if (!streq(u.release, TEST_UNAME)) {
- const char *ldpreload = getenv("LD_PRELOAD");
- ERR("u.release=%s should be %s\n", u.release, TEST_UNAME);
- ERR("LD_PRELOAD=%s\n", ldpreload);
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
+
+ TS_ASSERT(streq(u.release, TEST_UNAME));
return EXIT_SUCCESS;
}
int n;
fp = fopen(MODULE_DIRECTORY "/a", "r");
- if (fp == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(fp != NULL);
n = fscanf(fp, "%s", s);
- if (n != 1)
- return EXIT_FAILURE;
+ TS_ASSERT(n == 1);
- if (!streq(s, "kmod-test-chroot-works"))
- return EXIT_FAILURE;
+ TS_ASSERT(streq(s, "kmod-test-chroot-works"));
return EXIT_SUCCESS;
}
int fd, done;
fd = open(MODULE_DIRECTORY "/a", O_RDONLY);
- if (fd < 0)
- return EXIT_FAILURE;
+ TS_ASSERT(fd >= 0);
for (done = 0;;) {
int r = read(fd, buf + done, sizeof(buf) - 1 - done);
buf[done] = '\0';
- if (!streq(buf, "kmod-test-chroot-works\n"))
- return EXIT_FAILURE;
+ TS_ASSERT(streq(buf, "kmod-test-chroot-works\n"));
return EXIT_SUCCESS;
}
{
struct stat st;
- if (stat(MODULE_DIRECTORY "/a", &st) < 0) {
- ERR("stat failed: %m\n");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(stat(MODULE_DIRECTORY "/a", &st) == 0);
return EXIT_SUCCESS;
}
DIR *d;
d = opendir("/testdir");
- if (d == NULL) {
- ERR("opendir failed: %m\n");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(d != NULL);
closedir(d);
return EXIT_SUCCESS;
{
FILE *fp = fopen("/freadline_wrapped-input.txt", "re");
- if (!fp)
- return EXIT_FAILURE;
+ TS_ASSERT(fp != NULL);
while (!feof(fp) && !ferror(fp)) {
unsigned int num = 0;
int err;
ctx = kmod_new(NULL, NULL);
- if (ctx == NULL)
- return EXIT_FAILURE;
+ TS_ASSERT(ctx != NULL);
for (size_t i = 0; i < ARRAY_SIZE(mod_name); i++) {
struct kmod_list *list = NULL;
printf("%s:", mod_name[i]);
err = kmod_module_new_from_lookup(ctx, mod_name[i], &list);
- if (list == NULL || err < 0) {
- fprintf(stderr, "module %s not found in directory %s\n",
- mod_name[i], ctx ? kmod_get_dirname(ctx) : "(missing)");
- return EXIT_FAILURE;
- }
+ TS_ASSERT(list != NULL && err == 0);
mod = kmod_module_get_module(list);
err = kmod_module_get_weakdeps(mod, &mod_list);
- if (err) {
- fprintf(stderr, "weak dependencies can not be read for %s (%d)\n",
- mod_name[i], err);
- return EXIT_FAILURE;
- }
+ TS_ASSERT(err == 0);
kmod_list_foreach(itr, mod_list) {
struct kmod_module *weakdep_mod = kmod_module_get_module(itr);