On 7/31/24 07:39, Muhammad Usama Anjum wrote:
Don't print that 88 sub-tests are going to be executed, but then skip.
This is against TAP compliance. Instead check pre-requisites first
before printing total number of tests.

Does TAP clearly mention this?


Old non-tap compliant output:
   TAP version 13
   1..88
   ok 2 # SKIP all tests require euid == 0
   # Planned tests != run tests (88 != 1)
   # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0

New and correct output:
   TAP version 13
   1..0 # SKIP all tests require euid == 0

The problem is that this new output doesn't show how many tests
are in this test suite that could be run.

I am not use if this is better for communicating coverage information
even if meets the TAP compliance.


Signed-off-by: Muhammad Usama Anjum <usama.an...@collabora.com>
---
Changes since v1:
- Remove simplifying if condition lines
- Update the patch message
---
  tools/testing/selftests/openat2/resolve_test.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/openat2/resolve_test.c 
b/tools/testing/selftests/openat2/resolve_test.c
index bbafad440893c..85a4c64ee950d 100644
--- a/tools/testing/selftests/openat2/resolve_test.c
+++ b/tools/testing/selftests/openat2/resolve_test.c
@@ -508,12 +508,13 @@ void test_openat2_opath_tests(void)
  int main(int argc, char **argv)
  {
        ksft_print_header();
-       ksft_set_plan(NUM_TESTS);
/* NOTE: We should be checking for CAP_SYS_ADMIN here... */
        if (geteuid() != 0)
                ksft_exit_skip("all tests require euid == 0\n");
+ ksft_set_plan(NUM_TESTS);
+
        test_openat2_opath_tests();
if (ksft_get_fail_cnt() + ksft_get_error_cnt() > 0)

thanks,
-- Shuah


Reply via email to