diff --git a/.travis.yml b/.travis.yml index 8462b9712..73ff04863 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ matrix: packages: - gcc-4.8 - g++-4.8 - env: PLATFORM="Ubuntu 12.04 container" CMD="make zlibwrapper && make clean && make -C tests test-zstd-nolegacy && make clean && make clean && make cmaketest && make clean && make -C contrib/pzstd googletest && make -C contrib/pzstd all && make -C contrib/pzstd check && make -C contrib/pzstd clean" + env: PLATFORM="Ubuntu 12.04 container" CMD="make zlibwrapper && make clean && make -C tests test-zstd-nolegacy && make clean && make clean && make cmaketest && make clean && make -C contrib/pzstd googletest pzstd tests check && make -C contrib/pzstd clean" - os: linux sudo: false env: PLATFORM="Ubuntu 12.04 container" CMD="make usan" diff --git a/appveyor.yml b/appveyor.yml index fbdc30c40..bce87a3ab 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -51,7 +51,8 @@ build_script: ECHO *** Building pzstd for %PLATFORM% && ECHO *** && make -C contrib\pzstd googletest-mingw64 && - make -C contrib\pzstd all && + make -C contrib\pzstd pzstd.exe && + make -C contrib\pzstd tests && make -C contrib\pzstd check && make -C contrib\pzstd clean ) diff --git a/contrib/pzstd/Makefile b/contrib/pzstd/Makefile index ad0e55673..99d955e94 100644 --- a/contrib/pzstd/Makefile +++ b/contrib/pzstd/Makefile @@ -34,7 +34,7 @@ LDFLAGS ?= PZSTD_INC = -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(PROGDIR) -I. GTEST_INC = -isystem googletest/googletest/include -PZSTD_CPPFLAGS = $(PZSTD_INC) $(GTEST_INC) +PZSTD_CPPFLAGS = $(PZSTD_INC) PZSTD_CCXXFLAGS = PZSTD_CFLAGS = $(PZSTD_CCXXFLAGS) PZSTD_CXXFLAGS = $(PZSTD_CCXXFLAGS) @@ -47,10 +47,10 @@ ALL_LDFLAGS = $(EXTRA_FLAGS) $(LDFLAGS) $(PZSTD_LDFLAGS) # gtest libraries need to go before "-lpthread" because they depend on it. GTEST_LIB = -L googletest/build/googlemock/gtest -LIBS = $(GTEST_LIB) -lpthread +LIBS = # Compilation commands -LD_COMMAND = $(CXX) $^ $(ALL_LDFLAGS) $(LIBS) -o $@ +LD_COMMAND = $(CXX) $^ $(ALL_LDFLAGS) $(LIBS) -lpthread -o $@ CC_COMMAND = $(CC) $(DEPFLAGS) $(ALL_CFLAGS) -c $< -o $@ CXX_COMMAND = $(CXX) $(DEPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@ @@ -109,7 +109,7 @@ uninstall: # Targets for many different builds .PHONY: all all: PZSTD_CPPFLAGS += -DNDEBUG -all: pzstd$(EXT) tests roundtrip +all: pzstd$(EXT) .PHONY: debug debug: EXTRA_FLAGS += -g @@ -130,7 +130,7 @@ ubsan: debug .PHONY: all32 all32: EXTRA_FLAGS += -m32 -all32: all +all32: all tests roundtrip .PHONY: debug32 debug32: EXTRA_FLAGS += -m32 @@ -177,12 +177,14 @@ test/RoundTripTest$(EXT): test/RoundTripTest.o $(PROGDIR)/datagen.o Options.o \ Pzstd.o SkippableFrame.o $(ZSTDDIR)/libzstd.a $(LD_COMMAND) -test/%Test$(EXT): GTEST_LIB += -lgtest -lgtest_main +test/%Test$(EXT): PZSTD_LDFLAGS += $(GTEST_LIB) +test/%Test$(EXT): LIBS += -lgtest -lgtest_main test/%Test$(EXT): test/%Test.o $(PROGDIR)/datagen.o Options.o Pzstd.o \ SkippableFrame.o $(ZSTDDIR)/libzstd.a $(LD_COMMAND) -utils/test/%Test$(EXT): GTEST_LIB += -lgtest -lgtest_main +utils/test/%Test$(EXT): PZSTD_LDFLAGS += $(GTEST_LIB) +utils/test/%Test$(EXT): LIBS += -lgtest -lgtest_main utils/test/%Test$(EXT): utils/test/%Test.o $(LD_COMMAND) @@ -233,10 +235,12 @@ $(PROGDIR)/%.o: $(PROGDIR)/%.c $(CXX_COMMAND) $(POSTCOMPILE) +test/%.o: PZSTD_CPPFLAGS += $(GTEST_INC) test/%.o: test/%.cpp $(CXX_COMMAND) $(POSTCOMPILE) +utils/test/%.o: PZSTD_CPPFLAGS += $(GTEST_INC) utils/test/%.o: utils/test/%.cpp $(CXX_COMMAND) $(POSTCOMPILE) diff --git a/contrib/pzstd/README.md b/contrib/pzstd/README.md index 3fe7b0b9d..84d945815 100644 --- a/contrib/pzstd/README.md +++ b/contrib/pzstd/README.md @@ -51,5 +51,6 @@ Pigz cannot do parallel decompression, it simply does each of reading, decompres ## Tests Tests require that you have [gtest](https://github.com/google/googletest) installed. -Modify `GTEST_INC` and `GTEST_LIB` in `test/Makefile` and `utils/test/Makefile` to work for your install of gtest. -Then run `make test` in the `contrib/pzstd` directory. +Set `GTEST_INC` and `GTEST_LIB` in `Makefile` to specify the location of the gtest headers and libraries. +Alternatively, run `make googletest`, which will clone googletest and build it. +Run `make tests && make check` to run tests.