@@ -19,6 +19,7 @@ check_invert=0
validate_checksum=0
init=0
+declare -A all_tests
TEST_COUNT=0
nr_blank=40
@@ -2380,27 +2381,6 @@ implicit_tests()
wait
}
-all_tests()
-{
- subflows_tests
- subflows_error_tests
- signal_address_tests
- link_failure_tests
- add_addr_timeout_tests
- remove_tests
- add_tests
- ipv6_tests
- v4mapped_tests
- backup_tests
- add_addr_ports_tests
- syncookies_tests
- checksum_tests
- deny_join_id0_tests
- fullmesh_tests
- fastclose_tests
- implicit_tests
-}
-
# [$1: error message]
usage()
{
@@ -2410,23 +2390,12 @@ usage()
fi
echo "mptcp_join usage:"
- echo " -f subflows_tests"
- echo " -e subflows_error_tests"
- echo " -s signal_address_tests"
- echo " -l link_failure_tests"
- echo " -t add_addr_timeout_tests"
- echo " -r remove_tests"
- echo " -a add_tests"
- echo " -6 ipv6_tests"
- echo " -4 v4mapped_tests"
- echo " -b backup_tests"
- echo " -p add_addr_ports_tests"
- echo " -k syncookies_tests"
- echo " -S checksum_tests"
- echo " -d deny_join_id0_tests"
- echo " -m fullmesh_tests"
- echo " -z fastclose_tests"
- echo " -I implicit_tests"
+
+ local key
+ for key in "${!all_tests[@]}"; do
+ echo " -${key} ${all_tests[${key}]}"
+ done
+
echo " -c capture pcap files"
echo " -C enable data checksum"
echo " -i use ip mptcp"
@@ -2436,59 +2405,43 @@ usage()
}
+# Use a "simple" array to force an specific order we cannot have with an associative one
+all_tests_sorted=(
+ f@subflows_tests
+ e@subflows_error_tests
+ s@signal_address_tests
+ l@link_failure_tests
+ t@add_addr_timeout_tests
+ r@remove_tests
+ a@add_tests
+ 6@ipv6_tests
+ 4@v4mapped_tests
+ b@backup_tests
+ p@add_addr_ports_tests
+ k@syncookies_tests
+ S@checksum_tests
+ d@deny_join_id0_tests
+ m@fullmesh_tests
+ z@fastclose_tests
+ I@implicit_tests
+)
+
+all_tests_args=""
+all_tests_names=()
+for subtests in "${all_tests_sorted[@]}"; do
+ key="${subtests%@*}"
+ value="${subtests#*@}"
+
+ all_tests_args+="${key}"
+ all_tests_names+=("${value}")
+ all_tests[${key}]="${value}"
+done
+
tests=()
-while getopts 'fesltra64bpkdmchzICSi' opt; do
+while getopts "${all_tests_args}cCih" opt; do
case $opt in
- f)
- tests+=(subflows_tests)
- ;;
- e)
- tests+=(subflows_error_tests)
- ;;
- s)
- tests+=(signal_address_tests)
- ;;
- l)
- tests+=(link_failure_tests)
- ;;
- t)
- tests+=(add_addr_timeout_tests)
- ;;
- r)
- tests+=(remove_tests)
- ;;
- a)
- tests+=(add_tests)
- ;;
- 6)
- tests+=(ipv6_tests)
- ;;
- 4)
- tests+=(v4mapped_tests)
- ;;
- b)
- tests+=(backup_tests)
- ;;
- p)
- tests+=(add_addr_ports_tests)
- ;;
- k)
- tests+=(syncookies_tests)
- ;;
- S)
- tests+=(checksum_tests)
- ;;
- d)
- tests+=(deny_join_id0_tests)
- ;;
- m)
- tests+=(fullmesh_tests)
- ;;
- z)
- tests+=(fastclose_tests)
- ;;
- I)
- tests+=(implicit_tests)
+ ["${all_tests_args}"])
+ tests+=("${all_tests[${opt}]}")
;;
c)
capture=1
@@ -2509,11 +2462,11 @@ while getopts 'fesltra64bpkdmchzICSi' opt; do
done
if [ ${#tests[@]} -eq 0 ]; then
- all_tests
-else
- for subtests in "${tests[@]}"; do
- "${subtests}"
- done
+ tests=("${all_tests_names[@]}")
fi
+for subtests in "${tests[@]}"; do
+ "${subtests}"
+done
+
exit $ret