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

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
Loading
Loading
Loading
Loading
+28 −39
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ capture=0
checksum=0
ip_mptcp=0
check_invert=0
do_all_tests=1
init=0

TEST_COUNT=0
@@ -2293,84 +2292,66 @@ usage()
	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
	case $opt in
		f)
			subflows_tests
			tests+=(subflows_tests)
			;;
		e)
			subflows_error_tests
			tests+=(subflows_error_tests)
			;;
		s)
			signal_address_tests
			tests+=(signal_address_tests)
			;;
		l)
			link_failure_tests
			tests+=(link_failure_tests)
			;;
		t)
			add_addr_timeout_tests
			tests+=(add_addr_timeout_tests)
			;;
		r)
			remove_tests
			tests+=(remove_tests)
			;;
		a)
			add_tests
			tests+=(add_tests)
			;;
		6)
			ipv6_tests
			tests+=(ipv6_tests)
			;;
		4)
			v4mapped_tests
			tests+=(v4mapped_tests)
			;;
		b)
			backup_tests
			tests+=(backup_tests)
			;;
		p)
			add_addr_ports_tests
			tests+=(add_addr_ports_tests)
			;;
		k)
			syncookies_tests
			tests+=(syncookies_tests)
			;;
		S)
			checksum_tests
			tests+=(checksum_tests)
			;;
		d)
			deny_join_id0_tests
			tests+=(deny_join_id0_tests)
			;;
		m)
			fullmesh_tests
			tests+=(fullmesh_tests)
			;;
		z)
			fastclose_tests
			tests+=(fastclose_tests)
			;;
		c)
			capture=1
			;;
		C)
			checksum=1
			;;
		i)
			ip_mptcp=1
			;;
		h)
			usage
@@ -2381,4 +2362,12 @@ while getopts 'fesltra64bpkdmchzCSi' opt; do
	esac
done

if [ ${#tests[@]} -eq 0 ]; then
	all_tests
else
	for subtests in "${tests[@]}"; do
		"${subtests}"
	done
fi

exit $ret