From: Gavin Andresen Date: Thu, 26 Apr 2012 15:20:44 +0000 (-0400) Subject: Define TEST_DATA_DIR so unit tests can be run from any current working directory X-Git-Tag: v0.4.0-unstable~129^2~45 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=9e71a5cd236e0b6639f55f2f6520aaa06eac0523 Define TEST_DATA_DIR so unit tests can be run from any current working directory --- diff --git a/src/makefile.linux-mingw b/src/makefile.linux-mingw index 1ea65cd..8e4e638 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 5584df5..abcdcce 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 aaac670..be95aab 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 fc901ca..146f6b8 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 988bd24..745df4b 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -5,8 +5,9 @@ #include #include #include -#include #include +#include +#include #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;