Skip to content

Commit d5d2cba

Browse files
authored
[nrfconnect] Allow running only specific test suites (project-chip#37811)
* [nrfconnect] Allow running only specific test suites Run only specific test suites by adding `-testargs <TEST_SUITE_NAME>..` arguments to test executable invocation. Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no> * Allow vector in nrfconnect test runner Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no> * [nrfconnect] Add VSCode launch configuration for tests Add launch configuration for Zephyr native tests. Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no> --------- Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
1 parent 28c1d83 commit d5d2cba

File tree

4 files changed

+57
-0
lines changed

4 files changed

+57
-0
lines changed

.vscode/launch.json

+19
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,25 @@
550550
"runToEntryPoint": "main",
551551
"preLaunchTask": "Debug Open IoT SDK unit-tests",
552552
"showDevDebugOutput": "parsed"
553+
},
554+
{
555+
"name": "Zephyr native tests",
556+
"type": "cppdbg",
557+
"request": "launch",
558+
"program": "${workspaceFolder}/out/nrf-native-sim-tests/nrfconnect/zephyr/zephyr.exe",
559+
"args": ["-testargs"],
560+
"stopAtEntry": false,
561+
"cwd": "${workspaceFolder}/out/nrf-native-sim-tests/nrfconnect",
562+
"environment": [],
563+
"externalConsole": false,
564+
"MIMode": "gdb",
565+
"setupCommands": [
566+
{
567+
"description": "Enable pretty-printing for gdb",
568+
"text": "-enable-pretty-printing",
569+
"ignoreFailures": true
570+
}
571+
]
553572
}
554573
],
555574
"inputs": [

scripts/tools/check_includes_config.py

+3
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,7 @@
188188
'src/controller/CHIPDeviceController.cpp': {'string'},
189189
'src/qrcodetool/setup_payload_commands.cpp': {'string'},
190190
'src/access/AccessRestrictionProvider.h': {'vector', 'map'},
191+
192+
# nrfconnect test runner
193+
'src/test_driver/nrfconnect/main/runner.cpp': {'vector'},
191194
}

src/test_driver/nrfconnect/CMakeLists.txt

+20
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ set(CHIP_CFLAGS
4848
list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/nrfconnect/chip-module)
4949
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
5050

51+
set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo")
52+
5153
# ==================================================
5254
# Build 'all tests' runner
5355
# ==================================================
@@ -56,6 +58,24 @@ project(AllChipTests)
5658
enable_testing()
5759

5860
target_sources(app PRIVATE main/runner.cpp)
61+
target_include_directories(app PUBLIC
62+
${PIGWEED_ROOT}/pw_assert/public
63+
${PIGWEED_ROOT}/pw_assert_zephyr/public
64+
${PIGWEED_ROOT}/pw_assert_zephyr/public_overrides
65+
${PIGWEED_ROOT}/pw_bytes/public
66+
${PIGWEED_ROOT}/pw_preprocessor/public
67+
${PIGWEED_ROOT}/pw_polyfill/public
68+
${PIGWEED_ROOT}/pw_polyfill/standard_library_public
69+
${PIGWEED_ROOT}/pw_polyfill/public_overrides
70+
${PIGWEED_ROOT}/pw_result/public
71+
${PIGWEED_ROOT}/pw_span/public
72+
${PIGWEED_ROOT}/pw_span/public_overrides
73+
${PIGWEED_ROOT}/pw_status/public
74+
${PIGWEED_ROOT}/pw_string/public
75+
${PIGWEED_ROOT}/pw_unit_test/public
76+
${PIGWEED_ROOT}/pw_unit_test/light_public_overrides
77+
${PIGWEED_ROOT}/third_party/fuchsia/repo/sdk/lib/stdcompat/include
78+
)
5979
target_link_libraries(app PUBLIC chip $<TARGET_FILE:kernel>)
6080
target_compile_definitions(app PUBLIC CHIP_HAVE_CONFIG_H)
6181

src/test_driver/nrfconnect/main/runner.cpp

+15
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@
1818
#include <lib/support/CodeUtils.h>
1919
#include <lib/support/UnitTest.h>
2020
#include <platform/CHIPDeviceLayer.h>
21+
#include <pw_unit_test/framework.h>
2122

2223
#include <unistd.h>
24+
#include <vector>
2325

26+
#include <nsi_cmdline.h>
2427
#include <zephyr/logging/log.h>
2528
#include <zephyr/settings/settings.h>
2629

@@ -33,6 +36,18 @@ int main(void)
3336
{
3437
VerifyOrDie(settings_subsys_init() == 0);
3538

39+
int argc;
40+
char ** argv;
41+
nsi_get_test_cmd_line_args(&argc, &argv);
42+
43+
std::vector<std::string_view> suites_to_run;
44+
for (int i = 0; i < argc; ++i)
45+
{
46+
suites_to_run.push_back(argv[i]);
47+
}
48+
49+
pw::unit_test::SetTestSuitesToRun(suites_to_run);
50+
3651
LOG_INF("Starting CHIP tests!");
3752
int status = 0;
3853
status += chip::test::RunAllTests();

0 commit comments

Comments
 (0)