16781111857017f0587d41001ba50a0db0d6d4a5eFei Jie#!/bin/sh 26781111857017f0587d41001ba50a0db0d6d4a5eFei Jie 36781111857017f0587d41001ba50a0db0d6d4a5eFei Jie# Check -S option. 46781111857017f0587d41001ba50a0db0d6d4a5eFei Jie 56781111857017f0587d41001ba50a0db0d6d4a5eFei Jie. "${srcdir=.}/init.sh" 66781111857017f0587d41001ba50a0db0d6d4a5eFei Jie 7f56323f1ccd78207a75afa62369f7306d06051c1Dmitry V. Levinrun_prog ./readv > /dev/null 8804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin 9804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levintest_c() 10804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin{ 11804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin local sortby sortopts sedexpr 12804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin sortby="$1"; shift 13804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin sortopts="$1"; shift 14804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin sedexpr="$1"; shift 15804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin 16f56323f1ccd78207a75afa62369f7306d06051c1Dmitry V. Levin run_strace -c -w -S "$sortby" ./readv > /dev/null 17469fd109cdbd04215ce4efcd13b13485d1fb3ba5Dmitry V. Levin sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" 18804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin 19804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin [ -s "$OUT" ] || 20804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin fail_ "$STRACE $args output mismatch" 2153128b67461b9c0bc22cc4918c010ec918aead23Dmitry V. Levin LC_ALL=C sort -c $sortopts "$OUT" || { 2253128b67461b9c0bc22cc4918c010ec918aead23Dmitry V. Levin echo 'Actual output:' 2353128b67461b9c0bc22cc4918c010ec918aead23Dmitry V. Levin cat < "$LOG" 24804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin fail_ "$STRACE $args output not sorted properly" 2553128b67461b9c0bc22cc4918c010ec918aead23Dmitry V. Levin } 26804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin} 27804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin 28469fd109cdbd04215ce4efcd13b13485d1fb3ba5Dmitry V. Levinc='[[:space:]]+([^[:space:]]+)' 29469fd109cdbd04215ce4efcd13b13485d1fb3ba5Dmitry V. Levintest_c calls '-n -r' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' 30469fd109cdbd04215ce4efcd13b13485d1fb3ba5Dmitry V. Levintest_c name '' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' 31804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levin 32804bb8797b93b561ececd39c8f19b6c40834395eDmitry V. Levinrm -f "$OUT" 33