#
# 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.

config ZTEST_STACKSIZE
	int "Test function thread stack size"
	depends on ZTEST
	default 2048 if COVERAGE_GCOV
	default 1024

config ZTEST_FAIL_FAST
	bool "Abort on first failing test"
	depends on ZTEST
	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"
	depends on ZTEST
	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_MOCKING
	bool "Mocking support functions"
	depends on ZTEST
	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"
	depends on ZTEST_MOCKING
	default 1
	help
	  Maximum amount of concurrent return values / expected parameters.

config ZTEST_THREAD_PRIORITY
	int "Testing thread priority"
	depends on ZTEST
	default -1
	help
	  Set priority of the testing thread. Default is -1 (cooperative).
