Message ID | 20250502-selftests-timens-fixes-v1-1-fb517c76f04d@linutronix.de |
---|---|
State | New |
Headers | show |
Series | selftests/timens: Various small fixes | expand |
On 5/2/25 06:03, Thomas Weißschuh wrote: > The TAP specification requires that the output begins with a header line. > These headers lines are missing in the timens tests. > > Print such a line. There is no cover letter for this - so I will respond to the first patch. The TAP information is added by the kselftest wrapper if you were to run the test using ksefltest. The following will add the TAP header or if you use make kselftest command from the main Makefile. make -C timens run_tests cd timens; make run_tests (will also add TAP header) The only time you won't see the TAP headers is when you run the test from the test directory just as a command. Is this what you need to do? I would rather not see TAP headers added to invidual tests unless there is a good reason for it. The problem with adding TAP headers is two-fold: 1. It becomes hard to read the ouptput if test is run using the framework a. make -C timens run_tests b. cd timens; make run_tests 2. These headers become bested and TAP doesn't like nested TAP headers. My undestansing is parses will have problems. I am adding Tim Bird to the discussion. Tim, is this still an issue? Are nested TAP headers still a problem. Even if they aren't there is the issue of multiple TAP headers for each test when we run the test using framework. thanks, -- Shuah
On 5/9/25 09:41, Thomas Weißschuh wrote: > +Cc Kees > > On Wed, May 07, 2025 at 03:06:16PM -0600, Shuah Khan wrote: >> On 5/2/25 06:03, Thomas Weißschuh wrote: >>> The TAP specification requires that the output begins with a header line. >>> These headers lines are missing in the timens tests. >>> >>> Print such a line. >> >> There is no cover letter for this - so I will respond to the first >> patch. > > Hm, I sent one and can also see it on lore. > >> The TAP information is added by the kselftest wrapper if >> you were to run the test using ksefltest. >> >> The following will add the TAP header or if you use make kselftest >> command from the main Makefile. >> >> make -C timens run_tests >> >> cd timens; make run_tests (will also add TAP header) >> >> The only time you won't see the TAP headers is when you run the test >> from the test directory just as a command. Is this what you need >> to do? I would rather not see TAP headers added to invidual tests >> unless there is a good reason for it. > > Yes, I am running each test on its own, as part of kunit based on [0]. > I also looked at the vDSO selftests and those all print the TAP headers on > their own. The same for all of the x86 selftests I looked at. We have been a bit inconsistent with adding TAP headers to individual tests. We added them to some and then when we found out the nesting TAP headers issue, we stopped and never really cleaned up. Since we have this kunit use-case, I am going to take this series and see who complains. I don't think parsers are in the mix at least for majority of ksefltest runs. thanks, -- Shuah
diff --git a/tools/testing/selftests/timens/clock_nanosleep.c b/tools/testing/selftests/timens/clock_nanosleep.c index 72d41b955fb2263ae74c34b446fb322d1bd50c6a..346bff3d128dfa8c8c743cc2eba74917994bb2f7 100644 --- a/tools/testing/selftests/timens/clock_nanosleep.c +++ b/tools/testing/selftests/timens/clock_nanosleep.c @@ -115,6 +115,8 @@ int main(int argc, char *argv[]) { int ret, nsfd; + ksft_print_header(); + nscheck(); ksft_set_plan(4); diff --git a/tools/testing/selftests/timens/exec.c b/tools/testing/selftests/timens/exec.c index d12ff955de0d8f6665fa957e81438e373af9f92c..a644162d56fdc86827b83a45f83c2597c253aa6a 100644 --- a/tools/testing/selftests/timens/exec.c +++ b/tools/testing/selftests/timens/exec.c @@ -36,6 +36,8 @@ int main(int argc, char *argv[]) return 0; } + ksft_print_header(); + nscheck(); ksft_set_plan(1); diff --git a/tools/testing/selftests/timens/futex.c b/tools/testing/selftests/timens/futex.c index 6b2b9264e851caed06a628589eda0bf81ff33f16..339633ae037a74d2026ca835ac8600cd0394ae01 100644 --- a/tools/testing/selftests/timens/futex.c +++ b/tools/testing/selftests/timens/futex.c @@ -66,6 +66,8 @@ int main(int argc, char *argv[]) pid_t pid; struct timespec mtime_now; + ksft_print_header(); + nscheck(); ksft_set_plan(2); diff --git a/tools/testing/selftests/timens/gettime_perf.c b/tools/testing/selftests/timens/gettime_perf.c index 6b13dc277724126a9d2d5e17c805217760df72ad..d6658b7b754877fbf67237d6c22787a2a89066ce 100644 --- a/tools/testing/selftests/timens/gettime_perf.c +++ b/tools/testing/selftests/timens/gettime_perf.c @@ -67,6 +67,8 @@ int main(int argc, char *argv[]) time_t offset = 10; int nsfd; + ksft_print_header(); + ksft_set_plan(8); fill_function_pointers(); diff --git a/tools/testing/selftests/timens/procfs.c b/tools/testing/selftests/timens/procfs.c index 1833ca97eb247b1b45b7a86f0ca800d4a6e58c74..0a9ff90ee69a9327ed905428f1462fa189ffd830 100644 --- a/tools/testing/selftests/timens/procfs.c +++ b/tools/testing/selftests/timens/procfs.c @@ -180,6 +180,8 @@ int main(int argc, char *argv[]) { int ret = 0; + ksft_print_header(); + nscheck(); ksft_set_plan(2); diff --git a/tools/testing/selftests/timens/timens.c b/tools/testing/selftests/timens/timens.c index 387220791a052e6013bd0fb4162f123d85152183..a9c0534ef8f67184c34882ae163472c179f593e4 100644 --- a/tools/testing/selftests/timens/timens.c +++ b/tools/testing/selftests/timens/timens.c @@ -151,6 +151,8 @@ int main(int argc, char *argv[]) time_t offset; int ret = 0; + ksft_print_header(); + nscheck(); check_supported_timers(); diff --git a/tools/testing/selftests/timens/timer.c b/tools/testing/selftests/timens/timer.c index 5b939f59dfa4d64e4c2e4dc8eb6a644d44211f13..51babe63e233bdaaef35c1cafbcb5b5cc91c021e 100644 --- a/tools/testing/selftests/timens/timer.c +++ b/tools/testing/selftests/timens/timer.c @@ -75,6 +75,8 @@ int main(int argc, char *argv[]) pid_t pid; struct timespec btime_now, mtime_now; + ksft_print_header(); + nscheck(); check_supported_timers(); diff --git a/tools/testing/selftests/timens/timerfd.c b/tools/testing/selftests/timens/timerfd.c index a4196bbd6e33f41b6a3ae346070037aff1cf4087..e58bc8b64ce2738dccb8c2a2c88e592c237b55d5 100644 --- a/tools/testing/selftests/timens/timerfd.c +++ b/tools/testing/selftests/timens/timerfd.c @@ -82,6 +82,8 @@ int main(int argc, char *argv[]) pid_t pid; struct timespec btime_now, mtime_now; + ksft_print_header(); + nscheck(); check_supported_timers(); diff --git a/tools/testing/selftests/timens/vfork_exec.c b/tools/testing/selftests/timens/vfork_exec.c index 5b8907bf451dde3f3e2699f87797c155b9115aab..b957e1a651243adde41ec5cd57bbd12a7cac9eeb 100644 --- a/tools/testing/selftests/timens/vfork_exec.c +++ b/tools/testing/selftests/timens/vfork_exec.c @@ -91,6 +91,8 @@ int main(int argc, char *argv[]) return check("child after exec", &now); } + ksft_print_header(); + nscheck(); ksft_set_plan(4);
The TAP specification requires that the output begins with a header line. These headers lines are missing in the timens tests. Print such a line. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> --- tools/testing/selftests/timens/clock_nanosleep.c | 2 ++ tools/testing/selftests/timens/exec.c | 2 ++ tools/testing/selftests/timens/futex.c | 2 ++ tools/testing/selftests/timens/gettime_perf.c | 2 ++ tools/testing/selftests/timens/procfs.c | 2 ++ tools/testing/selftests/timens/timens.c | 2 ++ tools/testing/selftests/timens/timer.c | 2 ++ tools/testing/selftests/timens/timerfd.c | 2 ++ tools/testing/selftests/timens/vfork_exec.c | 2 ++ 9 files changed, 18 insertions(+)