On Mon, Nov 23, 2020 at 11:25:08AM -0500, Willem de Bruijn wrote:
From: Willem de Bruijn willemb@google.com
Kselftest expects processes to signal pass/fail/skip through exitcode.
C programs can include kselftest.h for readable definitions.
Add analogous kselftest.sh for shell tests. Extract the existing definitions from udpgso_bench.sh.
Tested: make TARGETS=net kselftest Link: https://patchwork.kernel.org/project/netdevbpf/patch/20201113231655.139948-4... Signed-off-by: Willem de Bruijn willemb@google.com
applies cleanly to netnext (f9e425e99b07) and kselftest (v5.10-rc1)
tools/testing/selftests/kselftest.sh | 52 +++++++++++++++++++++ tools/testing/selftests/net/udpgso_bench.sh | 42 +---------------- 2 files changed, 53 insertions(+), 41 deletions(-) create mode 100644 tools/testing/selftests/kselftest.sh
diff --git a/tools/testing/selftests/kselftest.sh b/tools/testing/selftests/kselftest.sh new file mode 100644 index 000000000000..c5a1cff57402 --- /dev/null +++ b/tools/testing/selftests/kselftest.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# +# kselftest shell test support library +# +# - Define pass/fail/skip exitcodes +# - Multiprocess support: aggregate child process results
+readonly KSFT_PASS=0 +readonly KSFT_FAIL=1 +readonly KSFT_SKIP=4
+readonly GREEN='\033[0;92m' +readonly YELLOW='\033[0;33m' +readonly RED='\033[0;31m' +readonly NC='\033[0m' # No Color
+num_pass=0 +num_err=0 +num_skip=0
+# Test child process exit code, add to aggregates. +kselftest_test_exitcode() {
- local -r exitcode=$1
- if [[ ${exitcode} -eq ${KSFT_PASS} ]]; then
num_pass=$(( $num_pass + 1 ))
- elif [[ ${exitcode} -eq ${KSFT_SKIP} ]]; then
num_skip=$(( $num_skip + 1 ))
- else
num_err=$(( $num_err + 1 ))
- fi
+}
+# Exit from main process. +kselftest_exit() {
- echo -e "$(basename $0): PASS=${num_pass} SKIP=${num_skip} FAIL=${num_err}"
- if [[ $num_err -ne 0 ]]; then
echo -e "$(basename $0): ${RED}FAIL${NC}"
exit ${KSFT_FAIL}
- fi
- if [[ $num_skip -ne 0 ]]; then
echo -e "$(basename $0): ${YELLOW}SKIP${NC}"
exit ${KSFT_SKIP}
- fi
- echo -e "$(basename $0): ${GREEN}PASS${NC}"
- exit ${KSFT_PASS}
+}
diff --git a/tools/testing/selftests/net/udpgso_bench.sh b/tools/testing/selftests/net/udpgso_bench.sh index 80b5d352702e..c1f9affe6cf0 100755 --- a/tools/testing/selftests/net/udpgso_bench.sh +++ b/tools/testing/selftests/net/udpgso_bench.sh @@ -3,47 +3,7 @@ # # Run a series of udpgso benchmarks
-readonly GREEN='\033[0;92m' -readonly YELLOW='\033[0;33m' -readonly RED='\033[0;31m' -readonly NC='\033[0m' # No Color
-readonly KSFT_PASS=0 -readonly KSFT_FAIL=1 -readonly KSFT_SKIP=4
-num_pass=0 -num_err=0 -num_skip=0
-kselftest_test_exitcode() {
- local -r exitcode=$1
- if [[ ${exitcode} -eq ${KSFT_PASS} ]]; then
num_pass=$(( $num_pass + 1 ))
- elif [[ ${exitcode} -eq ${KSFT_SKIP} ]]; then
num_skip=$(( $num_skip + 1 ))
- else
num_err=$(( $num_err + 1 ))
- fi
-}
-kselftest_exit() {
- echo -e "$(basename $0): PASS=${num_pass} SKIP=${num_skip} FAIL=${num_err}"
- if [[ $num_err -ne 0 ]]; then
echo -e "$(basename $0): ${RED}FAIL${NC}"
exit ${KSFT_FAIL}
- fi
- if [[ $num_skip -ne 0 ]]; then
echo -e "$(basename $0): ${YELLOW}SKIP${NC}"
exit ${KSFT_SKIP}
- fi
- echo -e "$(basename $0): ${GREEN}PASS${NC}"
- exit ${KSFT_PASS}
-} +source "$(dirname $0)/../kselftest.sh"
wake_children() { local -r jobs="$(jobs -p)" -- 2.29.2.454.gaff20da3a2-goog
Reviewed-by: Antonio Cardace acardace@redhat