mirror of
https://github.com/libvirt/libvirt.git
synced 2025-01-08 07:03:19 -06:00
tests: uniformly report test failures
testutils.c likes to print summaries after a test completes, including if it failed. But if the test outright exit()s, this summary is skipped. Enforce that we return instead of exit. * cfg.mk (sc_prohibit_exit_in_tests): New syntax check. * tests/commandhelper.c (main): Fix offenders. * tests/qemumonitorjsontest.c (mymain): Likewise. * tests/seclabeltest.c (main): Likewise. * tests/securityselinuxlabeltest.c (mymain): Likewise. * tests/securityselinuxtest.c (mymain): Likewise. * tests/testutils.h (VIRT_TEST_MAIN_PRELOAD): Likewise. * tests/testutils.c (virtTestMain): Likewise. (virtTestCaptureProgramOutput): Use symbolic name.
This commit is contained in:
parent
f20b047691
commit
dce95297e3
7
cfg.mk
7
cfg.mk
@ -709,6 +709,13 @@ sc_prohibit_semicolon_at_eol_in_python:
|
||||
halt="Don't use semicolon at eol in python files" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# mymain() in test files should use return, not exit, for nicer output
|
||||
sc_prohibit_exit_in_tests:
|
||||
@prohibit='\<exit *\(' \
|
||||
in_vc_files='^tests/' \
|
||||
halt='use return, not exit(), in tests' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# We don't use this feature of maint.mk.
|
||||
prev_version_file = /dev/null
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* commandhelper.c: Auxiliary program for commandtest
|
||||
*
|
||||
* Copyright (C) 2010-2012 Red Hat, Inc.
|
||||
* Copyright (C) 2010-2013 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -71,9 +71,8 @@ int main(int argc, char **argv) {
|
||||
origenv++;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC_N(newenv, n) < 0) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (VIR_ALLOC_N(newenv, n) < 0)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
origenv = environ;
|
||||
n = i = 0;
|
||||
|
@ -449,11 +449,9 @@ mymain(void)
|
||||
return EXIT_AM_SKIP;
|
||||
#endif
|
||||
|
||||
if (virThreadInitialize() < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
if (!(caps = testQemuCapsInit()))
|
||||
exit(EXIT_FAILURE);
|
||||
if (virThreadInitialize() < 0 ||
|
||||
!(caps = testQemuCapsInit()))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
virEventRegisterDefaultImpl();
|
||||
|
||||
|
@ -15,12 +15,12 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
|
||||
const char *doi, *model;
|
||||
|
||||
if (virThreadInitialize() < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
|
||||
mgr = virSecurityManagerNew(NULL, "QEMU", false, true, false);
|
||||
if (mgr == NULL) {
|
||||
fprintf(stderr, "Failed to start security driver");
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
model = virSecurityManagerGetModel(mgr);
|
||||
@ -28,7 +28,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
|
||||
{
|
||||
fprintf(stderr, "Failed to copy secModel model: %s",
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
doi = virSecurityManagerGetDOI(mgr);
|
||||
@ -36,7 +36,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
|
||||
{
|
||||
fprintf(stderr, "Failed to copy secModel DOI: %s",
|
||||
strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
virObjectUnref(mgr);
|
||||
|
@ -317,15 +317,15 @@ mymain(void)
|
||||
if (!(mgr = virSecurityManagerNew("selinux", "QEMU", false, true, false))) {
|
||||
virErrorPtr err = virGetLastError();
|
||||
if (err->code == VIR_ERR_CONFIG_UNSUPPORTED)
|
||||
exit(EXIT_AM_SKIP);
|
||||
return EXIT_AM_SKIP;
|
||||
|
||||
fprintf(stderr, "Unable to initialize security driver: %s\n",
|
||||
err->message);
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if ((caps = testQemuCapsInit()) == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
|
||||
#define DO_TEST_LABELING(name) \
|
||||
if (virtTestRun("Labelling " # name, 1, testSELinuxLabeling, name) < 0) \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2011-2012 Red Hat, Inc.
|
||||
* Copyright (C) 2011-2013 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -274,11 +274,11 @@ mymain(void)
|
||||
if (!(mgr = virSecurityManagerNew("selinux", "QEMU", false, true, false))) {
|
||||
virErrorPtr err = virGetLastError();
|
||||
if (err->code == VIR_ERR_CONFIG_UNSUPPORTED)
|
||||
exit(EXIT_AM_SKIP);
|
||||
return EXIT_AM_SKIP;
|
||||
|
||||
fprintf(stderr, "Unable to initialize security driver: %s\n",
|
||||
err->message);
|
||||
exit(EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
#define DO_TEST_GEN_LABEL(desc, pidcon, \
|
||||
|
@ -317,7 +317,7 @@ virtTestCaptureProgramOutput(const char *const argv[], char **buf, int maxlen)
|
||||
virtTestCaptureProgramExecChild(argv, pipefd[1]);
|
||||
|
||||
VIR_FORCE_CLOSE(pipefd[1]);
|
||||
_exit(1);
|
||||
_exit(EXIT_FAILURE);
|
||||
|
||||
case -1:
|
||||
return -1;
|
||||
@ -586,7 +586,7 @@ int virtTestMain(int argc,
|
||||
abs_srcdir_cleanup = true;
|
||||
}
|
||||
if (!abs_srcdir)
|
||||
exit(EXIT_AM_HARDFAIL);
|
||||
return EXIT_AM_HARDFAIL;
|
||||
|
||||
progname = last_component(argv[0]);
|
||||
if (STRPREFIX(progname, "lt-"))
|
||||
@ -603,13 +603,13 @@ int virtTestMain(int argc,
|
||||
|
||||
if (virThreadInitialize() < 0 ||
|
||||
virErrorInitialize() < 0)
|
||||
return 1;
|
||||
return EXIT_FAILURE;
|
||||
|
||||
virLogSetFromEnv();
|
||||
if (!getenv("LIBVIRT_DEBUG") && !virLogGetNbOutputs()) {
|
||||
if (virLogDefineOutput(virtTestLogOutput, virtTestLogClose, &testLog,
|
||||
VIR_LOG_DEBUG, VIR_LOG_TO_STDERR, NULL, 0) < 0)
|
||||
return 1;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
#if TEST_OOM
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* utils.c: test utils
|
||||
*
|
||||
* Copyright (C) 2005, 2008-2012 Red Hat, Inc.
|
||||
* Copyright (C) 2005, 2008-2013 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -78,7 +78,7 @@ int virtTestMain(int argc,
|
||||
if (virAsprintf(&newenv, "%s%s%s", preload ? preload : "", \
|
||||
preload ? ":" : "", lib) < 0) { \
|
||||
perror("virAsprintf"); \
|
||||
exit(EXIT_FAILURE); \
|
||||
return EXIT_FAILURE; \
|
||||
} \
|
||||
setenv("LD_PRELOAD", newenv, 1); \
|
||||
execv(argv[0], argv); \
|
||||
|
Loading…
Reference in New Issue
Block a user