Jakub Kicinski wrote:
On Fri, 30 Aug 2024 14:47:43 -0400 Willem de Bruijn wrote:
We have directories in net/lib, and it's a target, and it works, no?
net/lib is not a TARGET in tools/testing/selftests/Makefile. Its Makefile only generates dependencies for other targets: TEST_FILES, TEST_GEN_FILES and TEST_INCLUDES.
Oh right, TEST_FILES vs TEST_INCLUDES :(
Looks like only x86 does some weird stuff and prepends $(OUTPUT) to all test names. Otherwise the only TEST_NAME with a / in it is
x86_64/nx_huge_pages_test.sh
But then again maybe we should give up on the idea of using directories? Use some separator like --, I mean:
mv packetdrill/tcp/inq/client.pkt packetdrill/tcp--inq--client.pkt
Assuming we're moving forward with the interpreter idea we don't need directories for multi-threading, just for organization. Which perhaps isn't worth the time investment? Given that we'd mostly interact with these tests via UI which will flatten it all back?
Okay, went with the simplest approach for v1: indeed just flattening the space like this.
Only after implementing TEST_PROGS_RECURSE and PRESERVE_TEST_DIRS. Both make kselftest more complex and in subtle ways that could break existing tests.
Also simplified the interpreter mechanism. Instead of requiring an environment variable, look for a specific executable in the TARGET dir. This will make the test just work when someone does a manual run.
All is tentative and up for revision, of course.