xref: /aosp_15_r20/external/iproute2/testsuite/lib/generic.sh (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker
2*de1e4e89SAndroid Build Coastguard Workerexport DEST="127.0.0.1"
3*de1e4e89SAndroid Build Coastguard Worker
4*de1e4e89SAndroid Build Coastguard Workerts_log()
5*de1e4e89SAndroid Build Coastguard Worker{
6*de1e4e89SAndroid Build Coastguard Worker	echo "$@"
7*de1e4e89SAndroid Build Coastguard Worker}
8*de1e4e89SAndroid Build Coastguard Worker
9*de1e4e89SAndroid Build Coastguard Workerts_err()
10*de1e4e89SAndroid Build Coastguard Worker{
11*de1e4e89SAndroid Build Coastguard Worker	ts_log "$@" | tee >> $ERRF
12*de1e4e89SAndroid Build Coastguard Worker}
13*de1e4e89SAndroid Build Coastguard Worker
14*de1e4e89SAndroid Build Coastguard Workerts_cat()
15*de1e4e89SAndroid Build Coastguard Worker{
16*de1e4e89SAndroid Build Coastguard Worker	cat "$@"
17*de1e4e89SAndroid Build Coastguard Worker}
18*de1e4e89SAndroid Build Coastguard Worker
19*de1e4e89SAndroid Build Coastguard Workerts_err_cat()
20*de1e4e89SAndroid Build Coastguard Worker{
21*de1e4e89SAndroid Build Coastguard Worker	ts_cat "$@" | tee >> $ERRF
22*de1e4e89SAndroid Build Coastguard Worker}
23*de1e4e89SAndroid Build Coastguard Worker
24*de1e4e89SAndroid Build Coastguard Workerts_skip()
25*de1e4e89SAndroid Build Coastguard Worker{
26*de1e4e89SAndroid Build Coastguard Worker    exit 127
27*de1e4e89SAndroid Build Coastguard Worker}
28*de1e4e89SAndroid Build Coastguard Worker
29*de1e4e89SAndroid Build Coastguard Workerts_tc()
30*de1e4e89SAndroid Build Coastguard Worker{
31*de1e4e89SAndroid Build Coastguard Worker	SCRIPT=$1; shift
32*de1e4e89SAndroid Build Coastguard Worker	DESC=$1; shift
33*de1e4e89SAndroid Build Coastguard Worker
34*de1e4e89SAndroid Build Coastguard Worker	$TC $@ 2> $STD_ERR > $STD_OUT
35*de1e4e89SAndroid Build Coastguard Worker
36*de1e4e89SAndroid Build Coastguard Worker	if [ -s $STD_ERR ]; then
37*de1e4e89SAndroid Build Coastguard Worker		ts_err "${SCRIPT}: ${DESC} failed:"
38*de1e4e89SAndroid Build Coastguard Worker		ts_err "command: $TC $@"
39*de1e4e89SAndroid Build Coastguard Worker		ts_err "stderr output:"
40*de1e4e89SAndroid Build Coastguard Worker		ts_err_cat $STD_ERR
41*de1e4e89SAndroid Build Coastguard Worker		if [ -s $STD_OUT ]; then
42*de1e4e89SAndroid Build Coastguard Worker			ts_err "stdout output:"
43*de1e4e89SAndroid Build Coastguard Worker			ts_err_cat $STD_OUT
44*de1e4e89SAndroid Build Coastguard Worker		fi
45*de1e4e89SAndroid Build Coastguard Worker	elif [ -s $STD_OUT ]; then
46*de1e4e89SAndroid Build Coastguard Worker		echo "${SCRIPT}: ${DESC} succeeded with output:"
47*de1e4e89SAndroid Build Coastguard Worker		cat $STD_OUT
48*de1e4e89SAndroid Build Coastguard Worker	else
49*de1e4e89SAndroid Build Coastguard Worker		echo "${SCRIPT}: ${DESC} succeeded"
50*de1e4e89SAndroid Build Coastguard Worker	fi
51*de1e4e89SAndroid Build Coastguard Worker}
52*de1e4e89SAndroid Build Coastguard Worker
53*de1e4e89SAndroid Build Coastguard Workerts_ip()
54*de1e4e89SAndroid Build Coastguard Worker{
55*de1e4e89SAndroid Build Coastguard Worker	SCRIPT=$1; shift
56*de1e4e89SAndroid Build Coastguard Worker	DESC=$1; shift
57*de1e4e89SAndroid Build Coastguard Worker
58*de1e4e89SAndroid Build Coastguard Worker	$IP $@ 2> $STD_ERR > $STD_OUT
59*de1e4e89SAndroid Build Coastguard Worker        RET=$?
60*de1e4e89SAndroid Build Coastguard Worker
61*de1e4e89SAndroid Build Coastguard Worker	if [ -s $STD_ERR ] || [ "$RET" != "0" ]; then
62*de1e4e89SAndroid Build Coastguard Worker		ts_err "${SCRIPT}: ${DESC} failed:"
63*de1e4e89SAndroid Build Coastguard Worker		ts_err "command: $IP $@"
64*de1e4e89SAndroid Build Coastguard Worker		ts_err "stderr output:"
65*de1e4e89SAndroid Build Coastguard Worker		ts_err_cat $STD_ERR
66*de1e4e89SAndroid Build Coastguard Worker		if [ -s $STD_OUT ]; then
67*de1e4e89SAndroid Build Coastguard Worker			ts_err "stdout output:"
68*de1e4e89SAndroid Build Coastguard Worker			ts_err_cat $STD_OUT
69*de1e4e89SAndroid Build Coastguard Worker		fi
70*de1e4e89SAndroid Build Coastguard Worker	elif [ -s $STD_OUT ]; then
71*de1e4e89SAndroid Build Coastguard Worker		echo "${SCRIPT}: ${DESC} succeeded with output:"
72*de1e4e89SAndroid Build Coastguard Worker		cat $STD_OUT
73*de1e4e89SAndroid Build Coastguard Worker	else
74*de1e4e89SAndroid Build Coastguard Worker		echo "${SCRIPT}: ${DESC} succeeded"
75*de1e4e89SAndroid Build Coastguard Worker	fi
76*de1e4e89SAndroid Build Coastguard Worker}
77*de1e4e89SAndroid Build Coastguard Worker
78*de1e4e89SAndroid Build Coastguard Workerts_qdisc_available()
79*de1e4e89SAndroid Build Coastguard Worker{
80*de1e4e89SAndroid Build Coastguard Worker	HELPOUT=`$TC qdisc add $1 help 2>&1`
81*de1e4e89SAndroid Build Coastguard Worker	if [ "`echo $HELPOUT | grep \"^Unknown qdisc\"`" ]; then
82*de1e4e89SAndroid Build Coastguard Worker		return 0;
83*de1e4e89SAndroid Build Coastguard Worker	else
84*de1e4e89SAndroid Build Coastguard Worker		return 1;
85*de1e4e89SAndroid Build Coastguard Worker	fi
86*de1e4e89SAndroid Build Coastguard Worker}
87*de1e4e89SAndroid Build Coastguard Worker
88*de1e4e89SAndroid Build Coastguard Workerrand_dev()
89*de1e4e89SAndroid Build Coastguard Worker{
90*de1e4e89SAndroid Build Coastguard Worker    echo "dev-$(tr -dc "[:alpha:]" < /dev/urandom | head -c 6)"
91*de1e4e89SAndroid Build Coastguard Worker}
92*de1e4e89SAndroid Build Coastguard Worker
93*de1e4e89SAndroid Build Coastguard Workerpr_failed()
94*de1e4e89SAndroid Build Coastguard Worker{
95*de1e4e89SAndroid Build Coastguard Worker	echo " [FAILED]"
96*de1e4e89SAndroid Build Coastguard Worker	ts_err "matching failed"
97*de1e4e89SAndroid Build Coastguard Worker}
98*de1e4e89SAndroid Build Coastguard Worker
99*de1e4e89SAndroid Build Coastguard Workerpr_success()
100*de1e4e89SAndroid Build Coastguard Worker{
101*de1e4e89SAndroid Build Coastguard Worker	echo " [SUCCESS]"
102*de1e4e89SAndroid Build Coastguard Worker}
103*de1e4e89SAndroid Build Coastguard Worker
104*de1e4e89SAndroid Build Coastguard Workertest_on()
105*de1e4e89SAndroid Build Coastguard Worker{
106*de1e4e89SAndroid Build Coastguard Worker	echo -n "test on: \"$1\""
107*de1e4e89SAndroid Build Coastguard Worker	if cat "$STD_OUT" | grep -qE "$1"
108*de1e4e89SAndroid Build Coastguard Worker	then
109*de1e4e89SAndroid Build Coastguard Worker		pr_success
110*de1e4e89SAndroid Build Coastguard Worker	else
111*de1e4e89SAndroid Build Coastguard Worker		pr_failed
112*de1e4e89SAndroid Build Coastguard Worker	fi
113*de1e4e89SAndroid Build Coastguard Worker}
114*de1e4e89SAndroid Build Coastguard Worker
115*de1e4e89SAndroid Build Coastguard Workertest_on_not()
116*de1e4e89SAndroid Build Coastguard Worker{
117*de1e4e89SAndroid Build Coastguard Worker	echo -n "test on: \"$1\""
118*de1e4e89SAndroid Build Coastguard Worker	if cat "$STD_OUT" | grep -vqE "$1"
119*de1e4e89SAndroid Build Coastguard Worker	then
120*de1e4e89SAndroid Build Coastguard Worker		pr_success
121*de1e4e89SAndroid Build Coastguard Worker	else
122*de1e4e89SAndroid Build Coastguard Worker		pr_failed
123*de1e4e89SAndroid Build Coastguard Worker	fi
124*de1e4e89SAndroid Build Coastguard Worker}
125*de1e4e89SAndroid Build Coastguard Worker
126*de1e4e89SAndroid Build Coastguard Workertest_lines_count()
127*de1e4e89SAndroid Build Coastguard Worker{
128*de1e4e89SAndroid Build Coastguard Worker	echo -n "test on lines count ($1): "
129*de1e4e89SAndroid Build Coastguard Worker	if cat "$STD_OUT" | wc -l | grep -q "$1"
130*de1e4e89SAndroid Build Coastguard Worker	then
131*de1e4e89SAndroid Build Coastguard Worker		pr_success
132*de1e4e89SAndroid Build Coastguard Worker	else
133*de1e4e89SAndroid Build Coastguard Worker		pr_failed
134*de1e4e89SAndroid Build Coastguard Worker	fi
135*de1e4e89SAndroid Build Coastguard Worker}
136