Browse Source

Define TEST_DATA_DIR so unit tests can be run from any current working directory

tags/v0.15.1
Gavin Andresen 9 years ago
parent
commit
9e71a5cd23
5 changed files with 26 additions and 17 deletions
  1. 7
    7
      src/makefile.linux-mingw
  2. 8
    8
      src/makefile.mingw
  3. 3
    0
      src/makefile.osx
  4. 2
    0
      src/makefile.unix
  5. 6
    2
      src/test/script_tests.cpp

+ 7
- 7
src/makefile.linux-mingw View File

@@ -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


+ 8
- 8
src/makefile.mingw View File

@@ -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

+ 3
- 0
src/makefile.osx View File

@@ -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 += \

+ 2
- 0
src/makefile.unix View File

@@ -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

+ 6
- 2
src/test/script_tests.cpp View File

@@ -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;

Loading…
Cancel
Save