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