selftests: fuxex: Report a unique test name per run of futex_requeue_pi
Commit Message
The futex_requeue_pi test program is run a number of times with different
options to provide multiple test cases. Currently every time it runs it
reports the result with a consistent string, meaning that automated systems
parsing the TAP output from a test run have difficulty in distinguishing
which test is which.
The parameters used for the test are already logged as part of the test
output, let's use the same format to roll them into the test name that we
use with KTAP so that automated systems can follow the results of the
individual cases that get run.
Signed-off-by: Mark Brown <broonie@kernel.org>
---
tools/testing/selftests/futex/functional/futex_requeue_pi.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
---
base-commit: 54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478
change-id: 20240213-kselftest-futex-requeue-pi-unique-5a462303f6bc
Best regards,
Comments
On Tue, 13 Feb 2024, Mark Brown wrote:
>The futex_requeue_pi test program is run a number of times with different
>options to provide multiple test cases. Currently every time it runs it
>reports the result with a consistent string, meaning that automated systems
>parsing the TAP output from a test run have difficulty in distinguishing
>which test is which.
>
>The parameters used for the test are already logged as part of the test
>output, let's use the same format to roll them into the test name that we
>use with KTAP so that automated systems can follow the results of the
>individual cases that get run.
>
>Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Davidlohr Bueso <dave@stgolabs.net>
On Tue, Feb 13 2024 at 19:06, Mark Brown wrote:
> The futex_requeue_pi test program is run a number of times with different
> options to provide multiple test cases. Currently every time it runs it
> reports the result with a consistent string, meaning that automated systems
> parsing the TAP output from a test run have difficulty in distinguishing
> which test is which.
>
> The parameters used for the test are already logged as part of the test
> output, let's use the same format to roll them into the test name that we
> use with KTAP so that automated systems can follow the results of the
> individual cases that get run.
>
> Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
On 2/19/24 08:58, Thomas Gleixner wrote:
> On Tue, Feb 13 2024 at 19:06, Mark Brown wrote:
>> The futex_requeue_pi test program is run a number of times with different
>> options to provide multiple test cases. Currently every time it runs it
>> reports the result with a consistent string, meaning that automated systems
>> parsing the TAP output from a test run have difficulty in distinguishing
>> which test is which.
>>
>> The parameters used for the test are already logged as part of the test
>> output, let's use the same format to roll them into the test name that we
>> use with KTAP so that automated systems can follow the results of the
>> individual cases that get run.
>>
>> Signed-off-by: Mark Brown <broonie@kernel.org>
>
> Acked-by: Thomas Gleixner <tglx@linutronix.de>
Thank you. I will pick this up for Linux 6.9-rc1
thanks,
-- Shuah
@@ -17,6 +17,8 @@
*
*****************************************************************************/
+#define _GNU_SOURCE
+
#include <errno.h>
#include <limits.h>
#include <pthread.h>
@@ -358,6 +360,7 @@ int unit_test(int broadcast, long lock, int third_party_owner, long timeout_ns)
int main(int argc, char *argv[])
{
+ const char *test_name;
int c, ret;
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) {
@@ -397,6 +400,14 @@ int main(int argc, char *argv[])
"\tArguments: broadcast=%d locked=%d owner=%d timeout=%ldns\n",
broadcast, locked, owner, timeout_ns);
+ ret = asprintf(&test_name,
+ "%s broadcast=%d locked=%d owner=%d timeout=%ldns",
+ TEST_NAME, broadcast, locked, owner, timeout_ns);
+ if (ret < 0) {
+ ksft_print_msg("Failed to generate test name\n");
+ test_name = TEST_NAME;
+ }
+
/*
* FIXME: unit_test is obsolete now that we parse options and the
* various style of runs are done by run.sh - simplify the code and move
@@ -404,6 +415,6 @@ int main(int argc, char *argv[])
*/
ret = unit_test(broadcast, locked, owner, timeout_ns);
- print_result(TEST_NAME, ret);
+ print_result(test_name, ret);
return ret;
}