diff options
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | tests/Makefile | 14 | ||||
| -rw-r--r-- | tests/tests.supp | 6 |
3 files changed, 26 insertions, 2 deletions
@@ -44,6 +44,7 @@ TEST_OBJ = $(patsubst %.c,%.o,\ $(wildcard tests/t[0-9][0-9][0-9][0-9]-*.c)) TEST_EXE = $(patsubst %.o,%.exe,$(TEST_OBJ)) TEST_RUN = $(patsubst %.exe,%.run,$(TEST_EXE)) +TEST_VAL = $(patsubst %.exe,%.val,$(TEST_EXE)) ifndef NO_OPENSSL SHA1_HEADER = <openssl/sha.h> @@ -82,6 +83,9 @@ apidocs: test: $(GIT_LIB) @$(MAKE) -C tests --no-print-directory test +valgrind: $(GIT_LIB) + @$(MAKE) -C tests --no-print-directory valgrind + sparse: cgcc -no-compile $(ALL_CFLAGS) $(SPARSE_FLAGS) $(SRC_C) @@ -116,7 +120,7 @@ $(GIT_LIB): $(OBJS) $(AR) $(GIT_LIB) $(OBJS) $(RANLIB) $(GIT_LIB) -$(TEST_OBJ) $(TEST_EXE) $(TEST_RUN): +$(TEST_OBJ) $(TEST_EXE) $(TEST_RUN) $(TEST_VAL): @$(MAKE) -C tests --no-print-directory \ OS=$(OS) NO_OPENSSL=$(NO_OPENSSL) $(@F) @@ -125,7 +129,7 @@ libgit2.pc: libgit2.pc.in .PHONY: all .PHONY: clean -.PHONY: test $(TEST_RUN) $(TEST_EXE) $(TEST_OBJ) +.PHONY: test $(TEST_VAL) $(TEST_RUN) $(TEST_EXE) $(TEST_OBJ) .PHONY: apidocs .PHONY: install-headers .PHONY: install uninstall diff --git a/tests/Makefile b/tests/Makefile index 7ce510638..813b24636 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -9,6 +9,8 @@ CFLAGS = -g -O2 -Wall LIBS = -L.. -lgit2 -lz OS = unix +VFLAGS = -q --error-exitcode=1 --leak-check=yes --suppressions=../tests.supp + CRYPTO_LIB = -lcrypto EXTRA_LIBS = @@ -21,6 +23,7 @@ TEST_OBJ = $(patsubst %.c,%.o,\ $(wildcard t[0-9][0-9][0-9][0-9]-*.c)) TEST_EXE = $(patsubst %.o,%.exe,$(TEST_OBJ)) TEST_RUN = $(patsubst %.exe,%.run,$(TEST_EXE)) +TEST_VAL = $(patsubst %.exe,%.val,$(TEST_EXE)) ifndef NO_OPENSSL EXTRA_LIBS += $(CRYPTO_LIB) @@ -40,6 +43,8 @@ clean: test: $(TEST_RUN) +valgrind: $(TEST_VAL) + .c.o: $(CC) $(ALL_CFLAGS) -c $< -o $@ @@ -79,6 +84,15 @@ $(TEST_RUN): %.run: %.exe else rmdir $$t; exit 1; \ fi +$(TEST_VAL): %.val: %.exe + @t=trash-$(<F) && \ + mkdir $$t && \ + if (cd $$t && valgrind $(VFLAGS) ../$<); \ + then rm -rf $$t; \ + else rmdir $$t; exit 1; \ + fi + .PHONY: all .PHONY: clean .PHONY: test $(TEST_RUN) +.PHONY: $(TEST_VAL) diff --git a/tests/tests.supp b/tests/tests.supp new file mode 100644 index 000000000..fe9d965dc --- /dev/null +++ b/tests/tests.supp @@ -0,0 +1,6 @@ +{ + ignore-zlib-cond + Memcheck:Cond + obj:*libz.so* +} + |
