From 531d7dddf14145e6db1ca94b1c5747382fada402 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 18 Nov 2011 14:21:54 -0700 Subject: [PATCH] tests: avoid xend ABRT crash report 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 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. --- 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 d4aa9f398d..90af830bd4 100644 --- a/tests/reconnect.c +++ b/tests/reconnect.c @@ -2,6 +2,7 @@ #include #include +#include #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 18cdc5c515..fff69a3bd1 100644 --- a/tests/statstest.c +++ b/tests/statstest.c @@ -3,6 +3,7 @@ #include #include #include +#include #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); -- GitLab