xref: /aosp_15_r20/external/strace/tests-m32/strace-S.test (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh
2*cf84ac9aSAndroid Build Coastguard Worker
3*cf84ac9aSAndroid Build Coastguard Worker# Check -S option.
4*cf84ac9aSAndroid Build Coastguard Worker
5*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/init.sh"
6*cf84ac9aSAndroid Build Coastguard Worker
7*cf84ac9aSAndroid Build Coastguard Workerrun_prog ../readv > /dev/null
8*cf84ac9aSAndroid Build Coastguard Worker
9*cf84ac9aSAndroid Build Coastguard Workertest_c()
10*cf84ac9aSAndroid Build Coastguard Worker{
11*cf84ac9aSAndroid Build Coastguard Worker	local sortby sortopts sedexpr
12*cf84ac9aSAndroid Build Coastguard Worker	sortby="$1"; shift
13*cf84ac9aSAndroid Build Coastguard Worker	sortopts="$1"; shift
14*cf84ac9aSAndroid Build Coastguard Worker	sedexpr="$1"; shift
15*cf84ac9aSAndroid Build Coastguard Worker
16*cf84ac9aSAndroid Build Coastguard Worker	run_strace -c -w -S "$sortby" ../readv > /dev/null
17*cf84ac9aSAndroid Build Coastguard Worker	sed -r -n -e "$sedexpr" < "$LOG" > "$OUT"
18*cf84ac9aSAndroid Build Coastguard Worker
19*cf84ac9aSAndroid Build Coastguard Worker	[ -s "$OUT" ] ||
20*cf84ac9aSAndroid Build Coastguard Worker		fail_ "$STRACE $args output mismatch"
21*cf84ac9aSAndroid Build Coastguard Worker	LC_ALL=C sort -c $sortopts "$OUT" || {
22*cf84ac9aSAndroid Build Coastguard Worker		echo 'Actual output:'
23*cf84ac9aSAndroid Build Coastguard Worker		cat < "$LOG"
24*cf84ac9aSAndroid Build Coastguard Worker		fail_ "$STRACE $args output not sorted properly"
25*cf84ac9aSAndroid Build Coastguard Worker	}
26*cf84ac9aSAndroid Build Coastguard Worker}
27*cf84ac9aSAndroid Build Coastguard Worker
28*cf84ac9aSAndroid Build Coastguard Workerc='[[:space:]]+([^[:space:]]+)'
29*cf84ac9aSAndroid Build Coastguard Workertest_c calls '-n -r' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p'
30*cf84ac9aSAndroid Build Coastguard Workertest_c name '' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p'
31