mirror of
https://github.com/AuxXxilium/kmod.git
synced 2025-01-13 15:36:36 +07:00
Remove test directory
All tests should be in testsuite. The remaining tests in this directory are not relevant enough to be ported. git log can be consulted if in future we decide to put them in testsuite.
This commit is contained in:
parent
8447b865aa
commit
85734b2446
@ -1,3 +0,0 @@
|
||||
Don't add new tests here. They are not built anymore on purpose and are being
|
||||
slowly migrated to testsuite dir. See testsuite/README in order to add new test
|
||||
cases.
|
106
test/test-elf.c
106
test/test-elf.c
@ -1,106 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
#include <getopt.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct kmod_ctx *ctx;
|
||||
struct kmod_module *mod;
|
||||
struct kmod_list *list, *l;
|
||||
int err;
|
||||
|
||||
printf("libkmod version %s\n", VERSION);
|
||||
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "Usage:\n\t%s <module-path.ko>\n", argv[0]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
ctx = kmod_new(NULL, NULL);
|
||||
if (ctx == NULL)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
err = kmod_module_new_from_path(ctx, argv[1], &mod);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "ERROR: could not load %s: %s\n",
|
||||
argv[1], strerror(-errno));
|
||||
goto module_error;
|
||||
}
|
||||
|
||||
list = NULL;
|
||||
err = kmod_module_get_info(mod, &list);
|
||||
if (err <= 0)
|
||||
printf("no information! (%s)\n", strerror(-err));
|
||||
else {
|
||||
puts("info:");
|
||||
kmod_list_foreach(l, list) {
|
||||
const char *key, *val;
|
||||
key = kmod_module_info_get_key(l);
|
||||
val = kmod_module_info_get_value(l);
|
||||
printf("\t%s: %s\n", key, val ? val : "");
|
||||
}
|
||||
kmod_module_info_free_list(list);
|
||||
}
|
||||
|
||||
list = NULL;
|
||||
err = kmod_module_get_versions(mod, &list);
|
||||
if (err <= 0)
|
||||
printf("no modversions! (%s)\n", strerror(-err));
|
||||
else {
|
||||
puts("modversions:");
|
||||
kmod_list_foreach(l, list) {
|
||||
const char *symbol;
|
||||
uint64_t crc;
|
||||
symbol = kmod_module_version_get_symbol(l);
|
||||
crc = kmod_module_version_get_crc(l);
|
||||
printf("\t%s: %#"PRIx64"\n", symbol, crc);
|
||||
}
|
||||
kmod_module_versions_free_list(list);
|
||||
}
|
||||
|
||||
list = NULL;
|
||||
err = kmod_module_get_symbols(mod, &list);
|
||||
if (err <= 0)
|
||||
printf("no symbols! (%s)\n", strerror(-err));
|
||||
else {
|
||||
puts("symbols:");
|
||||
kmod_list_foreach(l, list) {
|
||||
const char *symbol;
|
||||
uint64_t crc;
|
||||
symbol = kmod_module_symbol_get_symbol(l);
|
||||
crc = kmod_module_symbol_get_crc(l);
|
||||
printf("\t%s: %#"PRIx64"\n", symbol, crc);
|
||||
}
|
||||
kmod_module_symbols_free_list(list);
|
||||
}
|
||||
|
||||
list = NULL;
|
||||
err = kmod_module_get_dependency_symbols(mod, &list);
|
||||
if (err <= 0)
|
||||
printf("no dependency symbols! (%s)\n", strerror(-err));
|
||||
else {
|
||||
puts("dependency symbols:");
|
||||
kmod_list_foreach(l, list) {
|
||||
const char *symbol;
|
||||
uint8_t bind;
|
||||
uint64_t crc;
|
||||
symbol = kmod_module_dependency_symbol_get_symbol(l);
|
||||
bind = kmod_module_dependency_symbol_get_bind(l);
|
||||
crc = kmod_module_dependency_symbol_get_crc(l);
|
||||
printf("\t%s %c: %#"PRIx64"\n", symbol, bind, crc);
|
||||
}
|
||||
kmod_module_dependency_symbols_free_list(list);
|
||||
}
|
||||
|
||||
kmod_module_unref(mod);
|
||||
module_error:
|
||||
kmod_unref(ctx);
|
||||
|
||||
return (err < 0) ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
#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;
|
||||
}
|
@ -1,184 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
#include <getopt.h>
|
||||
|
||||
static const char cmdoptions_short[] = "lh";
|
||||
static const struct option cmdoptions[] = {
|
||||
{"load-resources", no_argument, 0, 'l'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
static void help(const char *progname)
|
||||
{
|
||||
const struct option *itr_opt;
|
||||
const char *itr_short;
|
||||
printf("Usage:\n"
|
||||
"\t%s [options] <name-to-lookup>\n"
|
||||
"Options:\n",
|
||||
progname);
|
||||
for (itr_opt = cmdoptions, itr_short = cmdoptions_short;
|
||||
itr_opt->name != NULL; itr_opt++, itr_short++)
|
||||
printf("\t-%c, --%s\n", *itr_short, itr_opt->name);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
const char *alias = NULL;
|
||||
struct kmod_ctx *ctx;
|
||||
struct kmod_list *list = NULL, *l;
|
||||
int load_resources = 0;
|
||||
int err;
|
||||
|
||||
printf("libkmod version %s\n", VERSION);
|
||||
|
||||
for (;;) {
|
||||
int c, idx = 0;
|
||||
c = getopt_long(argc, argv, cmdoptions_short, cmdoptions, &idx);
|
||||
if (c == -1)
|
||||
break;
|
||||
switch (c) {
|
||||
case 'l':
|
||||
load_resources = 1;
|
||||
break;
|
||||
case 'h':
|
||||
help(argv[0]);
|
||||
return 0;
|
||||
case '?':
|
||||
return -1;
|
||||
default:
|
||||
fprintf(stderr,
|
||||
"ERR: unexpected getopt_long() value %c\n", c);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
fprintf(stderr, "ERR: Provide an alias name\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
alias = argv[optind];
|
||||
|
||||
ctx = kmod_new(NULL, NULL);
|
||||
if (ctx == NULL) {
|
||||
kmod_unref(ctx);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (load_resources) {
|
||||
err = kmod_load_resources(ctx);
|
||||
if (err < 0) {
|
||||
printf("Could not load resources: %s\n",
|
||||
strerror(-err));
|
||||
kmod_unref(ctx);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
err = kmod_module_new_from_lookup(ctx, alias, &list);
|
||||
if (err < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
if (list == NULL)
|
||||
printf("No module matches '%s'\n", alias);
|
||||
else
|
||||
printf("Alias: '%s'\nModules matching:\n", alias);
|
||||
|
||||
kmod_list_foreach(l, list) {
|
||||
struct kmod_list *d, *pre = NULL, *post = NULL;
|
||||
struct kmod_module *mod = kmod_module_get_module(l);
|
||||
const char *str;
|
||||
|
||||
printf("\t%s\n", kmod_module_get_name(mod));
|
||||
str = kmod_module_get_options(mod);
|
||||
if (str)
|
||||
printf("\t\toptions: '%s'\n", str);
|
||||
str = kmod_module_get_install_commands(mod);
|
||||
if (str)
|
||||
printf("\t\tinstall commands: '%s'\n", str);
|
||||
str = kmod_module_get_remove_commands(mod);
|
||||
if (str)
|
||||
printf("\t\tremove commands: '%s'\n", str);
|
||||
|
||||
err = kmod_module_get_softdeps(mod, &pre, &post);
|
||||
if (err == 0) {
|
||||
if (pre != NULL || post != NULL)
|
||||
puts("\t\tsoft dependencies:");
|
||||
if (pre != NULL) {
|
||||
fputs("\t\t\tpre:", stdout);
|
||||
kmod_list_foreach(d, pre) {
|
||||
struct kmod_module *dm = kmod_module_get_module(d);
|
||||
printf(" %s", kmod_module_get_name(dm));
|
||||
kmod_module_unref(dm);
|
||||
}
|
||||
putchar('\n');
|
||||
kmod_module_unref_list(pre);
|
||||
}
|
||||
if (post != NULL) {
|
||||
fputs("\t\t\tpost:", stdout);
|
||||
kmod_list_foreach(d, post) {
|
||||
struct kmod_module *dm = kmod_module_get_module(d);
|
||||
printf(" %s", kmod_module_get_name(dm));
|
||||
kmod_module_unref(dm);
|
||||
}
|
||||
putchar('\n');
|
||||
kmod_module_unref_list(post);
|
||||
}
|
||||
}
|
||||
|
||||
pre = NULL;
|
||||
err = kmod_module_get_info(mod, &pre);
|
||||
if (err > 0) {
|
||||
puts("\t\tmodinfo:");
|
||||
kmod_list_foreach(d, pre) {
|
||||
const char *key, *val;
|
||||
key = kmod_module_info_get_key(d);
|
||||
val = kmod_module_info_get_value(d);
|
||||
printf("\t\t\t%s: %s\n", key, val ? val : "");
|
||||
}
|
||||
kmod_module_info_free_list(pre);
|
||||
}
|
||||
|
||||
pre = NULL;
|
||||
err = kmod_module_get_versions(mod, &pre);
|
||||
if (err > 0) {
|
||||
puts("\t\tmodversions:");
|
||||
kmod_list_foreach(d, pre) {
|
||||
const char *symbol;
|
||||
uint64_t crc;
|
||||
symbol = kmod_module_version_get_symbol(d);
|
||||
crc = kmod_module_version_get_crc(d);
|
||||
printf("\t\t\t%s: %#"PRIx64"\n", symbol, crc);
|
||||
}
|
||||
kmod_module_versions_free_list(pre);
|
||||
}
|
||||
|
||||
pre = NULL;
|
||||
err = kmod_module_get_symbols(mod, &pre);
|
||||
if (err > 0) {
|
||||
puts("\t\tsymbols:");
|
||||
kmod_list_foreach(d, pre) {
|
||||
const char *symbol;
|
||||
uint64_t crc;
|
||||
symbol = kmod_module_symbol_get_symbol(d);
|
||||
crc = kmod_module_symbol_get_crc(d);
|
||||
printf("\t\t\t%s: %#"PRIx64"\n", symbol, crc);
|
||||
}
|
||||
kmod_module_symbols_free_list(pre);
|
||||
}
|
||||
|
||||
kmod_module_unref(mod);
|
||||
}
|
||||
|
||||
kmod_module_unref_list(list);
|
||||
kmod_unref(ctx);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
@ -1,78 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct kmod_ctx *ctx;
|
||||
struct kmod_module *mod1, *mod2;
|
||||
const char *modname;
|
||||
int err;
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "ERR: Provide an alias name\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
modname = argv[1];
|
||||
|
||||
ctx = kmod_new(NULL, NULL);
|
||||
if (ctx == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
printf("libkmod version %s\n", VERSION);
|
||||
|
||||
err = kmod_module_new_from_name(ctx, modname, &mod1);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
printf("modname='%s' obj=%p\n", modname, mod1);
|
||||
|
||||
err = kmod_module_new_from_name(ctx, modname, &mod2);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
printf("modname='%s' obj=%p\n", modname, mod2);
|
||||
|
||||
kmod_module_unref(mod1);
|
||||
kmod_module_unref(mod2);
|
||||
|
||||
/* same thing, but now unref the first module */
|
||||
|
||||
err = kmod_module_new_from_name(ctx, modname, &mod1);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
printf("modname='%s' obj=%p\n", modname, mod1);
|
||||
|
||||
kmod_module_unref(mod1);
|
||||
|
||||
err = kmod_module_new_from_name(ctx, modname, &mod2);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
printf("modname='%s' obj=%p\n", modname, mod2);
|
||||
|
||||
kmod_module_unref(mod2);
|
||||
kmod_unref(ctx);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
fail:
|
||||
kmod_unref(ctx);
|
||||
return EXIT_FAILURE;
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct kmod_ctx *ctx;
|
||||
struct kmod_module *mod;
|
||||
const char *path, *modname;
|
||||
int err;
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "ERR: Provide an alias name\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
modname = argv[1];
|
||||
|
||||
ctx = kmod_new(NULL, NULL);
|
||||
if (ctx == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
printf("libkmod version %s\n", VERSION);
|
||||
|
||||
err = kmod_module_new_from_name(ctx, modname, &mod);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
path = kmod_module_get_path(mod);
|
||||
|
||||
printf("modname: '%s' path: '%s'\n", modname, path);
|
||||
kmod_module_unref(mod);
|
||||
kmod_unref(ctx);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
fail:
|
||||
kmod_unref(ctx);
|
||||
return EXIT_FAILURE;
|
||||
}
|
@ -1,118 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
#include <getopt.h>
|
||||
|
||||
static const char cmdoptions_short[] = "lh";
|
||||
static const struct option cmdoptions[] = {
|
||||
{"load-resources", no_argument, 0, 'l'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
static void help(const char *progname)
|
||||
{
|
||||
const struct option *itr_opt;
|
||||
const char *itr_short;
|
||||
printf("Usage:\n"
|
||||
"\t%s [options] <module> [ module_options ]\n"
|
||||
"Options:\n",
|
||||
progname);
|
||||
for (itr_opt = cmdoptions, itr_short = cmdoptions_short;
|
||||
itr_opt->name != NULL; itr_opt++, itr_short++)
|
||||
printf("\t-%c, --%s\n", *itr_short, itr_opt->name);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
const char *alias;
|
||||
const char *opt;
|
||||
struct kmod_ctx *ctx;
|
||||
struct kmod_list *list = NULL, *l;
|
||||
int load_resources = 0;
|
||||
int err;
|
||||
|
||||
printf("libkmod version %s\n", VERSION);
|
||||
|
||||
for (;;) {
|
||||
int c, idx = 0;
|
||||
c = getopt_long(argc, argv, cmdoptions_short, cmdoptions, &idx);
|
||||
if (c == -1)
|
||||
break;
|
||||
switch (c) {
|
||||
case 'l':
|
||||
load_resources = 1;
|
||||
break;
|
||||
case 'h':
|
||||
help(argv[0]);
|
||||
return 0;
|
||||
case '?':
|
||||
return -1;
|
||||
default:
|
||||
fprintf(stderr,
|
||||
"ERR: unexpected getopt_long() value %c\n", c);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
fprintf(stderr, "ERR: Provide an alias name\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
alias = argv[optind++];
|
||||
|
||||
if (optind < argc)
|
||||
opt = argv[optind];
|
||||
else
|
||||
opt = NULL;
|
||||
|
||||
ctx = kmod_new(NULL, NULL);
|
||||
if (ctx == NULL) {
|
||||
kmod_unref(ctx);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (load_resources) {
|
||||
err = kmod_load_resources(ctx);
|
||||
if (err < 0) {
|
||||
printf("Could not load resources: %s\n",
|
||||
strerror(-err));
|
||||
kmod_unref(ctx);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
err = kmod_module_new_from_lookup(ctx, alias, &list);
|
||||
if (err < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
if (list == NULL)
|
||||
printf("No module matches '%s'\n", alias);
|
||||
else
|
||||
printf("Alias: '%s'\nModules matching:\n", alias);
|
||||
|
||||
kmod_list_foreach(l, list) {
|
||||
struct kmod_module *mod = kmod_module_get_module(l);
|
||||
|
||||
printf("\t%s", kmod_module_get_name(mod));
|
||||
|
||||
err = kmod_module_probe_insert_module(mod, 0, opt, NULL, NULL);
|
||||
if (err >=0 )
|
||||
printf(": inserted ok\n");
|
||||
else
|
||||
printf(": failed to insert\n");
|
||||
|
||||
kmod_module_unref(mod);
|
||||
}
|
||||
|
||||
kmod_module_unref_list(list);
|
||||
kmod_unref(ctx);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Loading…
Reference in New Issue
Block a user