blob: de29e6d3d4bb791103348955b698c9c958fc7faa [file] [log] [blame]
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03001# Copyright (c) 2016 Intel Corporation
David B. Kinderac74d8b2017-01-18 17:01:01 -08002# SPDX-License-Identifier: Apache-2.0
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03003
Ulf Magnusson9964cf22019-03-18 15:03:35 +01004menu "Testing"
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03005
Anas Nashifccad9d02019-02-19 15:45:18 -05006source "subsys/testsuite/ztest/Kconfig"
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03007
Anas Nashif829598b2018-01-06 16:15:53 -05008config TEST
9 bool "Mark project as a test"
Paul Sokolovsky2a798bb2019-03-13 22:56:51 +030010 # For tests, store thread names in binary and dump them on crash to
11 # ease debugging.
12 select THREAD_NAME
Anas Nashif829598b2018-01-06 16:15:53 -050013 help
14 Mark a project or an application as a test. This will enable a few
15 test defaults.
16
Carles Cufie83a13a2022-02-17 17:09:09 +010017config TEST_EXTRA_STACK_SIZE
Ramakrishna Pallala275d16d2018-01-30 21:09:12 +053018 int "Test function extra thread stack size"
Wentong Wub9919622019-04-04 17:50:30 +080019 default 2048 if COVERAGE_GCOV
Mazen NEIFER47135752017-01-31 23:05:18 +010020 default 768 if XTENSA
Ulf Magnussonec3eff52018-07-30 10:57:47 +020021 default 0
Anas Nashifd60e3122022-08-02 09:03:56 -040022 depends on TEST
Anas Nashifa2eaae52018-01-07 11:54:38 -050023 help
24 Additional stack for tests on some platform where default is not
25 enough.
Mazen NEIFER47135752017-01-31 23:05:18 +010026
Adithya Baglody76ee02b2018-08-31 15:13:36 +053027config HAS_COVERAGE_SUPPORT
28 bool
29 help
30 The code coverage report generation is only available on boards
Alberto Escolar Piedrasee3403a2019-02-11 16:44:51 +010031 with enough spare RAM to buffer the coverage data, or on boards
32 based on the POSIX ARCH.
Adithya Baglody76ee02b2018-08-31 15:13:36 +053033
Anas Nashif72fe0972017-11-22 08:28:52 -050034config COVERAGE
35 bool "Create coverage data"
Adithya Baglody76ee02b2018-08-31 15:13:36 +053036 depends on HAS_COVERAGE_SUPPORT
Anas Nashif72fe0972017-11-22 08:28:52 -050037 help
38 This option will build your application with the -coverage option
39 which will generate data that can be used to create coverage reports.
Alberto Escolar Piedras02ec7a02019-09-12 14:31:00 +020040 For more information see
41 https://docs.zephyrproject.org/latest/guides/coverage.html
Adithya Baglodya47f14a2018-03-19 14:17:55 +053042
Adithya Baglodye223cfa2018-08-29 17:31:46 +053043config COVERAGE_GCOV
44 bool "Create Coverage data from hardware platform"
Adithya Baglodye223cfa2018-08-29 17:31:46 +053045 default y
Ulf Magnussoneddd98f2020-02-08 03:45:50 +010046 depends on COVERAGE
47 depends on !NATIVE_APPLICATION
Adithya Baglodye223cfa2018-08-29 17:31:46 +053048 help
49 This option will select the custom gcov library. The reports will
50 be available over serial. This serial dump can be passed to
51 gen_gcov_files.py which creates the required .gcda files. These
52 can be read by gcov utility. For more details see gcovr.com .
Adithya Baglodye223cfa2018-08-29 17:31:46 +053053
Anas Nashif471ffbe2020-01-30 08:44:10 -050054config COVERAGE_DUMP
55 bool "Dump coverage data on exit"
56 depends on COVERAGE_GCOV
57 help
58 Dump collected coverage information to console on exit.
59
Adithya Baglodya47f14a2018-03-19 14:17:55 +053060config TEST_USERSPACE
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070061 bool "Indicate that this test exercises user mode"
62 help
63 This option indicates that a test case puts threads in user mode,
Marc Herbert4afcc0f2019-05-21 16:09:35 -070064 and that the build system will [override and] enable USERSPACE
65 if the platform supports it. It should be set in a .conf file on
66 a per-test basis and is not meant to be used outside test cases.
67 Tests with this option should also have the "userspace" filtering
68 tag in their testcase.yaml file.
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070069
70 The userspace APIs are no-ops if userspace is not enabled, so it is
71 OK to enable this even if the test will run on platforms which do
72 not support userspace. The test should still run on those platforms,
73 just with all threads in supervisor mode.
74
75 If a test *requires* that userspace be enabled in order to
Marc Herbert4afcc0f2019-05-21 16:09:35 -070076 pass, CONFIG_ARCH_HAS_USERSPACE should be filtered in its
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070077 testcase.yaml.
78
Andrew Boie21924992019-08-08 12:26:55 -070079config TEST_LOGGING_DEFAULTS
Gerard Marull-Paretas95fb0de2022-03-09 12:05:12 +010080 bool "Test case logging defaults"
Andrew Boie21924992019-08-08 12:26:55 -070081 depends on TEST
82 select LOG
Krzysztof Chruscinskic0808e32021-11-19 07:59:23 +010083 select LOG_DEFAULT_MINIMAL
Andrew Boie21924992019-08-08 12:26:55 -070084 default y
85 help
86 Option which implements default policy of enabling logging in
Andrew Boie7e29c9d2019-09-22 16:44:43 -070087 minimal mode for all test cases. For tests that need alternate
Andrew Boie21924992019-08-08 12:26:55 -070088 logging configuration, or no logging at all, disable this
89 in the project-level defconfig.
90
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070091config TEST_ENABLE_USERSPACE
92 bool
93 depends on TEST_USERSPACE
Adithya Baglodya47f14a2018-03-19 14:17:55 +053094 depends on ARCH_HAS_USERSPACE
95 select USERSPACE
Andrew Boieefe0c4b2018-05-21 12:44:38 -070096 select DYNAMIC_OBJECTS
97 default y
Adithya Baglodya47f14a2018-03-19 14:17:55 +053098 help
Marc Herbert4afcc0f2019-05-21 16:09:35 -070099 This hidden option implements the TEST_USERSPACE logic. It turns on
100 USERSPACE when CONFIG_ARCH_HAS_USERSPACE is set and the test
Andrew Boie7b1ee5c2019-04-05 15:39:50 -0700101 case itself indicates that it exercises user mode via
Anas Nashif073e0172019-04-07 09:02:37 -0400102 CONFIG_TEST_USERSPACE.
Andrew Boieba2c44e2018-05-24 22:14:20 -0700103
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200104config TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION
105 bool "Run User Mode tests without additionally enabling stack protection"
106 depends on TEST_ENABLE_USERSPACE
Ioannis Glaropoulos861fc232019-08-26 12:40:31 +0200107 default y if SOC_SERIES_KINETIS_KE1XF
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200108 help
109 A HW platform might not have sufficient MPU/MMU capabilities to support
110 running all test cases with User Mode and HW Stack Protection features
111 simultaneously enabled. For this platforms we execute the User Mode-
112 related tests without enabling HW stack protection.
113
Andrew Boieba2c44e2018-05-24 22:14:20 -0700114config TEST_HW_STACK_PROTECTION
Gerard Marull-Paretas95fb0de2022-03-09 12:05:12 +0100115 bool "Hardware-based stack overflow detection if available"
Andrew Boieba2c44e2018-05-24 22:14:20 -0700116 depends on ARCH_HAS_STACK_PROTECTION
117 depends on TEST
118 select HW_STACK_PROTECTION
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200119 default y if !TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION
Andrew Boieba2c44e2018-05-24 22:14:20 -0700120 help
121 This option will enable hardware-based stack protection by default
122 for all test cases if the hardware supports it.
Adithya Baglody43775402018-04-02 15:56:55 +0530123
124config TEST_FLASH_DRIVERS
125 bool "Test flash drivers"
126 depends on BOARD_QEMU_X86
127 select FLASH_HAS_DRIVER_ENABLED
128 select FLASH_HAS_PAGE_LAYOUT
Adithya Baglody43775402018-04-02 15:56:55 +0530129 help
130 This option will help test the flash drivers. This should be enabled
131 only when using qemu_x86.
Ulf Magnusson9964cf22019-03-18 15:03:35 +0100132
Ioannis Glaropoulosa3ee56f2019-08-08 14:56:53 +0200133config TEST_ARM_CORTEX_M
134 bool
135 depends on CPU_CORTEX_M
Ioannis Glaropoulos1d55f942021-02-21 17:25:59 +0100136 depends on TEST
Ioannis Glaropoulosa3ee56f2019-08-08 14:56:53 +0200137 default y
138 select ARM_SECURE_BUSFAULT_HARDFAULT_NMI if ARM_SECURE_FIRMWARE
139 help
140 ARM Cortex-M configuration required when testing.
141
142 Currently, this option is only utilized, to force routing
143 BusFault, HardFault, and NMI exceptions to Secure State,
144 when building a Secure ARMv8-M firmware. This will allow
145 the testing suite to utilize these exceptions, in tests.
146 Note that by default, when building with ARM_SECURE_FIRMWARE
147 set, these exceptions are set to target the Non-Secure state.
Krzysztof Chruscinskiffc4a6c2021-06-29 18:32:19 +0200148
149config TEST_BUSY_SIM
Gerard Marull-Paretas95fb0de2022-03-09 12:05:12 +0100150 bool "Busy simulator"
Krzysztof Chruscinskiffc4a6c2021-06-29 18:32:19 +0200151 depends on TEST
152 select ENTROPY_GENERATOR
Krzysztof Chruscinski0a7667b2021-10-25 09:25:31 +0200153 select RING_BUFFER if !XOSHIRO_RANDOM_GENERATOR
Krzysztof Chruscinskiffc4a6c2021-06-29 18:32:19 +0200154 select COUNTER
155 help
156 It simulates cpu load by using counter device to generate interrupts
157 with random intervals and random busy looping in the interrupt.
158
Jaakko Hannikainen9167a032016-08-22 14:51:46 +0300159endmenu