]> granicus.if.org Git - esp-idf/commitdiff
heap: Change test_multi_heap_on_host multi-config to bash script not Makefile
authorAngus Gratton <angus@espressif.com>
Tue, 3 Apr 2018 02:04:12 +0000 (12:04 +1000)
committerAngus Gratton <gus@projectgus.com>
Tue, 3 Apr 2018 06:34:02 +0000 (16:34 +1000)
Hopefully fix some CI building issues with parallel builds.

.gitlab-ci.yml
components/heap/test_multi_heap_host/Makefile
components/heap/test_multi_heap_host/Makefile.test [deleted file]
components/heap/test_multi_heap_host/test_all_configs.sh [new file with mode: 0755]

index 27e9e0bbcd16c3cbea2265806b670fa4471a0493..b354379a508f5afecaf6303cf046f21abafdb0ce 100644 (file)
@@ -261,7 +261,7 @@ test_multi_heap_on_host:
     - wl_host_test
   script:
     - cd components/heap/test_multi_heap_host
-    - make test
+    - ./test_all_configs.sh
 
 test_build_system:
   stage: test
index 9c9c09a5c791c620847d907f9fe7ec1ff334cf25..f0d5ab1fc145a0ec48602eb41b909ee278e1c07e 100644 (file)
@@ -1,18 +1,49 @@
-test: test_poisoning_disabled \
-      test_poisoning_light \
-      test_poisoning_comprehensive
+TEST_PROGRAM=test_multi_heap
+all: $(TEST_PROGRAM)
 
-test_poisoning_disabled:
-       @echo ==== HEAP_POISONING_DISABLED ====
-       CPPFLAGS= $(MAKE) -f Makefile.test clean test
+SOURCE_FILES = $(abspath \
+    ../multi_heap.c \
+       ../multi_heap_poisoning.c \
+       test_multi_heap.cpp \
+       main.cpp \
+    )
 
-test_poisoning_light:
-       @echo ==== HEAP_POISONING_LIGHT ====
-       CPPFLAGS=-DCONFIG_HEAP_POISONING_LIGHT $(MAKE) -f Makefile.test clean test
+INCLUDE_FLAGS = -I../include -I../../../tools/catch
 
-test_poisoning_comprehensive:
-       @echo ==== HEAP_POISONING_COMPREHENSIVE ====
-       CPPFLAGS=-DCONFIG_HEAP_POISONING_COMPREHENSIVE $(MAKE) -f Makefile.test clean test
+GCOV ?= gcov
 
-%:
-       CPPFLAGS=-DCONFIG_HEAP_POISONING_COMPREHENSIVE $(MAKE) -f Makefile.test $@
+CPPFLAGS += $(INCLUDE_FLAGS) -D CONFIG_LOG_DEFAULT_LEVEL -g -fstack-protector-all -m32
+CFLAGS += -Wall -Werror -fprofile-arcs -ftest-coverage
+CXXFLAGS += -std=c++11 -Wall -Werror  -fprofile-arcs -ftest-coverage
+LDFLAGS += -lstdc++ -fprofile-arcs -ftest-coverage -m32
+
+OBJ_FILES = $(filter %.o, $(SOURCE_FILES:.cpp=.o) $(SOURCE_FILES:.c=.o))
+
+COVERAGE_FILES = $(OBJ_FILES:.o=.gc*)
+
+$(TEST_PROGRAM): $(OBJ_FILES)
+       g++ $(LDFLAGS) -o $(TEST_PROGRAM) $(OBJ_FILES)
+
+$(OUTPUT_DIR):
+       mkdir -p $(OUTPUT_DIR)
+
+test: $(TEST_PROGRAM)
+       ./$(TEST_PROGRAM)
+
+$(COVERAGE_FILES): $(TEST_PROGRAM) test
+
+coverage.info: $(COVERAGE_FILES)
+       find ../ -name "*.gcno" -exec $(GCOV) -r -pb {} +
+       lcov --capture --directory $(abspath ../) --no-external --output-file coverage.info --gcov-tool $(GCOV)
+
+coverage_report: coverage.info
+       genhtml coverage.info --output-directory coverage_report
+       @echo "Coverage report is in coverage_report/index.html"
+
+clean:
+       rm -f $(OBJ_FILES) $(TEST_PROGRAM)
+       rm -f $(COVERAGE_FILES) *.gcov
+       rm -rf coverage_report/
+       rm -f coverage.info
+
+.PHONY: clean all test
diff --git a/components/heap/test_multi_heap_host/Makefile.test b/components/heap/test_multi_heap_host/Makefile.test
deleted file mode 100644 (file)
index f0d5ab1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-TEST_PROGRAM=test_multi_heap
-all: $(TEST_PROGRAM)
-
-SOURCE_FILES = $(abspath \
-    ../multi_heap.c \
-       ../multi_heap_poisoning.c \
-       test_multi_heap.cpp \
-       main.cpp \
-    )
-
-INCLUDE_FLAGS = -I../include -I../../../tools/catch
-
-GCOV ?= gcov
-
-CPPFLAGS += $(INCLUDE_FLAGS) -D CONFIG_LOG_DEFAULT_LEVEL -g -fstack-protector-all -m32
-CFLAGS += -Wall -Werror -fprofile-arcs -ftest-coverage
-CXXFLAGS += -std=c++11 -Wall -Werror  -fprofile-arcs -ftest-coverage
-LDFLAGS += -lstdc++ -fprofile-arcs -ftest-coverage -m32
-
-OBJ_FILES = $(filter %.o, $(SOURCE_FILES:.cpp=.o) $(SOURCE_FILES:.c=.o))
-
-COVERAGE_FILES = $(OBJ_FILES:.o=.gc*)
-
-$(TEST_PROGRAM): $(OBJ_FILES)
-       g++ $(LDFLAGS) -o $(TEST_PROGRAM) $(OBJ_FILES)
-
-$(OUTPUT_DIR):
-       mkdir -p $(OUTPUT_DIR)
-
-test: $(TEST_PROGRAM)
-       ./$(TEST_PROGRAM)
-
-$(COVERAGE_FILES): $(TEST_PROGRAM) test
-
-coverage.info: $(COVERAGE_FILES)
-       find ../ -name "*.gcno" -exec $(GCOV) -r -pb {} +
-       lcov --capture --directory $(abspath ../) --no-external --output-file coverage.info --gcov-tool $(GCOV)
-
-coverage_report: coverage.info
-       genhtml coverage.info --output-directory coverage_report
-       @echo "Coverage report is in coverage_report/index.html"
-
-clean:
-       rm -f $(OBJ_FILES) $(TEST_PROGRAM)
-       rm -f $(COVERAGE_FILES) *.gcov
-       rm -rf coverage_report/
-       rm -f coverage.info
-
-.PHONY: clean all test
diff --git a/components/heap/test_multi_heap_host/test_all_configs.sh b/components/heap/test_multi_heap_host/test_all_configs.sh
new file mode 100755 (executable)
index 0000000..46ee8a0
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Run the test suite with all configurations enabled
+#
+
+FAIL=0
+
+for FLAGS in "CONFIG_HEAP_POISONING_NONE" "CONFIG_HEAP_POISONING_LIGHT" "CONFIG_HEAP_POISONING_COMPREHENSIVE"; do
+    echo "==== Testing with config: ${FLAGS} ===="
+    CPPFLAGS="-D${FLAGS}" make clean test || FAIL=1
+done
+
+make clean
+
+if [ $FAIL == 0 ]; then
+    echo "All configurations passed"
+else
+    echo "Some configurations failed, see log."
+    exit 1
+fi