diff --git a/circleci.sh b/circleci.sh index 7b64a03eb598..478869e8424d 100755 --- a/circleci.sh +++ b/circleci.sh @@ -114,6 +114,8 @@ coverage() make -j$N -C src -f posix.mak MODEL=$MODEL HOST_DMD=../_${build_path}/host_dmd clean make -j$N -C src -f posix.mak MODEL=$MODEL HOST_DMD=../_${build_path}/host_dmd ENABLE_COVERAGE=1 + cp $build_path/dmd _${build_path}/host_dmd_cov + make -j1 -C src -f posix.mak MODEL=$MODEL HOST_DMD=../_${build_path}/host_dmd_cov ENABLE_COVERAGE=1 unittest make -j1 -C test MODEL=$MODEL ARGS="-O -inline -release" DMD_TEST_COVERAGE=1 } diff --git a/posix.mak b/posix.mak index e0815581837e..c7d73baa1eea 100644 --- a/posix.mak +++ b/posix.mak @@ -5,7 +5,7 @@ ECTAGS_FILES = src/*.[chd] src/backend/*.[chd] src/root/*.[chd] src/tk/*.[chd] .PHONY: all clean test install auto-tester-build auto-tester-test toolchain-info all: - $(QUIET)$(MAKE) -C src -f posix.mak + $(QUIET)$(MAKE) -C src -f posix.mak all auto-tester-build: toolchain-info $(QUIET)$(MAKE) -C src -f posix.mak auto-tester-build ENABLE_RELEASE=1 @@ -21,6 +21,7 @@ clean: $(RM) tags test: + $(QUIET)$(MAKE) -C src -f posix.mak unittest $(QUIET)$(MAKE) -C test -f Makefile html: diff --git a/src/ddmd/mars.d b/src/ddmd/mars.d index 65557fc1da0b..23f303f12762 100644 --- a/src/ddmd/mars.d +++ b/src/ddmd/mars.d @@ -1077,6 +1077,7 @@ Language changes listed by -transition=id: * Returns: * Return code of the application */ +version(unittest) {} else int main() { import core.memory; diff --git a/src/posix.mak b/src/posix.mak index dd218305f66f..ff889d128841 100644 --- a/src/posix.mak +++ b/src/posix.mak @@ -459,6 +459,11 @@ $G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/newdelete.o $G/backend.a $G/lexer.a $(STRING CC="$(HOST_CXX)" $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J../res -L-lstdc++ $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $(LEXER_ROOT),$^) endif +$G/dmd-unittest: $(DMD_SRCS) $(ROOT_SRCS) $G/newdelete.o $G/lexer.a $(G_GLUE_OBJS) $(G_OBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) + CC=$(HOST_CXX) $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J../res -L-lstdc++ $(DFLAGS) -g -unittest -main $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^) + +unittest: $G/dmd-unittest + $< clean: rm -R $(GENERATED)