]>
git.ipfire.org Git - thirdparty/kmod.git/blob - testsuite/test-modinfo.c
2 * Copyright (C) 2012-2013 ProFUSION embedded systems
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
26 #include "testsuite.h"
28 static const char *progname
= ABS_TOP_BUILDDIR
"/tools/modinfo";
30 #define DEFINE_MODINFO_TEST(_field, _flavor, ...) \
31 static noreturn int test_modinfo_##_field(const struct test *t) \
33 const char *const args[] = { \
34 progname, "-F", #_field ,\
38 test_spawn_prog(progname, args); \
41 DEFINE_TEST(test_modinfo_##_field, \
42 .description = "check " #_field " output of modinfo for different architectures", \
44 [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modinfo/", \
47 .out = TESTSUITE_ROOTFS "test-modinfo/correct-" #_field #_flavor ".txt", \
50 #define DEFINE_MODINFO_GENERIC_TEST(_field) \
51 DEFINE_MODINFO_TEST(_field, , \
52 "/mod-simple-i386.ko", \
53 "/mod-simple-x86_64.ko", \
54 "/mod-simple-sparc64.ko")
57 #define DEFINE_MODINFO_SIGN_TEST(_field) \
58 DEFINE_MODINFO_TEST(_field, -openssl, \
59 "/mod-simple-sha1.ko", \
60 "/mod-simple-sha256.ko", \
61 "/mod-simple-pkcs7.ko")
63 #define DEFINE_MODINFO_SIGN_TEST(_field) \
64 DEFINE_MODINFO_TEST(_field, , \
65 "/mod-simple-sha1.ko", \
66 "/mod-simple-sha256.ko", \
67 "/mod-simple-pkcs7.ko")
70 DEFINE_MODINFO_GENERIC_TEST(filename
);
71 DEFINE_MODINFO_GENERIC_TEST(author
);
72 DEFINE_MODINFO_GENERIC_TEST(license
);
73 DEFINE_MODINFO_GENERIC_TEST(description
);
74 DEFINE_MODINFO_GENERIC_TEST(parm
);
75 DEFINE_MODINFO_GENERIC_TEST(depends
);
77 DEFINE_MODINFO_SIGN_TEST(signer
);
78 DEFINE_MODINFO_SIGN_TEST(sig_key
);
79 DEFINE_MODINFO_SIGN_TEST(sig_hashalgo
);
82 static noreturn
int test_modinfo_signature(const struct test
*t
)
84 const char *const args
[] = {
89 test_spawn_prog(progname
, args
);
92 DEFINE_TEST(test_modinfo_signature
,
93 .description
= "check signatures are correct for modinfo is correct for i686, ppc64, s390x and x86_64",
95 [TC_ROOTFS
] = TESTSUITE_ROOTFS
"test-modinfo/",
98 .out
= TESTSUITE_ROOTFS
"test-modinfo/correct.txt",
102 static noreturn
int test_modinfo_external(const struct test
*t
)
104 const char *const args
[] = {
105 progname
, "-F", "filename",
109 test_spawn_prog(progname
, args
);
112 DEFINE_TEST(test_modinfo_external
,
113 .description
= "check if modinfo finds external module",
115 [TC_ROOTFS
] = TESTSUITE_ROOTFS
"test-modinfo/external",
116 [TC_UNAME_R
] = "4.4.4",
119 .out
= TESTSUITE_ROOTFS
"test-modinfo/correct-external.txt",