blob: 7c5803147a5267e6553b426bed97ca9bd975c060 [file] [log] [blame]
# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
config ZTEST
bool "Zephyr testing framework"
select TEST
help
Enable the Zephyr testing framework. You should enable this only
if you're writing automated tests.
if ZTEST
config ZTEST_NEW_API
bool "Use the new Ztest API"
help
Enables the new Ztest APIs for creating suites and unit tests in
separate compilation units as well as the new 'rules' API.
config ZTEST_STACK_SIZE
int "Test function thread stack size"
default 2048 if COVERAGE_GCOV
default 1024
config ZTEST_TEST_DELAY_MS
int "Delay between tests in milliseconds"
default 0
help
Add a delay between between tests to manage output on the console on
systems that can't handle the rapid output rate.
config ZTEST_CPU_HOLD_TIME_MS
int "Time in milliseconds to hold other CPUs for 1cpu type tests"
default 3000
help
This option is used to specify the maximum time in milliseconds for
which a 1cpu type test may execute on a multicpu system. The default
value ought to suffice for most such tests; however slower platforms
(which may include simulators) may need to set this to a larger
value. Please be aware that increasing it for long-running test cases
may overload the CI system. Modify with caution.
config ZTEST_FAIL_FAST
bool "Abort on first failing test"
help
Stop and abort on first failing test. Do not continue with other
tests that might be in the queue.
config ZTEST_ASSERT_VERBOSE
int "Assertion verbosity level"
default 1
help
Set verbosity level for assertions.
Assertion verbosity levels:
0 Write only file and line for failed assertions
1 Write file, line number, function and reason for failed assertions
2 Log also successful assertions
config ZTEST_THREAD_PRIORITY
int "Testing thread priority"
default -2 if !PREEMPT_ENABLED
default -1
help
Set priority of the testing thread. Default is -1 (cooperative).
config ZTEST_TC_UTIL_USER_OVERRIDE
bool "Override tc_util.h"
help
Enable overriding defines in tc_util.h.
If True the user should provide tc_util_user_override.h in Zephyr's include path,
e.g. by adding zephyr_include_directories(project PRIVATE my_folder) to a project's CMakeLists.txt.
The override header may now #define the various macros and strings in tc_util.h which are
surrounded by #ifndef ... #endif blocks.
config ZTEST_RETEST_IF_PASSED
bool "Reset the board to test again if the test passed"
select REBOOT
help
If the test passed reset the board so it is run again. This
may be used as an alternative to manual resets when
attempting to reproduce an intermittent failure.
config ZTEST_FATAL_HOOK
bool "Using a pre-defined fatal handler and hook function"
help
Use the pre-defined common fatal error handler and a post hook to
do actions in your test case, this option often enabled when doing
error test case. Remember to add ignore_fault tag in yaml file when
using twister to run testing.
config ZTEST_ASSERT_HOOK
bool "Using a pre-defined assert handler and hook function"
help
Use the pre-defined common assert fail handler and a post hook to
do actions in your test case, this option often enabled when doing
error test case. Remember to add ignore_fault tag in yaml file when
using twister to run testing.
config ZTEST_NO_YIELD
bool "Do not yield to the idle thread after tests complete"
help
When the tests complete, do not yield to the idle thread and instead
spin in a loop. This is useful for low power mode tests, where
yielding to the idle thread may put the board into a low power state
where a debugger cannot connect to it.
config ZTEST_WARN_NO_OPTIMIZATIONS
bool "Warn when running tests with CONFIG_NO_OPTIMIZATIONS"
default y if !(ARCH_POSIX || COVERAGE)
depends on NO_OPTIMIZATIONS
help
Print a CMake warning when building ztests with no compiler
optimizations. Please don't file issues when running tests that are
not explicitly tuned to work in this configuration.
if ZTEST_NEW_API
menu "ztest provided rules"
config ZTEST_RULE_1CPU
bool "Run all the tests on a single CPU"
help
This rule will call z_test_1cpu_start before each unit test and
ztest_1cpu_stop after each test.
endmenu
config ZTEST_VERIFY_RUN_ALL
bool "Validates all defined tests have ran"
default y
help
This rule will fail the project if not all tests have been run.
config ZTEST_SHUFFLE
bool "Shuffle the order of tests and suites"
select TEST_RANDOM_GENERATOR if !ENTROPY_HAS_DRIVER
help
This rule will shuffle the order of tests and test suites.
if ZTEST_SHUFFLE
config ZTEST_SHUFFLE_SUITE_REPEAT_COUNT
int "Number of iterations the test suite will run"
default 3
help
This rule will execute a test suite N number of times. The tests
per suite will be shuffled on each iteration. The test order will likely
be different per iteration.
config ZTEST_SHUFFLE_TEST_REPEAT_COUNT
int "Number of iterations the test will run"
default 3
help
This rule will execute a test N number of times. The test order will
likely be different per iteration.
endif #ZTEST_SHUFFLE
config ZTEST_SUMMARY
bool "Display test summary"
default y
help
This option controls output of a test summary.
config ZTEST_VERBOSE_OUTPUT
bool "Verbose test output"
default y
help
This option controls whether test output is shown verbosely or
no output at all.
config ZTEST_VERBOSE_SUMMARY
bool "Verbose test summary"
default y
help
This option controls whether suite summary is shown verbosely or
just in one line.
config ZTEST_FAIL_ON_ASSUME
bool "Fail the test run when an assumption fails"
default y
help
When enabled, the test binary will fail at the end if an assumption failed. This means
that while tests will still be marked as skipped on failed zassume calls, the final test
result will be shown as a failure in order to increase visibility. This precludes tests
that skipped with the ZTEST_EXPECT_SKIP annotation.
endif # ZTEST_NEW_API
config TEST_LOGGING_FLUSH_AFTER_TEST
bool "When enabled logs are flushed after each test case"
default y
depends on MULTITHREADING
endif # ZTEST
config ZTEST_MOCKING
bool "Mocking support functions"
help
Enable mocking support for Ztest. This allows the test to set
return values and expected parameters to functions.
config ZTEST_PARAMETER_COUNT
int "Count of parameters or return values reserved"
default 10
depends on ZTEST_MOCKING
help
Maximum amount of concurrent return values / expected parameters.
config ZTRESS
bool "Stress test framework"
select THREAD_RUNTIME_STATS
select THREAD_MONITOR
select TEST_RANDOM_GENERATOR if !ENTROPY_HAS_DRIVER
depends on !USERSPACE
if ZTRESS
config ZTRESS_MAX_THREADS
int "Maximum number of threads in ztress framework"
default 3
range 1 16
config ZTRESS_STACK_SIZE
int "Stack size of Ztress thread"
default 4096 if NO_OPTIMIZATIONS
default 2048
config ZTRESS_REPORT_PROGRESS_MS
int "Progress report interval (in milliseconds)"
default 1000
help
Use 0 to disable.
endif # ZTRESS