aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2012-04-26 11:20:44 -0400
committerGavin Andresen <gavinandresen@gmail.com>2012-04-26 11:20:44 -0400
commit9e71a5cd236e0b6639f55f2f6520aaa06eac0523 (patch)
treedd2cd93d14ce0df5798ab6d539eedc016e768d53
parent08e663d7e2fa194efbffef41cffe9626b71acdaa (diff)
Define TEST_DATA_DIR so unit tests can be run from any current working directory
-rw-r--r--src/makefile.linux-mingw14
-rw-r--r--src/makefile.mingw16
-rw-r--r--src/makefile.osx3
-rw-r--r--src/makefile.unix2
-rw-r--r--src/test/script_tests.cpp8
5 files changed, 26 insertions, 17 deletions
diff --git a/src/makefile.linux-mingw b/src/makefile.linux-mingw
index 1ea65cd2e5..8e4e638176 100644
--- a/src/makefile.linux-mingw
+++ b/src/makefile.linux-mingw
@@ -31,6 +31,7 @@ DEFS=-D_MT -DWIN32 -D_WINDOWS -DNOPCH -DBOOST_THREAD_USE_LIB
DEBUGFLAGS=-g
CFLAGS=-O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef USE_UPNP
LIBPATHS += -L"$(DEPSDIR)/miniupnpc"
@@ -78,20 +79,19 @@ obj/%.o: %.cpp $(HEADERS)
bitcoind.exe: $(OBJS:obj/%=obj/%)
i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-obj/test/%.o: obj/test/%.cpp $(HEADERS)
- i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
+obj-test/%.o: test/%.cpp $(HEADERS)
+ i586-mingw32msvc-g++ -c $(TESTDEFS) $(CFLAGS) -o $@ $<
-test_bitcoin.exe: obj/test/test_bitcoin.o $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
- i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -lboost_unit_test_framework-mt-s
+test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
+ i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS)
clean:
-rm -f obj/*.o
- -rm -f obj/test/*.o
- -rm -f test/*.o
- -rm -f headers.h.gch
-rm -f bitcoind.exe
+ -rm -f obj-test/*.o
-rm -f test_bitcoin.exe
-rm -f src/build.h
diff --git a/src/makefile.mingw b/src/makefile.mingw
index 5584df5603..abcdcce675 100644
--- a/src/makefile.mingw
+++ b/src/makefile.mingw
@@ -27,6 +27,7 @@ DEFS=-DWIN32 -D_WINDOWS -DNOPCH -DBOOST_THREAD_USE_LIB
DEBUGFLAGS=-g
CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef USE_UPNP
INCLUDEPATHS += -I"C:\miniupnpc-1.6-mgw"
@@ -71,17 +72,16 @@ obj/%.o: %.cpp $(HEADERS)
bitcoind.exe: $(OBJS:obj/%=obj/%)
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
-obj/test/test_bitcoin.o: $(wildcard test/*.cpp) $(HEADERS)
- g++ -c $(CFLAGS) -o $@ test/test_bitcoin.cpp
+TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-test_bitcoin.exe: obj/test/test_bitcoin.o $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
- g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+obj-test/%.o: test/%.cpp $(HEADERS)
+ g++ -c $(TESTDEFS) $(CFLAGS) -o $@ $<
+
+test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
+ g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS)
clean:
-del /Q bitcoind test_bitcoin
-del /Q obj\*
- -del /Q obj\nogui\*
- -del /Q obj\test\*
- -del /Q test\*.o
- -del /Q headers.h.gch
+ -del /Q obj-test\*
-del /Q build.h
diff --git a/src/makefile.osx b/src/makefile.osx
index aaac6700bd..be95aab446 100644
--- a/src/makefile.osx
+++ b/src/makefile.osx
@@ -22,6 +22,9 @@ LIBPATHS= \
USE_UPNP:=1
LIBS= -dead_strip
+
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
+
ifdef STATIC
# Build STATIC if you are redistributing the bitcoind binary
TESTLIBS += \
diff --git a/src/makefile.unix b/src/makefile.unix
index fc901ca02c..146f6b8ebc 100644
--- a/src/makefile.unix
+++ b/src/makefile.unix
@@ -9,6 +9,8 @@ DEFS=-DNOPCH
DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
+
LMODE = dynamic
LMODE2 = dynamic
ifdef STATIC
diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp
index 988bd24de8..745df4bd7b 100644
--- a/src/test/script_tests.cpp
+++ b/src/test/script_tests.cpp
@@ -5,8 +5,9 @@
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/split.hpp>
-#include <boost/test/unit_test.hpp>
#include <boost/foreach.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include <boost/test/unit_test.hpp>
#include "json/json_spirit_reader_template.h"
#include "json/json_spirit_writer_template.h"
#include "json/json_spirit_utils.h"
@@ -87,10 +88,13 @@ read_json(const std::string& filename)
{
namespace fs = boost::filesystem;
fs::path testFile = fs::current_path() / "test" / "data" / filename;
+
+#ifdef TEST_DATA_DIR
if (!fs::exists(testFile))
{
- fs::path testFile = fs::path(__FILE__).parent_path() / "data" / filename;
+ testFile = fs::path(BOOST_PP_STRINGIZE(TEST_DATA_DIR)) / filename;
}
+#endif
ifstream ifs(testFile.string().c_str(), ifstream::in);
Value v;