kmod/testsuite/test-new-module.c
Lucas De Marchi b5a2cd070d Use SPDX header for license
Drop the lengthy license from each file and just use SPDX like most
projects nowadays. This doesn't have any change to license, just how
they are recorded in each file.

This follows the kernel approach: header files use '/*' for comments
while .c files use '//'. For .m4, use "#".

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://lore.kernel.org/r/20240723185921.1005569-2-lucas.de.marchi@gmail.com
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2024-07-26 13:41:56 -05:00

107 lines
2.1 KiB
C

// SPDX-License-Identifier: LGPL-2.1-or-later
/*
* Copyright (C) 2012-2013 ProFUSION embedded systems
*/
#include <errno.h>
#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 from_name(const struct test *t)
{
static const char *const modnames[] = {
"ext4",
"balbalbalbbalbalbalbalbalbalbal",
"snd-hda-intel",
"snd-timer",
"iTCO_wdt",
NULL,
};
const char *const *p;
struct kmod_ctx *ctx;
struct kmod_module *mod;
const char *null_config = NULL;
int err;
ctx = kmod_new(NULL, &null_config);
if (ctx == NULL)
exit(EXIT_FAILURE);
for (p = modnames; p != NULL; p++) {
err = kmod_module_new_from_name(ctx, *p, &mod);
if (err < 0)
exit(EXIT_SUCCESS);
printf("modname: %s\n", kmod_module_get_name(mod));
kmod_module_unref(mod);
}
kmod_unref(ctx);
return EXIT_SUCCESS;
}
DEFINE_TEST(from_name,
.description = "check if module names are parsed correctly",
.config = {
[TC_ROOTFS] = TESTSUITE_ROOTFS "test-new-module/from_name/",
},
.need_spawn = true,
.output = {
.out = TESTSUITE_ROOTFS "test-new-module/from_name/correct.txt",
});
static int from_alias(const struct test *t)
{
static const char *const modnames[] = {
"ext4.*",
NULL,
};
const char *const *p;
struct kmod_ctx *ctx;
int err;
ctx = kmod_new(NULL, NULL);
if (ctx == NULL)
exit(EXIT_FAILURE);
for (p = modnames; p != NULL; p++) {
struct kmod_list *l, *list = NULL;
err = kmod_module_new_from_lookup(ctx, *p, &list);
if (err < 0)
exit(EXIT_SUCCESS);
kmod_list_foreach(l, list) {
struct kmod_module *m;
m = kmod_module_get_module(l);
printf("modname: %s\n", kmod_module_get_name(m));
kmod_module_unref(m);
}
kmod_module_unref_list(list);
}
kmod_unref(ctx);
return EXIT_SUCCESS;
}
DEFINE_TEST(from_alias,
.description = "check if aliases are parsed correctly",
.config = {
[TC_ROOTFS] = TESTSUITE_ROOTFS "test-new-module/from_alias/",
},
.need_spawn = true,
.output = {
.out = TESTSUITE_ROOTFS "test-new-module/from_alias/correct.txt",
});
TESTSUITE_MAIN();