Unverified Commit af71bc19 authored by Charlie Jenkins's avatar Charlie Jenkins Committed by Palmer Dabbelt
Browse files

riscv: Add tests for riscv module loading



Add test cases for the two main groups of relocations added: SUB and
SET, along with uleb128.

Signed-off-by: default avatarCharlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20231101-module_relocations-v9-3-8dfa3483c400@rivosinc.com


Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent 8fd6c514
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
source "arch/riscv/kernel/tests/Kconfig.debug"
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ obj-y += stacktrace.o
obj-y	+= cacheinfo.o
obj-y	+= patch.o
obj-y	+= probes/
obj-y	+= tests/
obj-$(CONFIG_MMU) += vdso.o vdso/

obj-$(CONFIG_RISCV_M_MODE)	+= traps_misaligned.o
+35 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
menu "arch/riscv/kernel Testing and Coverage"

config AS_HAS_ULEB128
	def_bool $(as-instr,.reloc label$(comma) R_RISCV_SET_ULEB128$(comma) 127\n.reloc label$(comma) R_RISCV_SUB_ULEB128$(comma) 127\nlabel:\n.word 0)

menuconfig RUNTIME_KERNEL_TESTING_MENU
       bool "arch/riscv/kernel runtime Testing"
       def_bool y
       help
         Enable riscv kernel runtime testing.

if RUNTIME_KERNEL_TESTING_MENU

config RISCV_MODULE_LINKING_KUNIT
       bool "KUnit test riscv module linking at runtime" if !KUNIT_ALL_TESTS
       depends on KUNIT
       default KUNIT_ALL_TESTS
       help
         Enable this option to test riscv module linking at boot. This will
	 enable a module called "test_module_linking".

         KUnit tests run during boot and output the results to the debug log
         in TAP format (http://testanything.org/). Only useful for kernel devs
         running the KUnit test harness, and not intended for inclusion into a
         production build.

         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.

endif # RUNTIME_TESTING_MENU

endmenu # "arch/riscv/kernel runtime Testing"
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_RISCV_MODULE_LINKING_KUNIT)	+= module_test/
+15 −0
Original line number Diff line number Diff line
obj-m += test_module_linking.o

test_sub := test_sub6.o test_sub8.o test_sub16.o test_sub32.o test_sub64.o

test_set := test_set6.o test_set8.o test_set16.o test_set32.o

test_module_linking-objs += $(test_sub)

test_module_linking-objs += $(test_set)

ifeq ($(CONFIG_AS_HAS_ULEB128),y)
test_module_linking-objs += test_uleb128.o
endif

test_module_linking-objs += test_module_linking_main.o
Loading