1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- From d654c14aa2f150d7b15abc89a3c267b24ca123a1 Mon Sep 17 00:00:00 2001
- From: Jakub Czapiga <jacz@semihalf.com>
- Date: Wed, 28 Apr 2021 16:50:51 +0200
- Subject: [PATCH 11/19] tests: Enable config override for tests
- Some tests require to change kconfig symbols values to cover the code.
- This patch enables one to set these vaues using <test-name>-config
- variable.
- Example for integer values.
- timestamp-test-config += CONFIG_HAVE_MONOTONIC_TIMER=1
- Example for string values. Notice escaped quotes.
- spd_cache-test-config += CONFIG_SPD_CACHE_FMAP_NAME=\"SPD_CACHE_FMAP_NAME\"
- Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
- Change-Id: I1aeb78362c2609fbefbfd91c0f58ec19ed258ee1
- Reviewed-on: https://review.coreboot.org/c/coreboot/+/52937
- Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
- Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
- Reviewed-by: Julius Werner <jwerner@chromium.org>
- ---
- tests/Makefile.inc | 22 ++++++++++++++++++----
- 1 file changed, 18 insertions(+), 4 deletions(-)
- diff --git a/tests/Makefile.inc b/tests/Makefile.inc
- index 44e3c69618..cd25e0f809 100644
- --- a/tests/Makefile.inc
- +++ b/tests/Makefile.inc
- @@ -11,7 +11,7 @@ CMAKE:= cmake
-
- TEST_DEFAULT_CONFIG = $(top)/configs/config.emulation_qemu_x86_i440fx
- TEST_DOTCONFIG = $(testobj)/.config
- -TEST_KCONFIG_AUTOHEADER := $(testobj)/config.h
- +TEST_KCONFIG_AUTOHEADER := $(testobj)/config.src.h
- TEST_KCONFIG_AUTOCONFIG := $(testobj)/auto.conf
- TEST_KCONFIG_DEPENDENCIES := $(testobj)/auto.conf.cmd
- TEST_KCONFIG_SPLITCONFIG := $(testobj)/config
- @@ -52,7 +52,7 @@ TEST_CFLAGS += -fno-pie -fno-pic
- TEST_LDFLAGS += -no-pie
-
- # Extra attributes for unit tests, declared per test
- -attributes:= srcs cflags mocks stage
- +attributes:= srcs cflags config mocks stage
-
- stages:= decompressor bootblock romstage smm verstage
- stages+= ramstage rmodule postcar libagesa
- @@ -83,9 +83,23 @@ $(call evaluate_subdirs)
- # Create actual targets for unit test binaries
- # $1 - test name
- define TEST_CC_template
- -$($(1)-objs): TEST_CFLAGS+= \
- +
- +# Generate custom config.h redefining given symbols
- +$(1)-config-file := $(obj)/$(1)/config.h
- +$$($(1)-config-file): $(TEST_KCONFIG_AUTOHEADER)
- + mkdir -p $$(dir $$@)
- + printf '// File generated by tests/Makefile.inc\n// Do not change\n' > $$@
- + printf '#include <%s>\n\n' "$(notdir $(TEST_KCONFIG_AUTOHEADER))" >> $$@
- + for kv in $$($(1)-config); do \
- + key="`echo $$$$kv | cut -d '=' -f -1`"; \
- + value="`echo $$$$kv | cut -d '=' -f 2-`"; \
- + printf '#undef %s\n' "$$$$key" >> $$@; \
- + printf '#define %s %s\n\n' "$$$$key" "$$$$value" >> $$@; \
- + done
- +
- +$($(1)-objs): TEST_CFLAGS += -I$$(dir $$($(1)-config-file)) \
- -D__$$(shell echo $$($(1)-stage) | tr '[:lower:]' '[:upper:]')__
- -$($(1)-objs): $(obj)/$(1)/%.o: $$$$*.c $(TEST_KCONFIG_AUTOHEADER)
- +$($(1)-objs): $(obj)/$(1)/%.o: $$$$*.c $$($(1)-config-file)
- mkdir -p $$(dir $$@)
- $(HOSTCC) $(HOSTCFLAGS) $$(TEST_CFLAGS) $($(1)-cflags) -MMD \
- -MT $$@ -c $$< -o $$@
- --
- 2.25.1
|