diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 194c4420220e..8dc50b480152 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -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