From 5a6571eba978a727ff9e5429bcef7e374d503414 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 14 Nov 2007 10:35:58 +0000 Subject: [PATCH] Arrange for tests to pass in a non-srcdir build. * tests/Makefile.am: Include the contents of the *data directories in the make-dist-built tarball by adding each of that *data directories to EXTRA_DIST. Also add int-overflow (via $(test_scripts)) to EXTRA_DIST. * tests/nodeinfotest.c: Prepend "$abs_top_srcdir/tests" to each input file name. * tests/qemuxml2argvtest.c: Likewise. * tests/qemuxml2xmltest.c: Likewise. * tests/sexpr2xmltest.c: Likewise. * tests/test_conf.sh: Likewise. * tests/virshtest.c: Likewise. * tests/xencapstest.c: Likewise. * tests/xmconfigtest.c: Likewise. * tests/xml2sexprtest.c: Likewise. Author: Jim Meyering --- ChangeLog | 18 ++++++++++++++++++ tests/Makefile.am | 18 ++++++++++++++++-- tests/nodeinfotest.c | 14 +++++++++++--- tests/qemuxml2argvtest.c | 11 +++++++++-- tests/qemuxml2xmltest.c | 8 +++++++- tests/sexpr2xmltest.c | 13 ++++++++++++- tests/test_conf.sh | 5 +++-- tests/virshtest.c | 13 +++++++++---- tests/xencapstest.c | 22 +++++++++++++++++++--- tests/xmconfigtest.c | 21 +++++++++++++++++++-- tests/xml2sexprtest.c | 13 ++++++++++++- 11 files changed, 135 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6e248f62f9..0c145e66eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +Wed Nov 14 11:34:35 CET 2007 Jim Meyering + + Arrange for tests to pass in a non-srcdir build. + * tests/Makefile.am: Include the contents of the *data directories + in the make-dist-built tarball by adding each of that *data + directories to EXTRA_DIST. + Also add int-overflow (via $(test_scripts)) to EXTRA_DIST. + * tests/nodeinfotest.c: Prepend "$abs_top_srcdir/tests" to + each input file name. + * tests/qemuxml2argvtest.c: Likewise. + * tests/qemuxml2xmltest.c: Likewise. + * tests/sexpr2xmltest.c: Likewise. + * tests/test_conf.sh: Likewise. + * tests/virshtest.c: Likewise. + * tests/xencapstest.c: Likewise. + * tests/xmconfigtest.c: Likewise. + * tests/xml2sexprtest.c: Likewise. + Tue Nov 13 15:33:35 CET 2007 Jim Meyering Make qemud's install-init rule work in a non-srcdir build. diff --git a/tests/Makefile.am b/tests/Makefile.am index 8a472f86f6..fec2f207fe 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,15 +31,29 @@ LDADDS = \ $(LIBVIRT) \ $(COVERAGE_LDFLAGS) -EXTRA_DIST = xmlrpcserver.py test_conf.sh +EXTRA_DIST = \ + xmlrpcserver.py \ + test_conf.sh \ + confdata \ + qemuxml2argvdata \ + xml2sexprdata \ + nodeinfodata \ + virshdata \ + xencapsdata \ + sexpr2xmldata \ + xmconfigdata noinst_PROGRAMS = xmlrpctest xml2sexprtest sexpr2xmltest virshtest conftest \ reconnect xmconfigtest xencapstest qemuxml2argvtest qemuxml2xmltest \ nodeinfotest +test_scripts = \ + int-overflow +EXTRA_DIST += $(test_scripts) + TESTS = xml2sexprtest sexpr2xmltest virshtest test_conf.sh xmconfigtest \ xencapstest qemuxml2argvtest qemuxml2xmltest nodeinfotest \ - int-overflow + $(test_scripts) if ENABLE_XEN_TESTS TESTS += reconnect endif diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c index 604f5a4f65..8b22b71ba6 100644 --- a/tests/nodeinfotest.c +++ b/tests/nodeinfotest.c @@ -10,6 +10,7 @@ #include "nodeinfo.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 @@ -67,9 +68,12 @@ static int linuxTestNodeInfo(const void *data) { char cpuinfo[PATH_MAX]; char meminfo[PATH_MAX]; char output[PATH_MAX]; - snprintf(cpuinfo, PATH_MAX, "nodeinfodata/linux-%s.cpuinfo", (const char*)data); - snprintf(meminfo, PATH_MAX, "nodeinfodata/linux-%s.meminfo", (const char*)data); - snprintf(output, PATH_MAX, "nodeinfodata/linux-%s.txt", (const char*)data); + snprintf(cpuinfo, PATH_MAX, "%s/tests/nodeinfodata/linux-%s.cpuinfo", + abs_top_srcdir, (const char*)data); + snprintf(meminfo, PATH_MAX, "%s/tests/nodeinfodata/linux-%s.meminfo", + abs_top_srcdir, (const char*)data); + snprintf(output, PATH_MAX, "%s/tests/nodeinfodata/linux-%s.txt", + abs_top_srcdir, (const char*)data); return linuxTestCompareFiles(cpuinfo, meminfo, output); } #endif @@ -90,6 +94,10 @@ main(int argc, char **argv) "nodeinfo-6", }; + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return EXIT_FAILURE; + progname = argv[0]; if (argc > 1) { diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index a91cd035a1..052f3f31c9 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -9,6 +9,7 @@ #include "internal.h" static char *progname; +static char *abs_top_srcdir; struct qemud_driver driver; #define MAX_FILE 4096 @@ -93,8 +94,10 @@ static int testCompareXMLToArgvFiles(const char *xml, const char *cmd) { static int testCompareXMLToArgvHelper(const void *data) { char xml[PATH_MAX]; char args[PATH_MAX]; - snprintf(xml, PATH_MAX, "qemuxml2argvdata/qemuxml2argv-%s.xml", (const char*)data); - snprintf(args, PATH_MAX, "qemuxml2argvdata/qemuxml2argv-%s.args", (const char*)data); + snprintf(xml, PATH_MAX, "%s/tests/qemuxml2argvdata/qemuxml2argv-%s.xml", + abs_top_srcdir, (const char*)data); + snprintf(args, PATH_MAX, "%s/tests/qemuxml2argvdata/qemuxml2argv-%s.args", + abs_top_srcdir, (const char*)data); return testCompareXMLToArgvFiles(xml, args); } @@ -112,6 +115,10 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + if (virtTestRun("QEMU XML-2-ARGV minimal", 1, testCompareXMLToArgvHelper, "minimal") < 0) ret = -1; diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 59eaf8aebf..11d8239e86 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -9,6 +9,7 @@ #include "internal.h" static char *progname; +static char *abs_top_srcdir; struct qemud_driver driver; #define MAX_FILE 4096 @@ -59,7 +60,8 @@ static int testCompareXMLToXMLFiles(const char *xml) { static int testCompareXMLToXMLHelper(const void *data) { char xml[PATH_MAX]; - snprintf(xml, PATH_MAX, "qemuxml2argvdata/qemuxml2argv-%s.xml", (const char*)data); + snprintf(xml, PATH_MAX, "%s/tests/qemuxml2argvdata/qemuxml2argv-%s.xml", + abs_top_srcdir, (const char*)data); return testCompareXMLToXMLFiles(xml); } @@ -76,6 +78,10 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + if (virtTestRun("QEMU XML-2-ARGV minimal", 1, testCompareXMLToXMLHelper, "minimal") < 0) ret = -1; diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c index eda1397dbe..563941b7f8 100644 --- a/tests/sexpr2xmltest.c +++ b/tests/sexpr2xmltest.c @@ -8,16 +8,23 @@ #include "internal.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 -static int testCompareFiles(const char *xml, const char *sexpr, int xendConfigVersion) { +static int testCompareFiles(const char *xml_rel, const char *sexpr_rel, + int xendConfigVersion) { char xmlData[MAX_FILE]; char sexprData[MAX_FILE]; char *gotxml = NULL; char *xmlPtr = &(xmlData[0]); char *sexprPtr = &(sexprData[0]); int ret = -1; + char xml[PATH_MAX]; + char sexpr[PATH_MAX]; + + snprintf(xml, sizeof xml - 1, "%s/tests/%s", abs_top_srcdir, xml_rel); + snprintf(sexpr, sizeof sexpr - 1, "%s/tests/%s", abs_top_srcdir, sexpr_rel); if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0) goto fail; @@ -175,6 +182,10 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + if (virtTestRun("SEXPR-2-XML PV config (version 1)", 1, testComparePVversion1, NULL) != 0) ret = -1; diff --git a/tests/test_conf.sh b/tests/test_conf.sh index b5a636633e..7735a666a6 100755 --- a/tests/test_conf.sh +++ b/tests/test_conf.sh @@ -1,9 +1,10 @@ #!/bin/bash +set -x NOK=0 -for f in confdata/*.conf +for f in $abs_top_srcdir/tests/confdata/*.conf do ./conftest $f > conftest.$$ - outfile=`echo $f | sed s+\.conf+\.out+` + outfile=`echo "$f" | sed s+\.conf$+\.out+` diff $outfile conftest.$$ > /dev/null if [ $? != 0 ] then diff --git a/tests/virshtest.c b/tests/virshtest.c index dc33c27da6..e26ef5c95d 100644 --- a/tests/virshtest.c +++ b/tests/virshtest.c @@ -9,6 +9,7 @@ #include "internal.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 static int testFilterLine(char *buffer, @@ -27,11 +28,15 @@ static int testFilterLine(char *buffer, return 0; } -static int testCompareOutput(const char *expect, const char *filter, const char *const argv[]) { +static int testCompareOutput(const char *expect_rel, const char *filter, + const char *const argv[]) { char expectData[MAX_FILE]; char actualData[MAX_FILE]; char *expectPtr = &(expectData[0]); char *actualPtr = &(actualData[0]); + char expect[PATH_MAX]; + + snprintf(expect, sizeof expect - 1, "%s/tests/%s", abs_top_srcdir, expect_rel); if (virtTestLoadFile(expect, &expectPtr, MAX_FILE) < 0) return -1; @@ -268,13 +273,13 @@ int main(int argc, char **argv) { int ret = 0; - char cwd[PATH_MAX]; char buffer[PATH_MAX]; - if (!getcwd(cwd, PATH_MAX-1)) + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) return 1; - snprintf(buffer, PATH_MAX-1, "test://%s/../docs/testnode.xml", cwd); + snprintf(buffer, PATH_MAX-1, "test://%s/docs/testnode.xml", abs_top_srcdir); buffer[PATH_MAX-1] = '\0'; progname = argv[0]; custom_uri = buffer; diff --git a/tests/xencapstest.c b/tests/xencapstest.c index 418bb7d1f9..5744262bc5 100644 --- a/tests/xencapstest.c +++ b/tests/xencapstest.c @@ -13,13 +13,14 @@ #include "xen_internal.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 static int testCompareFiles(const char *hostmachine, - const char *xml, - const char *cpuinfo, - const char *capabilities) { + const char *xml_rel, + const char *cpuinfo_rel, + const char *capabilities_rel) { char xmlData[MAX_FILE]; char *expectxml = &(xmlData[0]); char *actualxml = NULL; @@ -27,6 +28,17 @@ static int testCompareFiles(const char *hostmachine, int ret = -1; + char xml[PATH_MAX]; + char cpuinfo[PATH_MAX]; + char capabilities[PATH_MAX]; + + snprintf(xml, sizeof xml - 1, "%s/tests/%s", + abs_top_srcdir, xml_rel); + snprintf(cpuinfo, sizeof cpuinfo - 1, "%s/tests/%s", + abs_top_srcdir, cpuinfo_rel); + snprintf(capabilities, sizeof capabilities - 1, "%s/tests/%s", + abs_top_srcdir, capabilities_rel); + if (virtTestLoadFile(xml, &expectxml, MAX_FILE) < 0) goto fail; @@ -152,6 +164,10 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + virInitialize(); if (virtTestRun("Capabilities for i686, no PAE, no HVM", diff --git a/tests/xmconfigtest.c b/tests/xmconfigtest.c index 524ef52f7f..10024b9ebb 100644 --- a/tests/xmconfigtest.c +++ b/tests/xmconfigtest.c @@ -32,10 +32,12 @@ #include "conf.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 -static int testCompareParseXML(const char *xmcfg, const char *xml, int xendConfigVersion) { +static int testCompareParseXML(const char *xmcfg_rel, const char *xml_rel, + int xendConfigVersion) { char xmlData[MAX_FILE]; char xmcfgData[MAX_FILE]; char gotxmcfgData[MAX_FILE]; @@ -48,6 +50,11 @@ static int testCompareParseXML(const char *xmcfg, const char *xml, int xendConfi int wrote = MAX_FILE; void *old_priv; struct _xenUnifiedPrivate priv; + char xmcfg[PATH_MAX]; + char xml[PATH_MAX]; + + snprintf(xmcfg, sizeof xmcfg - 1, "%s/tests/%s", abs_top_srcdir, xmcfg_rel); + snprintf(xml, sizeof xml - 1, "%s/tests/%s", abs_top_srcdir, xml_rel); conn = virConnectOpenReadOnly("test:///default"); if (!conn) goto fail; @@ -92,7 +99,8 @@ static int testCompareParseXML(const char *xmcfg, const char *xml, int xendConfi return ret; } -static int testCompareFormatXML(const char *xmcfg, const char *xml, int xendConfigVersion) { +static int testCompareFormatXML(const char *xmcfg_rel, const char *xml_rel, + int xendConfigVersion) { char xmlData[MAX_FILE]; char xmcfgData[MAX_FILE]; char *xmlPtr = &(xmlData[0]); @@ -103,6 +111,11 @@ static int testCompareFormatXML(const char *xmcfg, const char *xml, int xendConf virConnectPtr conn; void *old_priv; struct _xenUnifiedPrivate priv; + char xmcfg[PATH_MAX]; + char xml[PATH_MAX]; + + snprintf(xmcfg, sizeof xmcfg - 1, "%s/tests/%s", abs_top_srcdir, xmcfg_rel); + snprintf(xml, sizeof xml - 1, "%s/tests/%s", abs_top_srcdir, xml_rel); conn = virConnectOpenReadOnly("test:///default"); if (!conn) goto fail; @@ -259,6 +272,10 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + /* Config -> XML */ if (virtTestRun("Paravirt old PVFB (Format)", 1, testCompareParavirtOldPVFBFormat, NULL) != 0) diff --git a/tests/xml2sexprtest.c b/tests/xml2sexprtest.c index 2fcc6b3270..4b356d4632 100644 --- a/tests/xml2sexprtest.c +++ b/tests/xml2sexprtest.c @@ -9,10 +9,12 @@ #include "internal.h" static char *progname; +static char *abs_top_srcdir; #define MAX_FILE 4096 -static int testCompareFiles(const char *xml, const char *sexpr, const char *name, int xendConfigVersion) { +static int testCompareFiles(const char *xml_rel, const char *sexpr_rel, + const char *name, int xendConfigVersion) { char xmlData[MAX_FILE]; char sexprData[MAX_FILE]; char *gotname = NULL; @@ -20,6 +22,11 @@ static int testCompareFiles(const char *xml, const char *sexpr, const char *name char *xmlPtr = &(xmlData[0]); char *sexprPtr = &(sexprData[0]); int ret = -1; + char xml[PATH_MAX]; + char sexpr[PATH_MAX]; + + snprintf(xml, sizeof xml - 1, "%s/tests/%s", abs_top_srcdir, xml_rel); + snprintf(sexpr, sizeof sexpr - 1, "%s/tests/%s", abs_top_srcdir, sexpr_rel); if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0) goto fail; @@ -225,6 +232,10 @@ main(int argc, char **argv) progname = argv[0]; + abs_top_srcdir = getenv("abs_top_srcdir"); + if (!abs_top_srcdir) + return 1; + if (argc > 1) { fprintf(stderr, "Usage: %s\n", progname); exit(EXIT_FAILURE);