brintos

brintos / linux-shallow public Read only

0
0
Text · 3.6 KiB · ff2accc Raw
209 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# This tests the operation of lib.sh itself.5 6ALL_TESTS="7	test_ret8	test_exit_status9"10NUM_NETIFS=011source lib.sh12 13# Simulated checks.14 15do_test()16{17	local msg=$1; shift18 19	"$@"20	check_err $? "$msg"21}22 23tpass()24{25	do_test "tpass" true26}27 28tfail()29{30	do_test "tfail" false31}32 33txfail()34{35	FAIL_TO_XFAIL=yes do_test "txfail" false36}37 38# Simulated tests.39 40pass()41{42	RET=043	do_test "true" true44	log_test "true"45}46 47fail()48{49	RET=050	do_test "false" false51	log_test "false"52}53 54xfail()55{56	RET=057	FAIL_TO_XFAIL=yes do_test "xfalse" false58	log_test "xfalse"59}60 61skip()62{63	RET=064	log_test_skip "skip"65}66 67slow_xfail()68{69	RET=070	xfail_on_slow do_test "slow_false" false71	log_test "slow_false"72}73 74# lib.sh tests.75 76ret_tests_run()77{78	local t79 80	RET=081	retmsg=82	for t in "$@"; do83		$t84	done85	echo "$retmsg"86	return $RET87}88 89ret_subtest()90{91	local expect_ret=$1; shift92	local expect_retmsg=$1; shift93	local -a tests=( "$@" )94 95	local status_names=(pass fail xfail xpass skip)96	local ret97	local out98 99	RET=0100 101	# Run this in a subshell, so that our environment is intact.102	out=$(ret_tests_run "${tests[@]}")103	ret=$?104 105	(( ret == expect_ret ))106	check_err $? "RET=$ret expected $expect_ret"107 108	[[ $out == $expect_retmsg ]]109	check_err $? "retmsg=$out expected $expect_retmsg"110 111	log_test "RET $(echo ${tests[@]}) -> ${status_names[$ret]}"112}113 114test_ret()115{116	ret_subtest $ksft_pass ""117 118	ret_subtest $ksft_pass "" tpass119	ret_subtest $ksft_fail "tfail" tfail120	ret_subtest $ksft_xfail "txfail" txfail121 122	ret_subtest $ksft_pass "" tpass tpass123	ret_subtest $ksft_fail "tfail" tpass tfail124	ret_subtest $ksft_xfail "txfail" tpass txfail125 126	ret_subtest $ksft_fail "tfail" tfail tpass127	ret_subtest $ksft_xfail "txfail" txfail tpass128 129	ret_subtest $ksft_fail "tfail" tfail tfail130	ret_subtest $ksft_fail "tfail" tfail txfail131 132	ret_subtest $ksft_fail "tfail" txfail tfail133 134	ret_subtest $ksft_xfail "txfail" txfail txfail135}136 137exit_status_tests_run()138{139	EXIT_STATUS=0140	tests_run > /dev/null141	return $EXIT_STATUS142}143 144exit_status_subtest()145{146	local expect_exit_status=$1; shift147	local tests=$1; shift148	local what=$1; shift149 150	local status_names=(pass fail xfail xpass skip)151	local exit_status152	local out153 154	RET=0155 156	# Run this in a subshell, so that our environment is intact.157	out=$(TESTS="$tests" exit_status_tests_run)158	exit_status=$?159 160	(( exit_status == expect_exit_status ))161	check_err $? "EXIT_STATUS=$exit_status, expected $expect_exit_status"162 163	log_test "EXIT_STATUS $tests$what -> ${status_names[$exit_status]}"164}165 166test_exit_status()167{168	exit_status_subtest $ksft_pass ":"169 170	exit_status_subtest $ksft_pass "pass"171	exit_status_subtest $ksft_fail "fail"172	exit_status_subtest $ksft_pass "xfail"173	exit_status_subtest $ksft_skip "skip"174 175	exit_status_subtest $ksft_pass "pass pass"176	exit_status_subtest $ksft_fail "pass fail"177	exit_status_subtest $ksft_pass "pass xfail"178	exit_status_subtest $ksft_skip "pass skip"179 180	exit_status_subtest $ksft_fail "fail pass"181	exit_status_subtest $ksft_pass "xfail pass"182	exit_status_subtest $ksft_skip "skip pass"183 184	exit_status_subtest $ksft_fail "fail fail"185	exit_status_subtest $ksft_fail "fail xfail"186	exit_status_subtest $ksft_fail "fail skip"187 188	exit_status_subtest $ksft_fail "xfail fail"189	exit_status_subtest $ksft_fail "skip fail"190 191	exit_status_subtest $ksft_pass "xfail xfail"192	exit_status_subtest $ksft_skip "xfail skip"193	exit_status_subtest $ksft_skip "skip xfail"194 195	exit_status_subtest $ksft_skip "skip skip"196 197	KSFT_MACHINE_SLOW=yes \198		exit_status_subtest $ksft_pass "slow_xfail" ": slow"199 200	KSFT_MACHINE_SLOW=no \201		exit_status_subtest $ksft_fail "slow_xfail" ": fast"202}203 204trap pre_cleanup EXIT205 206tests_run207 208exit $EXIT_STATUS209