selftests: pmtu.sh: improve the test result processing
authorPo-Hsu Lin <po-hsu.lin@canonical.com>
Tue, 10 Nov 2020 02:00:49 +0000 (10:00 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 12 Nov 2020 15:56:30 +0000 (07:56 -0800)
This test will treat all non-zero return codes as failures, it will
make the pmtu.sh test script being marked as FAILED when some
sub-test got skipped.

Improve the result processing by
  * Only mark the whole test script as SKIP when all of the
    sub-tests were skipped
  * If the sub-tests were either passed or skipped, the overall
    result will be PASS
  * If any of them has failed with return code 1 or anything bad
    happened (e.g. return code 127 for command not found), the
    overall result will be FAIL

Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/pmtu.sh

index fb53987..464e31e 100755 (executable)
@@ -1652,7 +1652,19 @@ run_test() {
        return $ret
        )
        ret=$?
-       [ $ret -ne 0 ] && exitcode=1
+       case $ret in
+               0)
+                       all_skipped=false
+                       [ $exitcode=$ksft_skip ] && exitcode=0
+               ;;
+               $ksft_skip)
+                       [ $all_skipped = true ] && exitcode=$ksft_skip
+               ;;
+               *)
+                       all_skipped=false
+                       exitcode=1
+               ;;
+       esac
 
        return $ret
 }
@@ -1786,6 +1798,7 @@ usage() {
 #
 exitcode=0
 desc=0
+all_skipped=true
 
 while getopts :ptv o
 do