Commit c068ba9d authored by Ido Schimmel's avatar Ido Schimmel Committed by Paolo Abeni
Browse files

selftests: traceroute: Return correct value on failure



The test always returns success even if some tests were modified to
fail. Fix by converting the test to use the appropriate library
functions instead of using its own functions.

Before:

 # ./traceroute.sh
 TEST: IPV6 traceroute                                               [FAIL]
 TEST: IPV4 traceroute                                               [ OK ]

 Tests passed:   1
 Tests failed:   1
 $ echo $?
 0

After:

 # ./traceroute.sh
 TEST: IPv6 traceroute                                               [FAIL]
         traceroute6 did not return 2000:102::2
 TEST: IPv4 traceroute                                               [ OK ]
 $ echo $?
 1

Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250908073238.119240-5-idosch@nvidia.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 4a8c4166
Loading
Loading
Loading
Loading
+9 −29
Original line number Diff line number Diff line
@@ -10,28 +10,6 @@ PAUSE_ON_FAIL=no

################################################################################
#
log_test()
{
	local rc=$1
	local expected=$2
	local msg="$3"

	if [ ${rc} -eq ${expected} ]; then
		printf "TEST: %-60s  [ OK ]\n" "${msg}"
		nsuccess=$((nsuccess+1))
	else
		ret=1
		nfail=$((nfail+1))
		printf "TEST: %-60s  [FAIL]\n" "${msg}"
		if [ "${PAUSE_ON_FAIL}" = "yes" ]; then
			echo
			echo "hit enter to continue, 'q' to quit"
			read a
			[ "$a" = "q" ] && exit 1
		fi
	fi
}

run_cmd()
{
	local ns
@@ -210,9 +188,12 @@ run_traceroute6()

	setup_traceroute6

	RET=0

	# traceroute6 host-2 from host-1 (expects 2000:102::2)
	run_cmd $h1 "traceroute6 2000:103::4 | grep -q 2000:102::2"
	log_test $? 0 "IPV6 traceroute"
	check_err $? "traceroute6 did not return 2000:102::2"
	log_test "IPv6 traceroute"

	cleanup_traceroute6
}
@@ -275,9 +256,12 @@ run_traceroute()

	setup_traceroute

	RET=0

	# traceroute host-2 from host-1 (expects 1.0.1.1). Takes a while.
	run_cmd $h1 "traceroute 1.0.2.4 | grep -q 1.0.1.1"
	log_test $? 0 "IPV4 traceroute"
	check_err $? "traceroute did not return 1.0.1.1"
	log_test "IPv4 traceroute"

	cleanup_traceroute
}
@@ -294,9 +278,6 @@ run_tests()
################################################################################
# main

declare -i nfail=0
declare -i nsuccess=0

while getopts :pv o
do
	case $o in
@@ -308,5 +289,4 @@ done

run_tests

printf "\nTests passed: %3d\n" ${nsuccess}
printf "Tests failed: %3d\n"   ${nfail}
exit "${EXIT_STATUS}"