提交 2847cb5d 编写于 作者: P Peter Krempa

tests: sysinfo: Run all sysinfo tests all the time

There's no reason why we should avoid running all sysinfo tests on all
platforms. Refactor the test to get rid of the conditionally compiled
cruft.
上级 c58d95b7
......@@ -42,14 +42,8 @@
#define VIR_FROM_THIS VIR_FROM_NONE
#if defined (__linux__)
# if defined(__s390__) || defined(__s390x__) || \
defined(__powerpc__) || defined(__powerpc64__) || \
defined(__i386__) || defined(__x86_64__) || defined(__amd64__) || \
defined(__arm__) || defined(__aarch64__)
struct testSysinfoData {
virSysinfoDefPtr (*func)(void); /* sysinfo gathering function */
char *decoder; /* name of dmi decoder binary/script */
char *sysinfo; /* name of /proc/sysinfo substitute file */
char *cpuinfo; /* name of /proc/cpuinfo substitute file */
......@@ -68,7 +62,7 @@ testSysinfo(const void *data)
virSysinfoSetup(testdata->decoder, testdata->sysinfo, testdata->cpuinfo);
if (!testdata->expected ||
!(ret = virSysinfoRead()))
!(ret = testdata->func()))
goto cleanup;
if (virSysinfoFormat(&buf, ret) < 0)
......@@ -91,6 +85,7 @@ testSysinfo(const void *data)
static int
sysinfotest_run(const char *test,
virSysinfoDefPtr (*func)(void),
const char *decoder,
const char *sysinfo,
const char *cpuinfo,
......@@ -99,6 +94,8 @@ sysinfotest_run(const char *test,
struct testSysinfoData testdata = { NULL };
int ret = EXIT_FAILURE;
testdata.func = func;
if ((decoder &&
virAsprintf(&testdata.decoder, "%s/%s", abs_srcdir, decoder) < 0) ||
(sysinfo &&
......@@ -122,91 +119,34 @@ sysinfotest_run(const char *test,
VIR_FREE(testdata.expected);
return ret;
}
# endif
# if defined(__s390__) || defined(__s390x__)
static int
test_s390(void)
{
return sysinfotest_run("s390 sysinfo",
NULL,
"/sysinfodata/s390sysinfo.data",
"/sysinfodata/s390cpuinfo.data",
"/sysinfodata/s390sysinfo.expect");
}
#define TEST_FULL(name, func, decoder) \
if (sysinfotest_run(name " sysinfo", func, decoder, \
"/sysinfodata/" name "sysinfo.data", \
"/sysinfodata/" name "cpuinfo.data", \
"/sysinfodata/" name "sysinfo.expect") != EXIT_SUCCESS) \
ret = EXIT_FAILURE
VIRT_TEST_MAIN(test_s390)
# elif defined(__powerpc__) || defined(__powerpc64__)
static int
test_ppc(void)
{
return sysinfotest_run("ppc sysinfo",
NULL,
NULL,
"/sysinfodata/ppccpuinfo.data",
"/sysinfodata/ppcsysinfo.expect");
}
VIRT_TEST_MAIN(test_ppc)
# elif defined(__i386__) || defined(__x86_64__) || defined(__amd64__)
static int
test_x86(void)
{
return sysinfotest_run("x86 sysinfo",
"/sysinfodata/dmidecode.sh",
NULL,
NULL,
"/sysinfodata/x86sysinfo.expect");
}
#define TEST(name, func) \
TEST_FULL(name, func, NULL)
VIRT_TEST_MAIN(test_x86)
# elif defined(__arm__)
static int
test_arm(void)
mymain(void)
{
int ret = EXIT_SUCCESS;
if (sysinfotest_run("arm sysinfo",
NULL,
NULL,
"/sysinfodata/armcpuinfo.data",
"/sysinfodata/armsysinfo.expect") != EXIT_SUCCESS)
ret = EXIT_FAILURE;
if (sysinfotest_run("Raspberry Pi 2 sysinfo",
NULL,
NULL,
"/sysinfodata/arm-rpi2cpuinfo.data",
"/sysinfodata/arm-rpi2sysinfo.expect") != EXIT_SUCCESS)
ret = EXIT_FAILURE;
TEST("s390", virSysinfoReadS390);
TEST("ppc", virSysinfoReadPPC);
TEST_FULL("x86", virSysinfoReadX86, "/sysinfodata/dmidecode.sh");
TEST("arm", virSysinfoReadARM);
TEST("arm-rpi2", virSysinfoReadARM);
TEST("aarch64", virSysinfoReadARM);
return ret;
}
VIRT_TEST_MAIN(test_arm)
# elif defined(__aarch64__)
static int
test_aarch64(void)
{
return sysinfotest_run("aarch64 sysinfo",
NULL,
NULL,
"/sysinfodata/aarch64cpuinfo.data",
"/sysinfodata/aarch64sysinfo.expect");
}
#undef TEST
#undef TEST_FULL
VIRT_TEST_MAIN(test_aarch64)
# else
int
main(void)
{
return EXIT_AM_SKIP;
}
# endif /* defined(__s390__) ... */
#else
int
main(void)
{
return EXIT_AM_SKIP;
}
#endif /* defined(__linux__) */
VIRT_TEST_MAIN(mymain)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册