• Mark Brown's avatar
    kselftest/vDSO: Make test name reporting for vdso_abi_test tooling friendly · 60e76e7a
    Mark Brown authored
    The test results from vdso_abi_test are all formatted using a series of
    macros:
    
      #define VDSO_TEST_PASS_MSG()	"\n%s(): PASS\n", __func__
      #define VDSO_TEST_FAIL_MSG(x)	"\n%s(): %s FAIL\n", __func__, x
      #define VDSO_TEST_SKIP_MSG(x)	"\n%s(): SKIP: Could not find %s\n", __func__, x
    
    which don't play nicely with automated KTAP parsers since the actual KTAP
    lines are in the form
    
       ok 1
    
    with no test name and we get an additional log line such as
    
      vdso_test_gettimeofday(): PASS
    
    with no preceeding # as KTAP requires. The lack of a test name means that
    many automation systems will have a hard time distinguishing between the
    different tests or correlating results between runs, the lack of # is less
    severe but could potentially cause confusion.
    
    Fix these issues by rewriting all the result reporting to include both the
    vDSO function name being tested and (where there is one) the name of the
    clock being tested in the main KTAP line. Since we have tests both with and
    without a specific clock we abandon the helper macros and just put the
    format strings used directly in the ksft_ API calls. When we fail to look
    up the relevant vDSO symbol we add a separate print statement explaining
    why the skip is being done. This gives output such as:
    
      ok 1 __vdso_gettimeofday
      # clock_id: CLOCK_REALTIME
      # The time is 1700673118.58091596
      ok 2 __vdso_clock_gettime CLOCK_REALTIME
    
    which is much easier for test automation to work with.
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    60e76e7a
vdso_test_abi.c 5.39 KB