[libvirt] PATCH: Fix libvirtd test cases

Jim Meyering jim at meyering.net
Wed Mar 4 08:32:47 UTC 2009


Jim Meyering wrote:
> Daniel P. Berrange wrote:
>> The libvirtd tests have a number of bugs causing them to fail & generally
>> do bad things. They all currently fail on RHEL5 hosts.
>
> Odd that they'd all fail for you.
> Only one fails for me: libvirtd-pool
> and daemon-conf is mistakenly skipped due to use of ancient
> automake-1.9.
>
>>  - daemon-conf - the abs_topbuild_dir env var was not being set correctly
>
> As you know, that's because you're building with RHEL5's ancient
> version of automake.
> That is a no-no (for many reasons) but easy to work around.
> IMHO, no one should never build using such old autotools,
> but I do know how we're currently constrained.  no choice.
>
> Your change to tests/Makefile.am is fine.
>
>>    so it failed to find config.h. It also broken by changes in stderr
>>    debug output from libvirtd. This patch fixes the env var, and changes
>>    it to it just looks for the desired error message, not doing a diff
>>    across entire of stdout/err.
>
> Once I worked around automake-1.9's lack of abs_top_builddir,
> daemon-conf passed.
>
> What error did you see?

I've deduced that you were building --without-qemu.
Here's a less invasive patch that fixes those problems.
I've confirmed that it passes (or skips) all tests on RHEL5
when built both --with-qemu and --without-qemu.  Of course, it
still passes on F10/F11 and rawhide.

>From c478463429e223976c5dcebcf02635624564fd74 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Wed, 4 Mar 2009 00:27:09 -0500
Subject: [PATCH] tests: accommodate building with automake-1.9 and --without-qemu

* tests/Makefile.am: Export replacement definitions of variables
like $(abs_top_builddir) that are provided by reasonably recent
versions of automake, but lacking in automake-1.9.
* tests/test-lib.sh (require_qemu_): New function.
* tests/daemon-conf: Use it.
* tests/libvirtd-net-persist: Use it.
* tests/libvirtd-pool: Use it.
---
 tests/Makefile.am          |   13 +++++++------
 tests/daemon-conf          |    4 +---
 tests/libvirtd-net-persist |    1 +
 tests/libvirtd-pool        |    8 ++++++--
 tests/test-lib.sh          |    6 ++++++
 5 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8b4bd0c..3f79516 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -117,16 +117,17 @@ endif

 TESTS += nodedevxml2xmltest

-path_add = $$abs_top_builddir/src$(PATH_SEPARATOR)$$abs_top_builddir/qemud
-
 # NB, automake < 1.10 does not provide the real
 # abs_top_{src/build}dir variables, so don't rely
 # on them here. Fake them with 'pwd'
+export abs_top_builddir ?= $(shell cd '$(top_builddir)'; pwd)
+export abs_top_srcdir   ?= $(shell cd '$(top_srcdir)'; pwd)
+export abs_builddir     ?= $(shell cd '$(builddir)'; pwd)
+export abs_srcdir       ?= $(shell cd '$(srcdir)'; pwd)
+
+path_add = $(abs_top_builddir)/src$(PATH_SEPARATOR)$(abs_top_builddir)/qemud
+
 TESTS_ENVIRONMENT =				\
-  abs_top_builddir=`cd '$(top_builddir)'; pwd`	\
-  abs_top_srcdir=`cd '$(top_srcdir)'; pwd`	\
-  abs_builddir=`cd '$(builddir)'; pwd`		\
-  abs_srcdir=`cd '$(srcdir)'; pwd`		\
   CONFIG_HEADER='$(abs_top_builddir)/config.h'	\
   PATH="$(path_add)$(PATH_SEPARATOR)$$PATH"	\
   SHELL="$(SHELL)"				\
diff --git a/tests/daemon-conf b/tests/daemon-conf
index a5e86ae..e63ce01 100755
--- a/tests/daemon-conf
+++ b/tests/daemon-conf
@@ -9,9 +9,7 @@ fi
 test -z "$srcdir" && srcdir=$(pwd)
 test -z "$abs_top_srcdir" && abs_top_srcdir=$(pwd)/..
 . $srcdir/test-lib.sh
-
-grep '^#define WITH_QEMU 1' $CONFIG_HEADER > /dev/null ||
-  skip_test_ "configured without QEMU support"
+require_qemu_

 conf="$abs_top_srcdir/qemud/libvirtd.conf"

diff --git a/tests/libvirtd-net-persist b/tests/libvirtd-net-persist
index 50a1ef4..f03e669 100755
--- a/tests/libvirtd-net-persist
+++ b/tests/libvirtd-net-persist
@@ -10,6 +10,7 @@ fi
 test -z "$srcdir" && srcdir=$(pwd)
 test -z "$abs_top_srcdir" && abs_top_srcdir=$(pwd)/..
 . "$srcdir/test-lib.sh"
+require_qemu_

 fail=0

diff --git a/tests/libvirtd-pool b/tests/libvirtd-pool
index 370f3b1..b38dbb2 100755
--- a/tests/libvirtd-pool
+++ b/tests/libvirtd-pool
@@ -10,6 +10,7 @@ fi
 test -z "$srcdir" && srcdir=$(pwd)
 test -z "$abs_top_srcdir" && abs_top_srcdir=$(pwd)/..
 . "$srcdir/test-lib.sh"
+require_qemu_

 fail=0

@@ -31,6 +32,9 @@ virsh --connect "$url" pool-dumpxml P >> out 2>&1 || fail=1

 # remove random uuid
 sed 's/<uuid>.*/-/' out > k && mv k out || fail=1
+# filter out actual owner and group numbers
+sed 's/<owner>.*/-/' out > k && mv k out || fail=1
+sed 's/<group>.*/-/' out > k && mv k out || fail=1

 kill $pid

@@ -49,8 +53,8 @@ Pool P defined
     <path>/target-path</path>
     <permissions>
       <mode>0700</mode>
-      <owner>500</owner>
-      <group>500</group>
+      -
+      -
     </permissions>
   </target>
 </pool>
diff --git a/tests/test-lib.sh b/tests/test-lib.sh
index a007109..fd4cd2a 100644
--- a/tests/test-lib.sh
+++ b/tests/test-lib.sh
@@ -24,6 +24,12 @@ require_acl_()
     || skip_test_ "This test requires a local user named bin."
 }

+require_qemu_()
+{
+  grep '^#define WITH_QEMU 1' $CONFIG_HEADER > /dev/null ||
+    skip_test_ "configured without QEMU support"
+}
+
 require_ulimit_()
 {
   ulimit_works=yes
--
1.6.2.rc1.285.gc5f54




More information about the libvir-list mailing list