blob: f80eb6791f1c6a5dd11444fcf0527052851f2f77 [file] [log] [blame]
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03001#
2# Copyright (c) 2016 Intel Corporation
3#
David B. Kinderac74d8b2017-01-18 17:01:01 -08004# SPDX-License-Identifier: Apache-2.0
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03005#
6
Ulf Magnusson9964cf22019-03-18 15:03:35 +01007menu "Testing"
Jaakko Hannikainen9167a032016-08-22 14:51:46 +03008
Anas Nashifccad9d02019-02-19 15:45:18 -05009source "subsys/testsuite/ztest/Kconfig"
Jaakko Hannikainen9167a032016-08-22 14:51:46 +030010
Anas Nashif829598b2018-01-06 16:15:53 -050011config TEST
12 bool "Mark project as a test"
Paul Sokolovsky2a798bb2019-03-13 22:56:51 +030013 # For tests, store thread names in binary and dump them on crash to
14 # ease debugging.
15 select THREAD_NAME
Anas Nashif829598b2018-01-06 16:15:53 -050016 help
17 Mark a project or an application as a test. This will enable a few
18 test defaults.
19
Anas Nashifcd910382018-10-18 10:06:01 -040020config TEST_SHELL
21 bool "Enable various shells for testing"
22 select GPIO_SHELL if GPIO
Anas Nashifcd910382018-10-18 10:06:01 -040023 help
24 Enable various platform and driver related shells for testing.
25
Mazen NEIFER47135752017-01-31 23:05:18 +010026config TEST_EXTRA_STACKSIZE
Ramakrishna Pallala275d16d2018-01-30 21:09:12 +053027 int "Test function extra thread stack size"
Wentong Wub9919622019-04-04 17:50:30 +080028 default 2048 if COVERAGE_GCOV
Mazen NEIFER47135752017-01-31 23:05:18 +010029 default 768 if XTENSA
Ulf Magnussonec3eff52018-07-30 10:57:47 +020030 default 0
Anas Nashifa2eaae52018-01-07 11:54:38 -050031 help
32 Additional stack for tests on some platform where default is not
33 enough.
Mazen NEIFER47135752017-01-31 23:05:18 +010034
Adithya Baglody76ee02b2018-08-31 15:13:36 +053035config HAS_COVERAGE_SUPPORT
36 bool
37 help
38 The code coverage report generation is only available on boards
Alberto Escolar Piedrasee3403a2019-02-11 16:44:51 +010039 with enough spare RAM to buffer the coverage data, or on boards
40 based on the POSIX ARCH.
Adithya Baglody76ee02b2018-08-31 15:13:36 +053041
Anas Nashif72fe0972017-11-22 08:28:52 -050042config COVERAGE
43 bool "Create coverage data"
Adithya Baglody76ee02b2018-08-31 15:13:36 +053044 depends on HAS_COVERAGE_SUPPORT
Anas Nashif72fe0972017-11-22 08:28:52 -050045 help
46 This option will build your application with the -coverage option
47 which will generate data that can be used to create coverage reports.
Alberto Escolar Piedras02ec7a02019-09-12 14:31:00 +020048 For more information see
49 https://docs.zephyrproject.org/latest/guides/coverage.html
Adithya Baglodya47f14a2018-03-19 14:17:55 +053050
Adithya Baglodye223cfa2018-08-29 17:31:46 +053051if COVERAGE
52config COVERAGE_GCOV
53 bool "Create Coverage data from hardware platform"
Adithya Baglodye223cfa2018-08-29 17:31:46 +053054 depends on !NATIVE_APPLICATION
55 default y
56 help
57 This option will select the custom gcov library. The reports will
58 be available over serial. This serial dump can be passed to
59 gen_gcov_files.py which creates the required .gcda files. These
60 can be read by gcov utility. For more details see gcovr.com .
61endif
62
Adithya Baglodya47f14a2018-03-19 14:17:55 +053063config TEST_USERSPACE
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070064 bool "Indicate that this test exercises user mode"
65 help
66 This option indicates that a test case puts threads in user mode,
Marc Herbert4afcc0f2019-05-21 16:09:35 -070067 and that the build system will [override and] enable USERSPACE
68 if the platform supports it. It should be set in a .conf file on
69 a per-test basis and is not meant to be used outside test cases.
70 Tests with this option should also have the "userspace" filtering
71 tag in their testcase.yaml file.
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070072
73 The userspace APIs are no-ops if userspace is not enabled, so it is
74 OK to enable this even if the test will run on platforms which do
75 not support userspace. The test should still run on those platforms,
76 just with all threads in supervisor mode.
77
78 If a test *requires* that userspace be enabled in order to
Marc Herbert4afcc0f2019-05-21 16:09:35 -070079 pass, CONFIG_ARCH_HAS_USERSPACE should be filtered in its
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070080 testcase.yaml.
81
Andrew Boie21924992019-08-08 12:26:55 -070082config TEST_LOGGING_DEFAULTS
83 bool "Enable test case logging defaults"
84 depends on TEST
85 select LOG
Andrew Boie7e29c9d2019-09-22 16:44:43 -070086 select LOG_MINIMAL
Andrew Boie21924992019-08-08 12:26:55 -070087 default y
88 help
89 Option which implements default policy of enabling logging in
Andrew Boie7e29c9d2019-09-22 16:44:43 -070090 minimal mode for all test cases. For tests that need alternate
Andrew Boie21924992019-08-08 12:26:55 -070091 logging configuration, or no logging at all, disable this
92 in the project-level defconfig.
93
Andrew Boie7b1ee5c2019-04-05 15:39:50 -070094config TEST_ENABLE_USERSPACE
95 bool
96 depends on TEST_USERSPACE
Adithya Baglodya47f14a2018-03-19 14:17:55 +053097 depends on ARCH_HAS_USERSPACE
98 select USERSPACE
Andrew Boieefe0c4b2018-05-21 12:44:38 -070099 select DYNAMIC_OBJECTS
100 default y
Adithya Baglodya47f14a2018-03-19 14:17:55 +0530101 help
Marc Herbert4afcc0f2019-05-21 16:09:35 -0700102 This hidden option implements the TEST_USERSPACE logic. It turns on
103 USERSPACE when CONFIG_ARCH_HAS_USERSPACE is set and the test
Andrew Boie7b1ee5c2019-04-05 15:39:50 -0700104 case itself indicates that it exercises user mode via
Anas Nashif073e0172019-04-07 09:02:37 -0400105 CONFIG_TEST_USERSPACE.
Andrew Boieba2c44e2018-05-24 22:14:20 -0700106
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200107config TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION
108 bool "Run User Mode tests without additionally enabling stack protection"
109 depends on TEST_ENABLE_USERSPACE
Ioannis Glaropoulos861fc232019-08-26 12:40:31 +0200110 default y if SOC_SERIES_KINETIS_KE1XF
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200111 help
112 A HW platform might not have sufficient MPU/MMU capabilities to support
113 running all test cases with User Mode and HW Stack Protection features
114 simultaneously enabled. For this platforms we execute the User Mode-
115 related tests without enabling HW stack protection.
116
Andrew Boieba2c44e2018-05-24 22:14:20 -0700117config TEST_HW_STACK_PROTECTION
118 bool "Enable hardware-based stack overflow detection if available"
119 depends on ARCH_HAS_STACK_PROTECTION
120 depends on TEST
121 select HW_STACK_PROTECTION
Ioannis Glaropoulos912c5582019-08-26 12:44:03 +0200122 default y if !TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION
Andrew Boieba2c44e2018-05-24 22:14:20 -0700123 help
124 This option will enable hardware-based stack protection by default
125 for all test cases if the hardware supports it.
Adithya Baglody43775402018-04-02 15:56:55 +0530126
127config TEST_FLASH_DRIVERS
128 bool "Test flash drivers"
129 depends on BOARD_QEMU_X86
130 select FLASH_HAS_DRIVER_ENABLED
131 select FLASH_HAS_PAGE_LAYOUT
Adithya Baglody43775402018-04-02 15:56:55 +0530132 help
133 This option will help test the flash drivers. This should be enabled
134 only when using qemu_x86.
Ulf Magnusson9964cf22019-03-18 15:03:35 +0100135
Ioannis Glaropoulosa3ee56f2019-08-08 14:56:53 +0200136config TEST_ARM_CORTEX_M
137 bool
138 depends on CPU_CORTEX_M
139 default y
140 select ARM_SECURE_BUSFAULT_HARDFAULT_NMI if ARM_SECURE_FIRMWARE
141 help
142 ARM Cortex-M configuration required when testing.
143
144 Currently, this option is only utilized, to force routing
145 BusFault, HardFault, and NMI exceptions to Secure State,
146 when building a Secure ARMv8-M firmware. This will allow
147 the testing suite to utilize these exceptions, in tests.
148 Note that by default, when building with ARM_SECURE_FIRMWARE
149 set, these exceptions are set to target the Non-Secure state.
150
Jaakko Hannikainen9167a032016-08-22 14:51:46 +0300151endmenu