Commit 826d7bdc authored by Matthieu Baerts's avatar Matthieu Baerts Committed by Jakub Kicinski

selftests: mptcp: join: allow running -cCi

Without this patch, no tests would be ran when launching:

  mptcp_join.sh -cCi

In any order or a combination with 2 of these letters.

The recommended way with getopt is first parse all options and then act.

This allows to do some actions in priority, e.g. display the help menu
and stop.

But also some global variables changing the behaviour of this selftests
 -- like the ones behind -cCi options -- can be set before running the
different tests. By doing that, we can also avoid long and unreadable
regex.
Signed-off-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ea56dcb4
...@@ -16,7 +16,6 @@ capture=0 ...@@ -16,7 +16,6 @@ capture=0
checksum=0 checksum=0
ip_mptcp=0 ip_mptcp=0
check_invert=0 check_invert=0
do_all_tests=1
init=0 init=0
TEST_COUNT=0 TEST_COUNT=0
...@@ -2293,84 +2292,66 @@ usage() ...@@ -2293,84 +2292,66 @@ usage()
exit ${ret} exit ${ret}
} }
for arg in "$@"; do
# check for "capture/checksum" args before launching tests
if [[ "${arg}" =~ ^"-"[0-9a-zA-Z]*"c"[0-9a-zA-Z]*$ ]]; then
capture=1
fi
if [[ "${arg}" =~ ^"-"[0-9a-zA-Z]*"C"[0-9a-zA-Z]*$ ]]; then
checksum=1
fi
if [[ "${arg}" =~ ^"-"[0-9a-zA-Z]*"i"[0-9a-zA-Z]*$ ]]; then
ip_mptcp=1
fi
# exception for the capture/checksum/ip_mptcp options, the rest means: a part of the tests
if [ "${arg}" != "-c" ] && [ "${arg}" != "-C" ] && [ "${arg}" != "-i" ]; then
do_all_tests=0
fi
done
if [ $do_all_tests -eq 1 ]; then
all_tests
exit $ret
fi
tests=()
while getopts 'fesltra64bpkdmchzCSi' opt; do while getopts 'fesltra64bpkdmchzCSi' opt; do
case $opt in case $opt in
f) f)
subflows_tests tests+=(subflows_tests)
;; ;;
e) e)
subflows_error_tests tests+=(subflows_error_tests)
;; ;;
s) s)
signal_address_tests tests+=(signal_address_tests)
;; ;;
l) l)
link_failure_tests tests+=(link_failure_tests)
;; ;;
t) t)
add_addr_timeout_tests tests+=(add_addr_timeout_tests)
;; ;;
r) r)
remove_tests tests+=(remove_tests)
;; ;;
a) a)
add_tests tests+=(add_tests)
;; ;;
6) 6)
ipv6_tests tests+=(ipv6_tests)
;; ;;
4) 4)
v4mapped_tests tests+=(v4mapped_tests)
;; ;;
b) b)
backup_tests tests+=(backup_tests)
;; ;;
p) p)
add_addr_ports_tests tests+=(add_addr_ports_tests)
;; ;;
k) k)
syncookies_tests tests+=(syncookies_tests)
;; ;;
S) S)
checksum_tests tests+=(checksum_tests)
;; ;;
d) d)
deny_join_id0_tests tests+=(deny_join_id0_tests)
;; ;;
m) m)
fullmesh_tests tests+=(fullmesh_tests)
;; ;;
z) z)
fastclose_tests tests+=(fastclose_tests)
;; ;;
c) c)
capture=1
;; ;;
C) C)
checksum=1
;; ;;
i) i)
ip_mptcp=1
;; ;;
h) h)
usage usage
...@@ -2381,4 +2362,12 @@ while getopts 'fesltra64bpkdmchzCSi' opt; do ...@@ -2381,4 +2362,12 @@ while getopts 'fesltra64bpkdmchzCSi' opt; do
esac esac
done done
if [ ${#tests[@]} -eq 0 ]; then
all_tests
else
for subtests in "${tests[@]}"; do
"${subtests}"
done
fi
exit $ret exit $ret
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment