Commit 3e1d95b6 authored by Luis Chamberlain's avatar Luis Chamberlain
Browse files

selftests: kallsyms: fix and clarify current test boundaries



Provide and clarify the existing ranges and what you should expect.
Fix the gen_test_kallsyms.sh script to accept different ranges.

Fixes: 84b4a51f ("selftests: add new kallsyms selftests")
Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
parent 7ea13556
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -3003,9 +3003,39 @@ config TEST_KALLSYMS_D
	tristate
	depends on m

choice
	prompt "Kallsym test range"
	default TEST_KALLSYMS_LARGE
	help
	  Selecting something other than "Fast" will enable tests which slow
	  down the build and may crash your build.

config TEST_KALLSYMS_FAST
	bool "Fast builds"
	help
	  You won't really be testing kallsysms, so this just helps fast builds
	  when allmodconfig is used..

config TEST_KALLSYMS_LARGE
	bool "Enable testing kallsyms with large exports"
	help
	  This will enable larger number of symbols. This will slow down
	  your build considerably.

config TEST_KALLSYMS_MAX
	bool "Known kallsysms limits"
	help
	  This will enable exports to the point we know we'll start crashing
	  builds.

endchoice

config TEST_KALLSYMS_NUMSYMS
	int "test kallsyms number of symbols"
	default 100
	range 2 10000
	default 2 if TEST_KALLSYMS_FAST
	default 100 if TEST_KALLSYMS_LARGE
	default 10000 if TEST_KALLSYMS_MAX
	help
	  The number of symbols to create on TEST_KALLSYMS_A, only one of which
	  module TEST_KALLSYMS_B will use. This also will be used
+7 −2
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@ NUM_SYMS=$2
SCALE_FACTOR=$3
TEST_TYPE=$(echo $TARGET | sed -e 's|lib/tests/module/test_kallsyms_||g')
TEST_TYPE=$(echo $TEST_TYPE | sed -e 's|.c||g')
FIRST_B_LOOKUP=1

if [[ $NUM_SYMS -gt 2 ]]; then
	FIRST_B_LOOKUP=$((NUM_SYMS/2))
fi

gen_template_module_header()
{
@@ -52,10 +57,10 @@ ____END_MODULE

gen_template_module_data_b()
{
	printf "\nextern int auto_test_a_%010d;\n\n" 28
	printf "\nextern int auto_test_a_%010d;\n\n" $FIRST_B_LOOKUP
	echo "static int auto_runtime_test(void)"
	echo "{"
	printf "\nreturn auto_test_a_%010d;\n" 28
	printf "\nreturn auto_test_a_%010d;\n" $FIRST_B_LOOKUP
	echo "}"
}