Fix: override unit_test.h via include path to suppress test compilation
This commit is contained in:
parent
4f1a402240
commit
547aadcebe
2 changed files with 26 additions and 4 deletions
|
|
@ -25,6 +25,8 @@ if(CONFIG_ZMK_JAVELIN_STENO)
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Override dir MUST come before javelin/ so our unit_test.h is found first
|
||||||
|
zephyr_include_directories(include/javelin_overrides)
|
||||||
zephyr_include_directories(javelin)
|
zephyr_include_directories(javelin)
|
||||||
zephyr_include_directories(include)
|
zephyr_include_directories(include)
|
||||||
|
|
||||||
|
|
@ -220,10 +222,8 @@ if(CONFIG_ZMK_JAVELIN_STENO)
|
||||||
JAVELIN_BOARD_CONFIG=<stddef.h>
|
JAVELIN_BOARD_CONFIG=<stddef.h>
|
||||||
M_PI=3.14159265358979323846
|
M_PI=3.14159265358979323846
|
||||||
)
|
)
|
||||||
# Suppress test compilation: Javelin's TEST_BEGIN/TEST_END macros
|
# Test suppression handled by include/javelin_overrides/unit_test.h
|
||||||
# compile test bodies even without RUN_TESTS. Some tests reference
|
# which shadows Javelin's unit_test.h via include path ordering.
|
||||||
# RUN_TESTS-only APIs. Override macros via include to dead-code them.
|
|
||||||
zephyr_library_compile_options(-include ${CMAKE_CURRENT_LIST_DIR}/include/zmk_javelin_steno/suppress_tests.h)
|
|
||||||
|
|
||||||
target_sources(app PRIVATE
|
target_sources(app PRIVATE
|
||||||
${ZMK_BEHAVIOR_SRC}
|
${ZMK_BEHAVIOR_SRC}
|
||||||
|
|
|
||||||
22
include/javelin_overrides/unit_test.h
Normal file
22
include/javelin_overrides/unit_test.h
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Override Javelin's unit_test.h to suppress test body compilation.
|
||||||
|
// When Javelin source files #include "unit_test.h", this file is found
|
||||||
|
// first (via include path ordering) and replaces the original.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
// TEST_BEGIN opens a never-instantiated template function body.
|
||||||
|
// Code between TEST_BEGIN and TEST_END is syntactically parsed but
|
||||||
|
// never compiled (dead template), avoiding errors from RUN_TESTS-only APIs.
|
||||||
|
|
||||||
|
#define TEST_BEGIN__(text, file, line) \
|
||||||
|
namespace DeadTest##line { \
|
||||||
|
template<bool _enable=false> \
|
||||||
|
static void Dead() {
|
||||||
|
|
||||||
|
#define TEST_END \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TEST_BEGIN_(desc, file, line) TEST_BEGIN__(desc, file, line)
|
||||||
|
#define TEST_BEGIN(desc) TEST_BEGIN_(desc, __FILE__, __LINE__)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue