From 29faa8a5a25a843bd3495ca8c6b9aad79e143033 Mon Sep 17 00:00:00 2001 From: Jakub Czapiga Date: Thu, 9 Sep 2021 12:11:39 +0200 Subject: [PATCH] tests/stubs/console: Allow enabling printk to print to stdout By adding TEST_PRINT=1 to -config field or by passing it as a parameter to make one can enable printing in printk() and vprintk(). This can be helpful when developing unit tests. Note, that to effectively enable or disable printk() printing to stdout, test(s) have to be recompiled. Signed-off-by: Jakub Czapiga Change-Id: Ibdec8bb128f42ba4d9cb8bbb4a8c5159a2b52ac5 Reviewed-on: https://review.coreboot.org/c/coreboot/+/57526 Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu Reviewed-by: Paul Fagerburg --- tests/Makefile.inc | 4 ++++ tests/stubs/console.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/tests/Makefile.inc b/tests/Makefile.inc index fa5faab973..5027dd894b 100644 --- a/tests/Makefile.inc +++ b/tests/Makefile.inc @@ -55,6 +55,10 @@ 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 diff --git a/tests/stubs/console.c b/tests/stubs/console.c index bd40209716..14b3e71056 100644 --- a/tests/stubs/console.c +++ b/tests/stubs/console.c @@ -3,14 +3,28 @@ #include #include #include +#include + +#ifndef TEST_PRINT +#define TEST_PRINT 0 +#endif int printk(int msg_level, const char *fmt, ...) { +#if TEST_PRINT + va_list v; + va_start(v, fmt); + vprint_message(fmt, v); + va_end(v); +#endif return 0; } int vprintk(int msg_level, const char *fmt, va_list args) { +#if TEST_PRINT + vprint_message(fmt, args); +#endif return 0; }