kunit: memcpy: Split slow memcpy tests into MEMCPY_SLOW_KUNIT_TEST
Since the long memcpy tests may stall a system for tens of seconds in virtualized architecture environments, split those tests off under CONFIG_MEMCPY_SLOW_KUNIT_TEST so they can be separately disabled. Reported-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/lkml/20221226195206.GA2626419@roeck-us.net Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-and-tested-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: David Gow <davidgow@google.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: linux-hardening@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
42633ed852
commit
4acf1de35f
|
@ -2566,6 +2566,15 @@ config MEMCPY_KUNIT_TEST
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
config MEMCPY_SLOW_KUNIT_TEST
|
||||||
|
bool "Include exhaustive memcpy tests"
|
||||||
|
depends on MEMCPY_KUNIT_TEST
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Some memcpy tests are quite exhaustive in checking for overlaps
|
||||||
|
and bit ranges. These can be very slow, so they are split out
|
||||||
|
as a separate config, in case they need to be disabled.
|
||||||
|
|
||||||
config IS_SIGNED_TYPE_KUNIT_TEST
|
config IS_SIGNED_TYPE_KUNIT_TEST
|
||||||
tristate "Test is_signed_type() macro" if !KUNIT_ALL_TESTS
|
tristate "Test is_signed_type() macro" if !KUNIT_ALL_TESTS
|
||||||
depends on KUNIT
|
depends on KUNIT
|
||||||
|
|
|
@ -309,6 +309,8 @@ static void set_random_nonzero(struct kunit *test, u8 *byte)
|
||||||
|
|
||||||
static void init_large(struct kunit *test)
|
static void init_large(struct kunit *test)
|
||||||
{
|
{
|
||||||
|
if (!IS_ENABLED(CONFIG_MEMCPY_SLOW_KUNIT_TEST))
|
||||||
|
kunit_skip(test, "Slow test skipped. Enable with CONFIG_MEMCPY_SLOW_KUNIT_TEST=y");
|
||||||
|
|
||||||
/* Get many bit patterns. */
|
/* Get many bit patterns. */
|
||||||
get_random_bytes(large_src, ARRAY_SIZE(large_src));
|
get_random_bytes(large_src, ARRAY_SIZE(large_src));
|
||||||
|
|
Loading…
Reference in New Issue