selftests: fib-onlink: Make quiet by default
authorDavid Ahern <dsahern@gmail.com>
Wed, 22 May 2019 19:09:16 +0000 (12:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 May 2019 00:50:24 +0000 (17:50 -0700)
Add VERBOSE argument to fib-onlink-tests.sh and make output quiet by
default. Add getopt parsing of inputs and support for -v (verbose) and
-p (pause on fail).

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/fib-onlink-tests.sh

index 864f865eee55f8c9d787217d89075278bcc84a57..c287b90b8af80af5fb3d9b426f4aeb6af1ff74b2 100755 (executable)
@@ -4,6 +4,7 @@
 # IPv4 and IPv6 onlink tests
 
 PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
+VERBOSE=0
 
 # Network interfaces
 # - odd in current namespace; even in peer ns
@@ -91,10 +92,10 @@ log_test()
 
        if [ ${rc} -eq ${expected} ]; then
                nsuccess=$((nsuccess+1))
-               printf "\n    TEST: %-50s  [ OK ]\n" "${msg}"
+               printf "    TEST: %-50s  [ OK ]\n" "${msg}"
        else
                nfail=$((nfail+1))
-               printf "\n    TEST: %-50s  [FAIL]\n" "${msg}"
+               printf "    TEST: %-50s  [FAIL]\n" "${msg}"
                if [ "${PAUSE_ON_FAIL}" = "yes" ]; then
                        echo
                        echo "hit enter to continue, 'q' to quit"
@@ -121,9 +122,23 @@ log_subsection()
 
 run_cmd()
 {
-       echo
-       echo "COMMAND: $*"
-       eval $*
+       local cmd="$*"
+       local out
+       local rc
+
+       if [ "$VERBOSE" = "1" ]; then
+               printf "    COMMAND: $cmd\n"
+       fi
+
+       out=$(eval $cmd 2>&1)
+       rc=$?
+       if [ "$VERBOSE" = "1" -a -n "$out" ]; then
+               echo "    $out"
+       fi
+
+       [ "$VERBOSE" = "1" ] && echo
+
+       return $rc
 }
 
 get_linklocal()
@@ -450,12 +465,35 @@ run_onlink_tests()
        invalid_onlink_ipv6
 }
 
+################################################################################
+# usage
+
+usage()
+{
+       cat <<EOF
+usage: ${0##*/} OPTS
+
+        -p          Pause on fail
+        -v          verbose mode (show commands and output)
+EOF
+}
+
 ################################################################################
 # main
 
 nsuccess=0
 nfail=0
 
+while getopts :t:pPhv o
+do
+       case $o in
+               p) PAUSE_ON_FAIL=yes;;
+               v) VERBOSE=$(($VERBOSE + 1));;
+               h) usage; exit 0;;
+               *) usage; exit 1;;
+       esac
+done
+
 cleanup
 setup
 run_onlink_tests