Merge 6.4-rc5 into usb-next
[platform/kernel/linux-starfive.git] / tools / testing / selftests / net / mptcp / mptcp_lib.sh
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 readonly KSFT_FAIL=1
5 readonly KSFT_SKIP=4
6
7 # SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var can be set when validating all
8 # features using the last version of the kernel and the selftests to make sure
9 # a test is not being skipped by mistake.
10 mptcp_lib_expect_all_features() {
11         [ "${SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES:-}" = "1" ]
12 }
13
14 # $1: msg
15 mptcp_lib_fail_if_expected_feature() {
16         if mptcp_lib_expect_all_features; then
17                 echo "ERROR: missing feature: ${*}"
18                 exit ${KSFT_FAIL}
19         fi
20
21         return 1
22 }
23
24 # $1: file
25 mptcp_lib_has_file() {
26         local f="${1}"
27
28         if [ -f "${f}" ]; then
29                 return 0
30         fi
31
32         mptcp_lib_fail_if_expected_feature "${f} file not found"
33 }
34
35 mptcp_lib_check_mptcp() {
36         if ! mptcp_lib_has_file "/proc/sys/net/mptcp/enabled"; then
37                 echo "SKIP: MPTCP support is not available"
38                 exit ${KSFT_SKIP}
39         fi
40 }