Further, the tests are closely related to the given kernel version, they are not some completely separate tests.
Note that there's a general desire for the tests to *run* with older kernels and use whatever feature test mechanisms exist to skip tests that won't run. That's often needed anyway for configurable things.
Agreed.
(3) avoids dirtying the tree as a "make headers_install" would, but it also means that each test that makes use of new uapi has to update the relevant headers (what people working on QEMU are used to).
Note that you can do an out of tree build to avoid dirtying things.
Yes, but apparently the simple "make headers_install" will dirty the kernel.
See (and ideally comment on)
https://lkml.kernel.org/r/20231209020144.244759-1-jhubbard@nvidia.com