kselftests: lib.mk: Add TEST_GEN_MODS_DIR variable
authorMarcos Paulo de Souza <mpdesouza@suse.com>
Fri, 12 Jan 2024 17:43:50 +0000 (14:43 -0300)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 22 Jan 2024 17:29:41 +0000 (10:29 -0700)
commit6727980b67852dae6b82a97e24fbadbdd218c033
tree811de686e208e9fd36ecbc1d090553f95eee3703
parent6613476e225e090cc9aad49be7fa504e290dd33d
kselftests: lib.mk: Add TEST_GEN_MODS_DIR variable

Add TEST_GEN_MODS_DIR variable for kselftests. It can point to
a directory containing kernel modules that will be used by
selftest scripts.

The modules are built as external modules for the running kernel.
As a result they are always binary compatible and the same tests
can be used for older or newer kernels.

The build requires "kernel-devel" package to be installed.
For example, in the upstream sources, the rpm devel package
is produced by "make rpm-pkg"

The modules can be built independently by

  make -C tools/testing/selftests/livepatch/

or they will be automatically built before running the tests via

  make -C tools/testing/selftests/livepatch/ run_tests

Note that they are _not_ built when running the standalone
tests by calling, for example, ./test-state.sh.

Along with TEST_GEN_MODS_DIR, it was necessary to create a new install
rule. INSTALL_MODS_RULE is needed because INSTALL_SINGLE_RULE would
copy the entire TEST_GEN_MODS_DIR directory to the destination, even
the files created by Kbuild to compile the modules. The new install
rule copies only the .ko files, as we would expect the gen_tar to work.

Reviewed-by: Joe Lawrence <joe.lawrence@redhat.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Documentation/dev-tools/kselftest.rst
tools/testing/selftests/lib.mk