From: Pedro Pedruzzi Date: Sat, 28 Jan 2012 05:22:47 +0000 (-0200) Subject: testsuite: add test for function alias_normalize X-Git-Tag: v5~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=760b8968d45c09dd264274c16045b9dc307c04eb;p=thirdparty%2Fkmod.git testsuite: add test for function alias_normalize --- diff --git a/Makefile.am b/Makefile.am index 2dc09a34..04c0c64c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -171,7 +171,7 @@ testsuite_libtestsuite_la_DEPENDENCIES = testsuite/rootfs testsuite_libtestsuite_la_CPPFLAGS = $(TESTSUITE_CPPFLAGS) TESTSUITE = testsuite/test-init testsuite/test-testsuite testsuite/test-loaded \ - testsuite/test-modinfo + testsuite/test-modinfo testsuite/test-alias check_PROGRAMS = $(TESTSUITE) TESTS = $(TESTSUITE) @@ -183,6 +183,8 @@ testsuite_test_loaded_LDADD = testsuite/libtestsuite.la libkmod/libkmod-private. testsuite_test_loaded_CPPFLAGS = $(TESTSUITE_CPPFLAGS) testsuite_test_modinfo_LDADD = testsuite/libtestsuite.la testsuite_test_modinfo_CPPFLAGS = $(TESTSUITE_CPPFLAGS) +testsuite_test_alias_LDADD = testsuite/libtestsuite.la libkmod/libkmod-private.la +testsuite_test_alias_CPPFLAGS = $(TESTSUITE_CPPFLAGS) DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc diff --git a/testsuite/.gitignore b/testsuite/.gitignore index f2e833d5..fb776cd8 100644 --- a/testsuite/.gitignore +++ b/testsuite/.gitignore @@ -7,3 +7,4 @@ test-init test-loaded test-testsuite test-modinfo +test-alias diff --git a/testsuite/rootfs.tar.xz b/testsuite/rootfs.tar.xz index 7445e807..b12a4bf0 100644 Binary files a/testsuite/rootfs.tar.xz and b/testsuite/rootfs.tar.xz differ diff --git a/testsuite/test-alias.c b/testsuite/test-alias.c new file mode 100644 index 00000000..cc109d41 --- /dev/null +++ b/testsuite/test-alias.c @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2012 ProFUSION embedded systems + * Copyright (C) 2012 Pedro Pedruzzi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include + +#include "libkmod-util.h" +#include "testsuite.h" + +static int alias_1(const struct test *t) +{ + static const char *input[] = { + "test1234", + "test[abcfoobar]2211", + "bar[aaa][bbbb]sss", + "kmod[p.b]lib", + "[az]1234[AZ]", + NULL, + }; + + char buf[PATH_MAX]; + size_t len; + const char **alias; + + for (alias = input; *alias != NULL; alias++) { + int ret; + + memset(buf, 0, sizeof(buf)); + ret = alias_normalize(*alias, buf, &len); + printf("input %s\n", *alias); + printf("return %d\n", ret); + + if (ret == 0) { + printf("len %zu\n", len); + printf("output %s\n", buf); + } + + printf("\n"); + } + + return EXIT_SUCCESS; +} +static const struct test salias_1 = { + .name = "alias_1", + .description = "check if alias_normalize does the right thing", + .func = alias_1, + .config = { + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-alias/", + }, + .need_spawn = true, + .output = { + .stdout = TESTSUITE_ROOTFS "test-alias/correct.txt", + }, +}; + +static const struct test *tests[] = { + &salias_1, + NULL, +}; + +int main(int argc, char *argv[]) +{ + const struct test *t; + int arg; + size_t i; + + arg = test_init(argc, argv, tests); + if (arg == 0) + return 0; + + if (arg < argc) { + t = test_find(tests, argv[arg]); + if (t == NULL) { + fprintf(stderr, "could not find test %s\n", argv[arg]); + exit(EXIT_FAILURE); + } + + return test_run(t); + } + + for (i = 0; tests[i] != NULL; i++) { + if (test_run(tests[i]) != 0) + exit(EXIT_FAILURE); + } + + exit(EXIT_SUCCESS); +}