diff options
author | Jakub Czapiga <jacz@semihalf.com> | 2022-11-09 10:38:11 +0100 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-12-14 13:37:39 +0000 |
commit | 3c8a3d1295e7f26e622e35ae7241044017ec771b (patch) | |
tree | 8a875a5396cbc2ffb63fa1fe778eb07524bf86e7 | |
parent | f9ee35ea3416929519a12ba9148b4c39168d1209 (diff) |
tests/Makefile.common: Allow to disable test framework with parameter
Test framework can be used as a base for other test-like utilities - for
example look at screenshoot utility in depthcharge. Sometimes CMocka is
not required and even makes things problematic. Thanks to this patch one
can set -no_test_framework parameter to instruct framework not to
include and link selected test against CMocka library.
Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
Change-Id: I01dc7c6c50e6ae2f7f71bd6752c2d5f2cc7c3cdc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70107
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jan Dabros <jsd@semihalf.com>
-rw-r--r-- | tests/Makefile.common | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/Makefile.common b/tests/Makefile.common index 595f870aca..39e39202d0 100644 --- a/tests/Makefile.common +++ b/tests/Makefile.common @@ -55,14 +55,10 @@ TEST_CFLAGS += -std=gnu11 -Os -ffunction-sections -fdata-sections -fno-builtin TEST_CFLAGS += -D__TEST__ -TEST_CFLAGS += -I$(cmockasrc)/include - ifneq ($(filter-out 0,$(TEST_PRINT)),) TEST_CFLAGS += -DTEST_PRINT=1 endif -# Link against Cmocka -TEST_LDFLAGS := -L$(cmockaobj)/src -lcmocka -Wl,-rpath=$(cmockaobj)/src TEST_LDFLAGS += -Wl,--gc-sections # Some memlayout symbols don't work with userspace relocation -- disable it. @@ -70,7 +66,7 @@ TEST_CFLAGS += -fno-pie -fno-pic TEST_LDFLAGS += -no-pie # Extra attributes for unit tests, declared per test -attributes := srcs cflags config mocks stage +attributes := srcs cflags config mocks no_test_framework stage # Copy attributes of one test to another. # $1 - input test name @@ -136,7 +132,15 @@ $($(1)-objs): $(testobj)/$(1)/%.o: $$$$*.c $$($(1)-config-file) done ; \ $(OBJCOPY) $$@.orig $$$$objcopy_wrap_flags $$@ -$($(1)-bin): $($(1)-objs) $(CMOCKA_LIB) +# Link against Cmocka if not disabled +ifeq ($(strip $(filter-out 0 n no,$($(1)-no_test_framework))),) +$($(1)-objs): TEST_CFLAGS += -I$(cmockasrc)/include +$($(1)-bin): TEST_LDFLAGS += -L$(cmockaobj)/src -lcmocka -Wl,-rpath=$(cmockaobj)/src +$($(1)-bin): TEST_CFLAGS += -I$(cmockasrc)/include +$($(1)-bin): $(CMOCKA_LIB) +endif + +$($(1)-bin): $($(1)-objs) $(HOSTCC) $$^ $($(1)-cflags) $$(TEST_LDFLAGS) -o $$@ endef |