[libvirt] [PATCH] Skip some xen tests if xend is not running

Daniel P. Berrange berrange at redhat.com
Fri Jul 8 14:40:14 UTC 2011


On Thu, Jul 07, 2011 at 04:00:01PM -0600, Jim Fehlig wrote:
> Currently, the xen statstest and reconnect tests are only compiled
> if xend is running.  Compile them unconditionally if xen headers
> are present, but skip the tests at runtime if xend is not running.
> 
> This is in response to Eric's suggestion here
> 
> https://www.redhat.com/archives/libvir-list/2011-July/msg00367.html
> ---
>  configure.ac      |   24 ------------------------
>  tests/Makefile.am |   12 ++++--------
>  tests/reconnect.c |   11 +++++++++++
>  tests/statstest.c |   12 ++++++++++++
>  4 files changed, 27 insertions(+), 32 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index aa589d6..ae747fb 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1982,30 +1982,6 @@ AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"])
>  AC_SUBST([PYTHON_VERSION])
>  AC_SUBST([PYTHON_INCLUDES])
>  
> -
> -
> -AC_MSG_CHECKING([whether this host is running a Xen kernel])
> -RUNNING_XEN=
> -if test -d /proc/sys/xen
> -then
> -    RUNNING_XEN=yes
> -else
> -    RUNNING_XEN=no
> -fi
> -AC_MSG_RESULT($RUNNING_XEN)
> -
> -AC_MSG_CHECKING([If XenD UNIX socket /var/run/xend/xmlrpc.sock is accessible])
> -RUNNING_XEND=
> -if test -S /var/run/xend/xmlrpc.sock
> -then
> -    RUNNING_XEND=yes
> -else
> -    RUNNING_XEND=no
> -fi
> -AC_MSG_RESULT($RUNNING_XEND)
> -
> -AM_CONDITIONAL([ENABLE_XEN_TESTS], [test "$RUNNING_XEN" != "no" && test "$RUNNING_XEND" != "no"])
> -
>  AC_ARG_ENABLE([test-coverage],
>    AC_HELP_STRING([--enable-test-coverage], [turn on code coverage instrumentation @<:@default=no@:>@]),
>  [case "${enableval}" in
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 48f9faa..528b88e 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -93,10 +93,7 @@ ssh_LDADD = $(COVERAGE_LDFLAGS)
>  
>  if WITH_XEN
>  check_PROGRAMS += xml2sexprtest sexpr2xmltest \
> -	xmconfigtest xencapstest
> -if ENABLE_XEN_TESTS
> -check_PROGRAMS += statstest reconnect
> -endif
> +	xmconfigtest xencapstest statstest reconnect
>  endif
>  if WITH_QEMU
>  check_PROGRAMS += qemuxml2argvtest qemuxml2xmltest qemuargv2xmltest qemuhelptest
> @@ -216,10 +213,9 @@ if WITH_XEN
>  TESTS += xml2sexprtest \
>  	sexpr2xmltest \
>  	xmconfigtest \
> -	xencapstest
> -if ENABLE_XEN_TESTS
> -TESTS += reconnect statstest
> -endif
> +	xencapstest \
> +	reconnect \
> +	statstest
>  endif
>  
>  if WITH_QEMU
> diff --git a/tests/reconnect.c b/tests/reconnect.c
> index 63877fc..4bc092f 100644
> --- a/tests/reconnect.c
> +++ b/tests/reconnect.c
> @@ -4,6 +4,7 @@
>  #include <stdlib.h>
>  
>  #include "internal.h"
> +#include "command.h"
>  
>  static void errorHandler(void *userData ATTRIBUTE_UNUSED,
>                           virErrorPtr error ATTRIBUTE_UNUSED) {
> @@ -14,6 +15,16 @@ int main(void) {
>      int ro = 0;
>      virConnectPtr conn;
>      virDomainPtr dom;
> +    int status;
> +    virCommandPtr cmd;
> +
> +    /* skip test if xend is not running */
> +    cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL);
> +    if (virCommandRun(cmd, &status) == 0 && status != 0) {
> +        virCommandFree(cmd);
> +        return 77;
> +    }
> +    virCommandFree(cmd);
>  
>      virSetErrorFunc(NULL, errorHandler);
>  
> diff --git a/tests/statstest.c b/tests/statstest.c
> index c989992..7074914 100644
> --- a/tests/statstest.c
> +++ b/tests/statstest.c
> @@ -8,6 +8,7 @@
>  #include "internal.h"
>  #include "xen/block_stats.h"
>  #include "testutils.h"
> +#include "command.h"
>  
>  static void testQuietError(void *userData ATTRIBUTE_UNUSED,
>                             virErrorPtr error ATTRIBUTE_UNUSED)
> @@ -44,6 +45,17 @@ static int
>  mymain(void)
>  {
>      int ret = 0;
> +    int status;
> +    virCommandPtr cmd;
> +
> +    /* skip test if xend is not running */
> +    cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL);
> +    if (virCommandRun(cmd, &status) == 0 && status != 0) {
> +        virCommandFree(cmd);
> +        return 77;
> +    }
> +    virCommandFree(cmd);
> +
>      /* Some of our tests delibrately test failure cases, so
>       * register a handler to stop error messages cluttering
>       * up display

ACK


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list