From: Christian Hofstaedtler <christian@hofstaedtler.name>
Date: Mon, 26 Jan 2015 22:54:35 +0000 (+0100)
Subject: Fix testrunner for out-of-tree builds
X-Git-Tag: rec-3.7.0-rc2~25^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a245e51c0b06c540dd162821c41f45e90c603a8b;p=pdns

Fix testrunner for out-of-tree builds
---

diff --git a/pdns/Makefile.am b/pdns/Makefile.am
index 4d439dbc5..299159bbc 100644
--- a/pdns/Makefile.am
+++ b/pdns/Makefile.am
@@ -1006,7 +1006,7 @@ pdns_control_SOURCES = \
 pdns_control_LDFLAGS = $(THREADFLAGS)
 
 if UNIT_TESTS
-TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message
+TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
 TESTS=testrunner
 else
 check-local:
diff --git a/pdns/test-bindparser_cc.cc b/pdns/test-bindparser_cc.cc
index b1111cbda..039a04449 100644
--- a/pdns/test-bindparser_cc.cc
+++ b/pdns/test-bindparser_cc.cc
@@ -7,15 +7,20 @@
 #include "pdnsexception.hh"
 #include <utility>
 #include <boost/foreach.hpp>
+#include <sstream>
+#include <cstdlib>
 
 using std::string;
 
 BOOST_AUTO_TEST_SUITE(bindparser_cc)
 
 BOOST_AUTO_TEST_CASE(test_parser) {
+        std::ostringstream pathbuf;
         BindParser BP;
         BOOST_CHECK_THROW( BP.parse("../regression-tests/named.confx"), PDNSException);
-        BP.parse("../pdns/named.conf.parsertest"); // indirect path because Jenkins runs us from ../regression-tests/
+        BP.setVerbose(true);
+        pathbuf << std::getenv("SRCDIR") << "/../pdns/named.conf.parsertest";
+        BP.parse(pathbuf.str());
 
         vector<BindDomainInfo> domains=BP.getDomains();
         BOOST_CHECK_EQUAL(domains.size(), 11);
diff --git a/pdns/test-zoneparser_tng_cc.cc b/pdns/test-zoneparser_tng_cc.cc
index 08bab18f1..270c7fd87 100644
--- a/pdns/test-zoneparser_tng_cc.cc
+++ b/pdns/test-zoneparser_tng_cc.cc
@@ -11,6 +11,7 @@
 #include "zoneparser-tng.hh"
 #include "dnsrecords.hh"
 #include <fstream>
+#include <cstdlib>
 
 BOOST_AUTO_TEST_SUITE(test_zoneparser_tng_cc)
 
@@ -18,10 +19,12 @@ BOOST_AUTO_TEST_CASE(test_tng_record_types) {
   reportAllTypes();
   reportFancyTypes();
 
-  ZoneParserTNG zp("../regression-tests/zones/unit.test", "unit.test");
+  std::ostringstream pathbuf;
+  pathbuf << std::getenv("SRCDIR") << "/../regression-tests/zones/unit.test";
+  ZoneParserTNG zp(pathbuf.str(), "unit.test");
   DNSResourceRecord rr;
 
-  boost::iostreams::stream<boost::iostreams::file_source> ifs("../regression-tests/zones/unit.test");
+  boost::iostreams::stream<boost::iostreams::file_source> ifs(pathbuf.str());
 
   while(zp.get(rr)) {
     // make sure these concur.