I installed the xen development packages on my non-Xen F16 machine in order to compile-test xen code and ensure we don't break things on that front, but being a non-xen machine, /usr/sbin/xend is obviously not running. Unfortunately, xen-4.1.2-1.fc16 has a bug where merely trying to probe xend status on a non-xen kernel causes xend to issue an ABRT crash report: https://bugzilla.redhat.com/show_bug.cgi?id=728696 Even though libvirt (correctly) skips the test, the xend crash report is unnecessary noise. Fix this by first filtering out non-xen kernels even before attempting to probe xend. The test still runs and passes (if run as root) on a RHEL 5 xen kernel after this patch. * tests/reconnect.c (mymain): Skip xend probe on non-xen kernel. * tests/statstest.c (mymain): Likewise. --- Pushing under the trivial rule (can't quite call it the build-breaker, since the libvirt testsuite itself still passed). tests/reconnect.c | 9 ++++++++- tests/statstest.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/reconnect.c b/tests/reconnect.c index d4aa9f3..90af830 100644 --- a/tests/reconnect.c +++ b/tests/reconnect.c @@ -2,6 +2,7 @@ #include <stdio.h> #include <stdlib.h> +#include <sys/utsname.h> #include "internal.h" #include "testutils.h" @@ -20,8 +21,14 @@ mymain(void) virDomainPtr dom; int status; virCommandPtr cmd; + struct utsname ut; - /* skip test if xend is not running */ + /* Skip test if xend is not running. Calling xend on a non-xen + kernel causes some versions of xend to issue a crash report, so + we first probe uname results. */ + uname(&ut); + if (strstr(ut.release, "xen") == NULL) + return EXIT_AM_SKIP; cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL); if (virCommandRun(cmd, &status) != 0 || status != 0) { virCommandFree(cmd); diff --git a/tests/statstest.c b/tests/statstest.c index 18cdc5c..fff69a3 100644 --- a/tests/statstest.c +++ b/tests/statstest.c @@ -3,6 +3,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/utsname.h> #include "stats_linux.h" #include "internal.h" @@ -47,8 +48,14 @@ mymain(void) int ret = 0; int status; virCommandPtr cmd; + struct utsname ut; - /* skip test if xend is not running */ + /* Skip test if xend is not running. Calling xend on a non-xen + kernel causes some versions of xend to issue a crash report, so + we first probe uname results. */ + uname(&ut); + if (strstr(ut.release, "xen") == NULL) + return EXIT_AM_SKIP; cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL); if (virCommandRun(cmd, &status) != 0 || status != 0) { virCommandFree(cmd); -- 1.7.7.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list