From 4710921284adbf5005421515fbab5dd1aa38e9aa Mon Sep 17 00:00:00 2001 From: David Phillips Date: Sat, 13 Feb 2021 18:21:36 +1300 Subject: Add test runner This patch adds a "magic" test runner which discovers all test cases in the executable into which it is linked. This is achieved through the use of a special macro used to declare tests, so that they are added onto a linker- generated list. The linker list logic is largely taken from U-Boot source code, with minor some tweaks made. This linker-generated list is then used at runtime in order to pick out every test case which can be run, resulting in a cross-file "suite" of unity unit tests, rather than separate test executables per module. A sample test module, test_test.c is provided to illustrate the test runner's ability to correctly discover tests across multiple translation units. --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index e05f490..73d957d 100644 --- a/Makefile +++ b/Makefile @@ -51,9 +51,11 @@ clean: test: \ $(UNITY_O) \ + build/native/test_runner.o \ build/native/test_util.o \ + build/native/test_test.o \ build/native/util.o - $(CC) $(LDFLAGS) -o $@ $^ + $(CC) $(LDFLAGS) -Wl,-T,linker_list.lds -o $@ $^ ./$@ # ELF for real hardware. No mock/sim hardware included (except barometer, -- cgit v1.1