Re: [PATCH v3] kselftest/clone3: Make test names for set_tid test stable
From: Shuah Khan
Date: Tue Mar 26 2024 - 16:20:24 EST
On 3/26/24 13:17, Shuah Khan wrote:
On 3/25/24 08:29, Mark Brown wrote:
The test results reported for the clone3_set_tid tests interact poorly with
automation for running kselftest since the reported test names include TIDs
dynamically allocated at runtime. A lot of automation for running kselftest
will compare runs by looking at the test name to identify if the same test
is being run so changing names make it look like the testsuite has been
updated to include new tests. This makes the results display less clearly
and breaks cases like bisection.
Address this by providing a brief description of the tests and logging that
along with the stable parameters for the test currently logged. The TIDs
are already logged separately in existing logging except for the final test
which has a new log message added. We also tweak the formatting of the
logging of expected/actual values for clarity.
There are still issues with the logging of skipped tests (many are simply
not logged at all when skipped and all are logged with different names) but
these are less disruptive since the skips are all based on not being run as
root, a condition likely to be stable for a given test system.
Acked-by: Christian Brauner <brauner@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
---
Changes in v3:
- Rebase onto v6.9-rc1.
- This is the second release I've posted this for with no changes or
review comments.
- Link to v2: https://lore.kernel.org/r/20240122-kselftest-clone3-set-tid-v2-1-72af5d7dbae8@xxxxxxxxxx
Thank you for patience. Applied now to linux-kselftest fixes for
next rc.
Mark,
I am seeing the following compile warnings. Please fix and send patch
on top pf linux-kselftest fixes.
clone3_set_tid.c: In function ‘test_clone3_set_tid’:
clone3_set_tid.c:136:43: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
136 | ksft_test_result(ret == expected, "%s with %d TIDs and flags 0x%x\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137 | desc, set_tid_size, flags);
| ~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
./kselftest.h:210:39: note: in definition of macro ‘ksft_test_result’
210 | ksft_test_result_pass(fmt, ##__VA_ARGS__);\
| ^~~
clone3_set_tid.c:136:53: note: format string is defined here
136 | ksft_test_result(ret == expected, "%s with %d TIDs and flags 0x%x\n",
| ~^
| |
| int
| %ld
clone3_set_tid.c:136:43: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
136 | ksft_test_result(ret == expected, "%s with %d TIDs and flags 0x%x\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137 | desc, set_tid_size, flags);
| ~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
./kselftest.h:212:39: note: in definition of macro ‘ksft_test_result’
212 | ksft_test_result_fail(fmt, ##__VA_ARGS__);\
| ^~~
clone3_set_tid.c:136:53: note: format string is defined here
136 | ksft_test_result(ret == expected, "%s with %d TIDs and flags 0x%x\n",
| ~^
| |
| int
| %ld
thanks,
-- Shuah