Jaakko Hannikainen | 9167a03 | 2016-08-22 14:51:46 +0300 | [diff] [blame] | 1 | # Copyright (c) 2016 Intel Corporation |
David B. Kinder | ac74d8b | 2017-01-18 17:01:01 -0800 | [diff] [blame] | 2 | # SPDX-License-Identifier: Apache-2.0 |
Jaakko Hannikainen | 9167a03 | 2016-08-22 14:51:46 +0300 | [diff] [blame] | 3 | |
Ulf Magnusson | 9964cf2 | 2019-03-18 15:03:35 +0100 | [diff] [blame] | 4 | menu "Testing" |
Jaakko Hannikainen | 9167a03 | 2016-08-22 14:51:46 +0300 | [diff] [blame] | 5 | |
Anas Nashif | ccad9d0 | 2019-02-19 15:45:18 -0500 | [diff] [blame] | 6 | source "subsys/testsuite/ztest/Kconfig" |
Jaakko Hannikainen | 9167a03 | 2016-08-22 14:51:46 +0300 | [diff] [blame] | 7 | |
Anas Nashif | 829598b | 2018-01-06 16:15:53 -0500 | [diff] [blame] | 8 | config TEST |
| 9 | bool "Mark project as a test" |
Paul Sokolovsky | 2a798bb | 2019-03-13 22:56:51 +0300 | [diff] [blame] | 10 | # For tests, store thread names in binary and dump them on crash to |
| 11 | # ease debugging. |
| 12 | select THREAD_NAME |
Anas Nashif | 829598b | 2018-01-06 16:15:53 -0500 | [diff] [blame] | 13 | help |
| 14 | Mark a project or an application as a test. This will enable a few |
| 15 | test defaults. |
| 16 | |
Anas Nashif | cd91038 | 2018-10-18 10:06:01 -0400 | [diff] [blame] | 17 | config TEST_SHELL |
| 18 | bool "Enable various shells for testing" |
| 19 | select GPIO_SHELL if GPIO |
Anas Nashif | cd91038 | 2018-10-18 10:06:01 -0400 | [diff] [blame] | 20 | help |
| 21 | Enable various platform and driver related shells for testing. |
| 22 | |
Mazen NEIFER | 4713575 | 2017-01-31 23:05:18 +0100 | [diff] [blame] | 23 | config TEST_EXTRA_STACKSIZE |
Ramakrishna Pallala | 275d16d | 2018-01-30 21:09:12 +0530 | [diff] [blame] | 24 | int "Test function extra thread stack size" |
Wentong Wu | b991962 | 2019-04-04 17:50:30 +0800 | [diff] [blame] | 25 | default 2048 if COVERAGE_GCOV |
Mazen NEIFER | 4713575 | 2017-01-31 23:05:18 +0100 | [diff] [blame] | 26 | default 768 if XTENSA |
Ulf Magnusson | ec3eff5 | 2018-07-30 10:57:47 +0200 | [diff] [blame] | 27 | default 0 |
Anas Nashif | a2eaae5 | 2018-01-07 11:54:38 -0500 | [diff] [blame] | 28 | help |
| 29 | Additional stack for tests on some platform where default is not |
| 30 | enough. |
Mazen NEIFER | 4713575 | 2017-01-31 23:05:18 +0100 | [diff] [blame] | 31 | |
Adithya Baglody | 76ee02b | 2018-08-31 15:13:36 +0530 | [diff] [blame] | 32 | config HAS_COVERAGE_SUPPORT |
| 33 | bool |
| 34 | help |
| 35 | The code coverage report generation is only available on boards |
Alberto Escolar Piedras | ee3403a | 2019-02-11 16:44:51 +0100 | [diff] [blame] | 36 | with enough spare RAM to buffer the coverage data, or on boards |
| 37 | based on the POSIX ARCH. |
Adithya Baglody | 76ee02b | 2018-08-31 15:13:36 +0530 | [diff] [blame] | 38 | |
Anas Nashif | 72fe097 | 2017-11-22 08:28:52 -0500 | [diff] [blame] | 39 | config COVERAGE |
| 40 | bool "Create coverage data" |
Adithya Baglody | 76ee02b | 2018-08-31 15:13:36 +0530 | [diff] [blame] | 41 | depends on HAS_COVERAGE_SUPPORT |
Anas Nashif | 72fe097 | 2017-11-22 08:28:52 -0500 | [diff] [blame] | 42 | help |
| 43 | This option will build your application with the -coverage option |
| 44 | which will generate data that can be used to create coverage reports. |
Alberto Escolar Piedras | 02ec7a0 | 2019-09-12 14:31:00 +0200 | [diff] [blame] | 45 | For more information see |
| 46 | https://docs.zephyrproject.org/latest/guides/coverage.html |
Adithya Baglody | a47f14a | 2018-03-19 14:17:55 +0530 | [diff] [blame] | 47 | |
Adithya Baglody | e223cfa | 2018-08-29 17:31:46 +0530 | [diff] [blame] | 48 | if COVERAGE |
| 49 | config COVERAGE_GCOV |
| 50 | bool "Create Coverage data from hardware platform" |
Adithya Baglody | e223cfa | 2018-08-29 17:31:46 +0530 | [diff] [blame] | 51 | depends on !NATIVE_APPLICATION |
| 52 | default y |
| 53 | help |
| 54 | This option will select the custom gcov library. The reports will |
| 55 | be available over serial. This serial dump can be passed to |
| 56 | gen_gcov_files.py which creates the required .gcda files. These |
| 57 | can be read by gcov utility. For more details see gcovr.com . |
| 58 | endif |
| 59 | |
Anas Nashif | 471ffbe | 2020-01-30 08:44:10 -0500 | [diff] [blame^] | 60 | config COVERAGE_DUMP |
| 61 | bool "Dump coverage data on exit" |
| 62 | depends on COVERAGE_GCOV |
| 63 | help |
| 64 | Dump collected coverage information to console on exit. |
| 65 | |
Adithya Baglody | a47f14a | 2018-03-19 14:17:55 +0530 | [diff] [blame] | 66 | config TEST_USERSPACE |
Andrew Boie | 7b1ee5c | 2019-04-05 15:39:50 -0700 | [diff] [blame] | 67 | bool "Indicate that this test exercises user mode" |
| 68 | help |
| 69 | This option indicates that a test case puts threads in user mode, |
Marc Herbert | 4afcc0f | 2019-05-21 16:09:35 -0700 | [diff] [blame] | 70 | and that the build system will [override and] enable USERSPACE |
| 71 | if the platform supports it. It should be set in a .conf file on |
| 72 | a per-test basis and is not meant to be used outside test cases. |
| 73 | Tests with this option should also have the "userspace" filtering |
| 74 | tag in their testcase.yaml file. |
Andrew Boie | 7b1ee5c | 2019-04-05 15:39:50 -0700 | [diff] [blame] | 75 | |
| 76 | The userspace APIs are no-ops if userspace is not enabled, so it is |
| 77 | OK to enable this even if the test will run on platforms which do |
| 78 | not support userspace. The test should still run on those platforms, |
| 79 | just with all threads in supervisor mode. |
| 80 | |
| 81 | If a test *requires* that userspace be enabled in order to |
Marc Herbert | 4afcc0f | 2019-05-21 16:09:35 -0700 | [diff] [blame] | 82 | pass, CONFIG_ARCH_HAS_USERSPACE should be filtered in its |
Andrew Boie | 7b1ee5c | 2019-04-05 15:39:50 -0700 | [diff] [blame] | 83 | testcase.yaml. |
| 84 | |
Andrew Boie | 2192499 | 2019-08-08 12:26:55 -0700 | [diff] [blame] | 85 | config TEST_LOGGING_DEFAULTS |
| 86 | bool "Enable test case logging defaults" |
| 87 | depends on TEST |
| 88 | select LOG |
Andrew Boie | 7e29c9d | 2019-09-22 16:44:43 -0700 | [diff] [blame] | 89 | select LOG_MINIMAL |
Andrew Boie | 2192499 | 2019-08-08 12:26:55 -0700 | [diff] [blame] | 90 | default y |
| 91 | help |
| 92 | Option which implements default policy of enabling logging in |
Andrew Boie | 7e29c9d | 2019-09-22 16:44:43 -0700 | [diff] [blame] | 93 | minimal mode for all test cases. For tests that need alternate |
Andrew Boie | 2192499 | 2019-08-08 12:26:55 -0700 | [diff] [blame] | 94 | logging configuration, or no logging at all, disable this |
| 95 | in the project-level defconfig. |
| 96 | |
Andrew Boie | 7b1ee5c | 2019-04-05 15:39:50 -0700 | [diff] [blame] | 97 | config TEST_ENABLE_USERSPACE |
| 98 | bool |
| 99 | depends on TEST_USERSPACE |
Adithya Baglody | a47f14a | 2018-03-19 14:17:55 +0530 | [diff] [blame] | 100 | depends on ARCH_HAS_USERSPACE |
| 101 | select USERSPACE |
Andrew Boie | efe0c4b | 2018-05-21 12:44:38 -0700 | [diff] [blame] | 102 | select DYNAMIC_OBJECTS |
| 103 | default y |
Adithya Baglody | a47f14a | 2018-03-19 14:17:55 +0530 | [diff] [blame] | 104 | help |
Marc Herbert | 4afcc0f | 2019-05-21 16:09:35 -0700 | [diff] [blame] | 105 | This hidden option implements the TEST_USERSPACE logic. It turns on |
| 106 | USERSPACE when CONFIG_ARCH_HAS_USERSPACE is set and the test |
Andrew Boie | 7b1ee5c | 2019-04-05 15:39:50 -0700 | [diff] [blame] | 107 | case itself indicates that it exercises user mode via |
Anas Nashif | 073e017 | 2019-04-07 09:02:37 -0400 | [diff] [blame] | 108 | CONFIG_TEST_USERSPACE. |
Andrew Boie | ba2c44e | 2018-05-24 22:14:20 -0700 | [diff] [blame] | 109 | |
Ioannis Glaropoulos | 912c558 | 2019-08-26 12:44:03 +0200 | [diff] [blame] | 110 | config TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION |
| 111 | bool "Run User Mode tests without additionally enabling stack protection" |
| 112 | depends on TEST_ENABLE_USERSPACE |
Ioannis Glaropoulos | 861fc23 | 2019-08-26 12:40:31 +0200 | [diff] [blame] | 113 | default y if SOC_SERIES_KINETIS_KE1XF |
Ioannis Glaropoulos | 912c558 | 2019-08-26 12:44:03 +0200 | [diff] [blame] | 114 | help |
| 115 | A HW platform might not have sufficient MPU/MMU capabilities to support |
| 116 | running all test cases with User Mode and HW Stack Protection features |
| 117 | simultaneously enabled. For this platforms we execute the User Mode- |
| 118 | related tests without enabling HW stack protection. |
| 119 | |
Andrew Boie | ba2c44e | 2018-05-24 22:14:20 -0700 | [diff] [blame] | 120 | config TEST_HW_STACK_PROTECTION |
| 121 | bool "Enable hardware-based stack overflow detection if available" |
| 122 | depends on ARCH_HAS_STACK_PROTECTION |
| 123 | depends on TEST |
| 124 | select HW_STACK_PROTECTION |
Ioannis Glaropoulos | 912c558 | 2019-08-26 12:44:03 +0200 | [diff] [blame] | 125 | default y if !TEST_USERSPACE_WITHOUT_HW_STACK_PROTECTION |
Andrew Boie | ba2c44e | 2018-05-24 22:14:20 -0700 | [diff] [blame] | 126 | help |
| 127 | This option will enable hardware-based stack protection by default |
| 128 | for all test cases if the hardware supports it. |
Adithya Baglody | 4377540 | 2018-04-02 15:56:55 +0530 | [diff] [blame] | 129 | |
| 130 | config TEST_FLASH_DRIVERS |
| 131 | bool "Test flash drivers" |
| 132 | depends on BOARD_QEMU_X86 |
| 133 | select FLASH_HAS_DRIVER_ENABLED |
| 134 | select FLASH_HAS_PAGE_LAYOUT |
Adithya Baglody | 4377540 | 2018-04-02 15:56:55 +0530 | [diff] [blame] | 135 | help |
| 136 | This option will help test the flash drivers. This should be enabled |
| 137 | only when using qemu_x86. |
Ulf Magnusson | 9964cf2 | 2019-03-18 15:03:35 +0100 | [diff] [blame] | 138 | |
Ioannis Glaropoulos | a3ee56f | 2019-08-08 14:56:53 +0200 | [diff] [blame] | 139 | config TEST_ARM_CORTEX_M |
| 140 | bool |
| 141 | depends on CPU_CORTEX_M |
| 142 | default y |
| 143 | select ARM_SECURE_BUSFAULT_HARDFAULT_NMI if ARM_SECURE_FIRMWARE |
| 144 | help |
| 145 | ARM Cortex-M configuration required when testing. |
| 146 | |
| 147 | Currently, this option is only utilized, to force routing |
| 148 | BusFault, HardFault, and NMI exceptions to Secure State, |
| 149 | when building a Secure ARMv8-M firmware. This will allow |
| 150 | the testing suite to utilize these exceptions, in tests. |
| 151 | Note that by default, when building with ARM_SECURE_FIRMWARE |
| 152 | set, these exceptions are set to target the Non-Secure state. |
| 153 | |
Jaakko Hannikainen | 9167a03 | 2016-08-22 14:51:46 +0300 | [diff] [blame] | 154 | endmenu |