• Ryan Roberts's avatar
    selftests/mm: log run_vmtests.sh results in TAP format · a3c5cc51
    Ryan Roberts authored
    When running tests on a CI system (e.g.  LAVA) it is useful to output test
    results in TAP (Test Anything Protocol) format so that the CI can parse
    the fine-grained results to show regressions.  Many of the mm selftest
    binaries already output using the TAP format.  And the kselftests runner
    (run_kselftest.sh) also uses the format.  CI systems such as LAVA can
    already handle nested TAP reports.  However, with the mm selftests we have
    3 levels of nesting (run_kselftest.sh -> run_vmtests.sh -> individual test
    binaries) and the middle level did not previously support TAP, which
    breaks the parser.
    
    Let's fix that by teaching run_vmtests.sh to output using the TAP format. 
    Ideally this would be opt-in via a command line argument to avoid the
    possibility of breaking anyone's existing scripts that might scrape the
    output.  However, it is not possible to pass arguments to tests invoked
    via run_kselftest.sh.  So I've implemented an opt-out option (-n), which
    will revert to the existing output format.
    
    Future changes to this file should be aware of 2 new conventions:
    
     - output that is part of the TAP reporting is piped through tap_output
     - general output is piped through tap_prefix
    
    Link: https://lkml.kernel.org/r/20231214162434.3580009-1-ryan.roberts@arm.com
    
    Signed-off-by: default avatarRyan Roberts <ryan.roberts@arm.com>
    Reviewed-by: default avatarMark Brown <broonie@kernel.org>
    Tested-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Cc: Aishwarya TCV <aishwarya.tcv@arm.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    a3c5cc51
run_vmtests.sh 11.1 KB