mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-16 05:50:19 +00:00
selftests: fib_tests: Fix 'Command line is not complete' errors
A couple of tests are verifying a route has been removed. The helper
expects the prefix as the first part of the expected output. When
checking that a route has been deleted the prefix is empty leading
to an invalid ip command:
$ ip ro ls match
Command line is not complete. Try option "help"
Fix by moving the comparison of expected output and output to a new
function that is used by both check_route and check_route6. Use the
new helper for the 2 checks on route removal.
Also, remove the reset of 'set -x' in route_setup which overrides the
user managed setting.
Fixes: d69faad765
("selftests: fib_tests: Add prefix route tests with metric")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d3706566ae
commit
a5f622984a
@ -605,6 +605,39 @@ run_cmd()
|
||||
return $rc
|
||||
}
|
||||
|
||||
check_expected()
|
||||
{
|
||||
local out="$1"
|
||||
local expected="$2"
|
||||
local rc=0
|
||||
|
||||
[ "${out}" = "${expected}" ] && return 0
|
||||
|
||||
if [ -z "${out}" ]; then
|
||||
if [ "$VERBOSE" = "1" ]; then
|
||||
printf "\nNo route entry found\n"
|
||||
printf "Expected:\n"
|
||||
printf " ${expected}\n"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
# tricky way to convert output to 1-line without ip's
|
||||
# messy '\'; this drops all extra white space
|
||||
out=$(echo ${out})
|
||||
if [ "${out}" != "${expected}" ]; then
|
||||
rc=1
|
||||
if [ "${VERBOSE}" = "1" ]; then
|
||||
printf " Unexpected route entry. Have:\n"
|
||||
printf " ${out}\n"
|
||||
printf " Expected:\n"
|
||||
printf " ${expected}\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
# add route for a prefix, flushing any existing routes first
|
||||
# expected to be the first step of a test
|
||||
add_route6()
|
||||
@ -652,31 +685,7 @@ check_route6()
|
||||
pfx=$1
|
||||
|
||||
out=$($IP -6 ro ls match ${pfx} | sed -e 's/ pref medium//')
|
||||
[ "${out}" = "${expected}" ] && return 0
|
||||
|
||||
if [ -z "${out}" ]; then
|
||||
if [ "$VERBOSE" = "1" ]; then
|
||||
printf "\nNo route entry found\n"
|
||||
printf "Expected:\n"
|
||||
printf " ${expected}\n"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
# tricky way to convert output to 1-line without ip's
|
||||
# messy '\'; this drops all extra white space
|
||||
out=$(echo ${out})
|
||||
if [ "${out}" != "${expected}" ]; then
|
||||
rc=1
|
||||
if [ "${VERBOSE}" = "1" ]; then
|
||||
printf " Unexpected route entry. Have:\n"
|
||||
printf " ${out}\n"
|
||||
printf " Expected:\n"
|
||||
printf " ${expected}\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
return $rc
|
||||
check_expected "${out}" "${expected}"
|
||||
}
|
||||
|
||||
route_cleanup()
|
||||
@ -725,7 +734,7 @@ route_setup()
|
||||
ip -netns ns2 addr add 172.16.103.2/24 dev veth4
|
||||
ip -netns ns2 addr add 172.16.104.1/24 dev dummy1
|
||||
|
||||
set +ex
|
||||
set +e
|
||||
}
|
||||
|
||||
# assumption is that basic add of a single path route works
|
||||
@ -960,7 +969,8 @@ ipv6_addr_metric_test()
|
||||
run_cmd "$IP li set dev dummy2 down"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route6 ""
|
||||
out=$($IP -6 ro ls match 2001:db8:104::/64)
|
||||
check_expected "${out}" ""
|
||||
rc=$?
|
||||
fi
|
||||
log_test $rc 0 "Prefix route removed on link down"
|
||||
@ -1091,38 +1101,13 @@ check_route()
|
||||
local pfx
|
||||
local expected="$1"
|
||||
local out
|
||||
local rc=0
|
||||
|
||||
set -- $expected
|
||||
pfx=$1
|
||||
[ "${pfx}" = "unreachable" ] && pfx=$2
|
||||
|
||||
out=$($IP ro ls match ${pfx})
|
||||
[ "${out}" = "${expected}" ] && return 0
|
||||
|
||||
if [ -z "${out}" ]; then
|
||||
if [ "$VERBOSE" = "1" ]; then
|
||||
printf "\nNo route entry found\n"
|
||||
printf "Expected:\n"
|
||||
printf " ${expected}\n"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
# tricky way to convert output to 1-line without ip's
|
||||
# messy '\'; this drops all extra white space
|
||||
out=$(echo ${out})
|
||||
if [ "${out}" != "${expected}" ]; then
|
||||
rc=1
|
||||
if [ "${VERBOSE}" = "1" ]; then
|
||||
printf " Unexpected route entry. Have:\n"
|
||||
printf " ${out}\n"
|
||||
printf " Expected:\n"
|
||||
printf " ${expected}\n\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
return $rc
|
||||
check_expected "${out}" "${expected}"
|
||||
}
|
||||
|
||||
# assumption is that basic add of a single path route works
|
||||
@ -1387,7 +1372,8 @@ ipv4_addr_metric_test()
|
||||
run_cmd "$IP li set dev dummy2 down"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route ""
|
||||
out=$($IP ro ls match 172.16.104.0/24)
|
||||
check_expected "${out}" ""
|
||||
rc=$?
|
||||
fi
|
||||
log_test $rc 0 "Prefix route removed on link down"
|
||||
|
Loading…
Reference in New Issue
Block a user