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