From 2f8d2a872465026aa485a27d9ee5b1b0750bbfc5 Mon Sep 17 00:00:00 2001 From: nosamad Date: Sat, 23 Mar 2019 18:16:31 +0100 Subject: [PATCH] adds valgrind support for amd64 architectures --- .travis.yml | 6 +++--- CMakeLists.txt | 2 ++ Makefile | 17 ++++++++++++++--- build/amd64-ubuntu-builder.dockerfile | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f427e6..52dbbc9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,9 @@ env: global: - PARALLELMFLAGS="-j2" matrix: - - MARCH=amd64 - - MARCH=arm32v7 + - MARCH=amd64 CHECK_TARGET=memcheck + - MARCH=arm32v7 CHECK_TARGET=check before_script: - make MARCH=$MARCH script: -- make check MARCH=$MARCH +- make MARCH=$MARCH $CHECK_TARGET diff --git a/CMakeLists.txt b/CMakeLists.txt index 89bfbf5..2b9fc85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,6 +184,8 @@ endif(NOT WITHOUT_EXAMPLE) if(NOT WITHOUT_TESTS) +include (CTest) + pkg_check_modules(GTEST gtest_main) include(GoogleTest) diff --git a/Makefile b/Makefile index 7b54e17..3afe7b9 100644 --- a/Makefile +++ b/Makefile @@ -64,6 +64,8 @@ $(MARCH_ARM32V7)MARCHS += arm32v7 $(MARCH_ARM32V7)TARGETS += arm32v7-ubuntu-builder $(OUT)/arm32v7-ubuntu-builder/rules.mk: TARGET := arm32v7-ubuntu-builder +$(MARCH_AMD64)MEMCHECK_TARGETS += $(addprefix memcheck-,$(TARGETS)) + ARM_TARGETS = $(filter arm%,$(TARGETS)) $(addprefix $(OUT)/docker/,$(ARM_TARGETS)): $(OUT)/docker/qemu-arm-static-$(QEMU_VERSION) @@ -104,6 +106,7 @@ RULE_TARGETS = $(addprefix $(OUT)/,$(addsuffix /rules.mk,$(TARGETS))) BUILD_TARGETS := $(BUILD_TARGETS) CHECK_TARGETS := $(CHECK_TARGETS) +MEMCHECK_TARGETS := $(MEMCHECK_TARGETS) CONTAINER_GROUP := $(CONTAINER_GROUP) VERSION := $(VERSION) PROJECT_ROOT := $(PROJECT_ROOT) @@ -136,7 +139,11 @@ configure = $(call run,$1,cmake $(CMAKEFLAGS) ..) && touch $@ build_rule = build-$1: $$(OUT)/$1/CMakeCache.txt; $$(call build,$1) build = $(call run,$1,ninja $(PARALLELMFLAGS) $(GLOAS)) -check_rule = check-$1: build-$1; +check_rule = check-$1: build-$1; $$(call check,$1) +check = $(call run,$1,ctest $(CTESTFLAGS)) + +memcheck_rule = memcheck-$1: build-$1; $$(call memcheck,$1) +memcheck = $(call run,$1,ctest -T memcheck $(CTESTFLAGS)) # Rules @@ -156,6 +163,8 @@ $(RULE_TARGETS): $(PROJECT_ROOT)/Makefile | $(OUT_DIRS) echo; \ echo '$(call check_rule,$(TARGET))'; \ echo; \ + echo '$(call memcheck_rule,$(TARGET))'; \ + echo; \ echo '$(call run_rule,$(TARGET))'; \ } > $@ @@ -165,6 +174,9 @@ all: $(BUILD_TARGETS) .PHONY: check check: $(CHECK_TARGETS) +.PHONY: memcheck +memcheck: $(MEMCHECK_TARGETS) + .PHONY: clean clean: $(CLEAN_TARGETS) $(SILENT)-rm -rf $(OUT_DIRS) @@ -176,8 +188,7 @@ get-deps: $(EXTRACT_TARGETS) debug-print-%: @printf '%s\n' '$*:' $($*) -$(CHECK_TARGETS): GLOAS := test -$(CHECK_TARGETS): CONTAINER_USER := user +$(CHECK_TARGETS) $(MEMCHECK_TARGETS): CONTAINER_USER := user $(OUT)/docker/qemu-arm-static-$(QEMU_VERSION): $(SILENT) \ diff --git a/build/amd64-ubuntu-builder.dockerfile b/build/amd64-ubuntu-builder.dockerfile index 95dbc44..6e98aed 100644 --- a/build/amd64-ubuntu-builder.dockerfile +++ b/build/amd64-ubuntu-builder.dockerfile @@ -10,6 +10,7 @@ RUN set -x \ cmake \ ninja-build \ pkg-config \ + valgrind \ && rm -rf /var/lib/apt/lists/* COPY src /usr/local/src