Re: [PATCH v3 11/11] selftests: error out if kernel header files are not yet built

From: Miroslav Benes
Date: Fri Dec 08 2023 - 07:44:14 EST


Hi John, Muhammad,

On Tue, 6 Jun 2023, John Hubbard wrote:

> As per a discussion with Muhammad Usama Anjum [1], the following is how
> one is supposed to build selftests:
>
> make headers && make -C tools/testing/selftests/mm
>
> Change the selftest build system's lib.mk to fail out with a helpful
> message if that prerequisite "make headers" has not been done yet.
>
> [1] https://lore.kernel.org/all/bf910fa5-0c96-3707-cce4-5bcc656b6274@xxxxxxxxxxxxx/

could you, please, elaborate more on that one is supposed to build
selftests with 'make headers'? Yes, Documentation/dev-tools/kselftest.rst
mentions that because you might need headers but...

The common way how we test the kernel is to build the kernel, install it
somewhere and run selftests on top. The sequence basically being "make
rpm-pkg; rpm -ivh; cd tools/testing/selftest/livepatch/ in source tree;
sudo make run_tests" (or a similar variation of the procedure). The point
is that we want to test the running kernel with its respective environment
installed in /lib/modules/`uname -r`/ (if needed). This way we can run
newer selftests from the current mainline tree on older kernels among
others.

The commit breaks the use case which worked for a long long time.

It also breaks what Marcos proposed for livepatch selftests in
https://lore.kernel.org/all/20231031-send-lp-kselftests-v3-0-2b1655c2605f@xxxxxxxx/

I guess we can always work around it by letting subsystem selftests to
override KHDR_DIR but I am not comfortable with the behaviour that your
commit introduced in the first place to be honest.

Thank you,
Miroslav