["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko"
["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko"
["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko"
- ["test-weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
- ["test-weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
- ["test-weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
- ["test-weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-weakdep.ko"]="mod-weakdep.ko"
+ ["test-libkmod/weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
+ ["test-libkmod/weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
+ ["test-libkmod/weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
+ ["test-libkmod/weakdep$MODULE_DIRECTORY/4.4.4/kernel/mod-weakdep.ko"]="mod-weakdep.ko"
["test-libkmod/softdep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-a.ko"]="mod-foo-a.ko"
["test-libkmod/softdep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-b.ko"]="mod-foo-b.ko"
["test-libkmod/softdep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-c.ko"]="mod-foo-c.ko"
'test-modprobe',
'test-shared',
'test-testsuite',
- 'test-weakdep',
]
if get_option('b_sanitize') != 'none'
// SPDX-License-Identifier: LGPL-2.1-or-later
/*
+ * Copyright Red Hat
* Copyright (C) 2011-2013 ProFUSION embedded systems
* Copyright (C) 2015 Intel Corporation. All rights reserved.
* Copyright © 2025 Intel Corporation
[TC_ROOTFS] = TESTSUITE_ROOTFS "test-libkmod/softdep/",
});
+static int test_weakdep(void)
+{
+ static const char *const mod_name[] = {
+ "mod-loop-b",
+ "mod-weakdep",
+ };
+ struct kmod_ctx *ctx;
+ int err;
+
+ ctx = kmod_new(NULL, NULL);
+ TS_ASSERT(ctx != NULL);
+
+ for (size_t i = 0; i < ARRAY_SIZE(mod_name); i++) {
+ struct kmod_list *list = NULL;
+ struct kmod_module *mod = NULL;
+ struct kmod_list *mod_list = NULL;
+ struct kmod_list *itr = NULL;
+
+ printf("%s:", mod_name[i]);
+ err = kmod_module_new_from_lookup(ctx, mod_name[i], &list);
+ TS_ASSERT(list != NULL && err == 0);
+
+ mod = kmod_module_get_module(list);
+
+ err = kmod_module_get_weakdeps(mod, &mod_list);
+ TS_ASSERT(err == 0);
+
+ kmod_list_foreach(itr, mod_list) {
+ struct kmod_module *weakdep_mod = kmod_module_get_module(itr);
+ const char *weakdep_name = kmod_module_get_name(weakdep_mod);
+
+ printf(" %s", weakdep_name);
+ kmod_module_unref(weakdep_mod);
+ }
+ printf("\n");
+
+ kmod_module_unref_list(mod_list);
+ kmod_module_unref(mod);
+ kmod_module_unref_list(list);
+ }
+
+ kmod_unref(ctx);
+
+ return 0;
+}
+DEFINE_TEST(test_weakdep,
+ .description = "check if libkmod breaks weakdep",
+ .config = {
+ [TC_UNAME_R] = "4.4.4",
+ [TC_ROOTFS] = TESTSUITE_ROOTFS "test-libkmod/weakdep",
+ [TC_INIT_MODULE_RETCODES] = "",
+ },
+ .output = {
+ .out = TESTSUITE_ROOTFS "test-libkmod/weakdep/correct.txt",
+ });
+
TESTSUITE_MAIN();
+++ /dev/null
-// SPDX-License-Identifier: LGPL-2.1-or-later
-/*
- * Copyright Red Hat
- */
-
-#include <inttypes.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <libkmod/libkmod.h>
-
-#include "testsuite.h"
-
-static int test_weakdep(void)
-{
- static const char *const mod_name[] = {
- "mod-loop-b",
- "mod-weakdep",
- };
- struct kmod_ctx *ctx;
- int err;
-
- ctx = kmod_new(NULL, NULL);
- TS_ASSERT(ctx != NULL);
-
- for (size_t i = 0; i < ARRAY_SIZE(mod_name); i++) {
- struct kmod_list *list = NULL;
- struct kmod_module *mod = NULL;
- struct kmod_list *mod_list = NULL;
- struct kmod_list *itr = NULL;
-
- printf("%s:", mod_name[i]);
- err = kmod_module_new_from_lookup(ctx, mod_name[i], &list);
- TS_ASSERT(list != NULL && err == 0);
-
- mod = kmod_module_get_module(list);
-
- err = kmod_module_get_weakdeps(mod, &mod_list);
- TS_ASSERT(err == 0);
-
- kmod_list_foreach(itr, mod_list) {
- struct kmod_module *weakdep_mod = kmod_module_get_module(itr);
- const char *weakdep_name = kmod_module_get_name(weakdep_mod);
-
- printf(" %s", weakdep_name);
- kmod_module_unref(weakdep_mod);
- }
- printf("\n");
-
- kmod_module_unref_list(mod_list);
- kmod_module_unref(mod);
- kmod_module_unref_list(list);
- }
-
- kmod_unref(ctx);
-
- return 0;
-}
-DEFINE_TEST(test_weakdep,
- .description = "check if libkmod breaks weakdep",
- .config = {
- [TC_UNAME_R] = "4.4.4",
- [TC_ROOTFS] = TESTSUITE_ROOTFS "test-weakdep",
- [TC_INIT_MODULE_RETCODES] = "",
- },
- .output = {
- .out = TESTSUITE_ROOTFS "test-weakdep/correct-weakdep.txt",
- });
-
-TESTSUITE_MAIN();