# SPDX-License-Identifier: GPL-2.0-only
#
# Industrial I/O subsystem unit tests configuration
#

# Keep in alphabetical order
config IIO_RESCALE_KUNIT_TEST
	tristate "Test IIO rescale conversion functions" if !KUNIT_ALL_TESTS
	depends on KUNIT && IIO_RESCALE
	default KUNIT_ALL_TESTS
	help
	  Build unit tests for the iio-rescale code.

	  For more information on KUnit and unit tests in general, please refer
	  to the KUnit documentation in Documentation/dev-tools/kunit/.

	  If unsure, say N.

config IIO_FORMAT_KUNIT_TEST
	tristate "Test IIO formatting functions" if !KUNIT_ALL_TESTS
	depends on KUNIT
	default KUNIT_ALL_TESTS
	help
	  build unit tests for the IIO formatting functions.

	  For more information on KUnit and unit tests in general, please refer
	  to the KUnit documentation in Documentation/dev-tools/kunit/.

	  If unsure, say N.
