. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -eacct -a21 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a 15 -e adjtimex $args > "$OUT"
match_grep "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=io_setup,io_submit,io_getevents,io_cancel,io_destroy
run_strace -a14 -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a10 -ealarm $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
kill -0 $$
run_prog ./attach-f-p > /dev/null 3>&1
-OUT="$LOG.out"
-EXP="$LOG.exp"
./set_ptracer_any sh -c "exec ./attach-f-p > $EXP 3> $OUT" > /dev/null &
tracee_pid=$!
run_prog ./attach-p-cmd-cmd > /dev/null
run_prog ./attach-p-cmd-p 1 > /dev/null
-OUT="$LOG.out"
./set_ptracer_any ./attach-p-cmd-p 1 > "$OUT" &
tracee_pid=$!
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ebpf $args > "$OUT"
match_grep "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a28 -echmod $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=clock_nanosleep,clock_gettime,setitimer
run_strace -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=clock_getres,clock_gettime,clock_settime
run_strace -a36 -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ecopy_file_range $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ecreat -a21 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -edup -a8 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -edup2 -a13 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -edup3 -a24 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a28 -eepoll_create1 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
check_prog grep
run_prog > /dev/null
-
-OUT="$LOG.out"
-EXP="$LOG.exp"
run_strace -veexecve $args > "$EXP"
# Filter out execve() call made by strace.
check_prog grep
run_prog > /dev/null
-
-OUT="$LOG.out"
-EXP="$LOG.exp"
run_strace -eexecve $args > "$EXP"
# Filter out execve() call made by strace.
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -veexecveat $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -eexecveat $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a16 -efchmod $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscall=${ME_%.test}
run_strace -a8 -e$syscall $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-
-OUT="$LOG.out"
run_strace -ename_to_handle_at,open_by_handle_at $args > "$OUT"
-
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -eflock -a19 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a26 -qq -f -echdir -esignal=none $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
syscall=${ME_%.test}
run_prog > /dev/null
-OUT="$LOG.out"
sample=$syscall.sample
> "$sample"
run_strace -ve$syscall -P$sample $args > "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a24 -eftruncate $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a36 -eftruncate64 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -egetcwd -a18 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
rm -rf -- "$LOG".dir
run_prog > /dev/null
-
-OUT="$LOG.out"
run_strace -a22 -vegetdents $args > "$OUT"
-
match_diff "$LOG" "$OUT"
rm -f "$OUT"
rm -rf -- "$LOG".dir
run_prog > /dev/null
-
-OUT="$LOG.out"
run_strace -a24 -vegetdents64 $args > "$OUT"
-
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e getrandom -xx -s3 -a32 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -v -egetrusage $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a10 -egetxpid,getxuid,getxgid $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-
-OUT="$LOG.out"
run_strace -erecvmsg $args > "$OUT"
-
match_diff "$LOG" "$OUT"
rm -f "$OUT"
#!/bin/sh
#
-# Copyright (c) 2011-2015 Dmitry V. Levin <ldv@altlinux.org>
+# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ME_="${0##*/}"
+LOG="$ME_.tmp"
+OUT="$LOG.out"
+EXP="$LOG.exp"
warn_() { printf >&2 '%s\n' "$*"; }
fail_() { warn_ "$ME_: failed test: $*"; exit 1; }
check_prog cat
check_prog rm
-LOG="$ME_.tmp"
rm -f "$LOG"
: "${STRACE:=../strace}"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
run_prog > /dev/null
run_strace -a16 -eioctl $args > "$EXP"
check_prog grep
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-
run_prog > /dev/null
run_strace -eipc $args > "$OUT"
match_grep "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
check_prog grep
run_prog > /dev/null
run_strace -e_llseek $args > "$EXP"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
check_prog grep
run_prog > /dev/null
run_strace -a30 -elseek $args > "$EXP"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a36 -emembarrier $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a22 -emincore $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -emknod -a29 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e mlock2 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
fi
syscall=$mmap,madvise,mlockall,mprotect,mremap,msync,munmap
-EXP="$LOG.exp"
-OUT="$LOG.out"
run_prog "./${ME_%.test}" $mmap > /dev/null
run_strace -a20 -e$syscall $args > "$EXP"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e trace=recvmmsg,sendmmsg -e read=0 -e write=1 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=nanosleep,setitimer
run_strace -a20 -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
addr="${ME_%.test}-local-stream"
run_prog "./${ME_%.test}" $addr > /dev/null
-OUT="$LOG.out"
-EXP="$LOG.exp"
run_strace -a20 -y -eclose,network $args > "$EXP"
# Filter out close() calls made by ld.so and libc.
sed -n '/socket/,$p' < "$LOG" > "$OUT"
addr="${ME_%.test}-local-stream"
run_prog "./${ME_%.test}" $addr > /dev/null
-OUT="$LOG.out"
-EXP="$LOG.exp"
run_strace -a22 -yy -eclose,network $args > "$EXP"
# Filter out close() calls made by ld.so and libc.
sed -n '/socket/,$p' < "$LOG" > "$OUT"
addr="${ME_%.test}-local-stream"
run_prog "./${ME_%.test}" $addr > /dev/null
-OUT="$LOG.out"
-EXP="$LOG.exp"
run_strace -a22 -yy -eclose,network $args > "$EXP"
# Filter out close() calls made by ld.so and libc.
sed -n '/socket/,$p' < "$LOG" > "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscall=${ME_%.test}
sample=$syscall.sample
run_strace -a30 -e$syscall -P$sample $args > "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscall=${ME_%.test}
sample=$syscall.sample
run_strace -e$syscall -P$sample $args > "$OUT"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
check_prog grep
run_prog grep chdir $srcdir/umovestr.expected > "$EXP"
run_prog ./umovestr
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a20 -epersonality $args > "$OUT"
match_grep "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a18 -vepoll $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e pselect6 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -rf -- "$LOG".dir
run_prog > /dev/null
-
-OUT="$LOG.out"
run_strace -a16 -ereaddir $args > "$OUT"
-
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
syscall=${ME_%.test}
-OUT="$LOG.out"
-
run_prog > /dev/null
run_strace -xx -e $syscall $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a16 -eread=0 -ewrite=1 -ereadv,writev $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -eread=0 -ewrite=1 -erecvmsg,sendmsg $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -erename -a35 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -erenameat $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=nanosleep,restart_syscall
run_strace -a20 -e trace=$syscalls $args > "$OUT"
match_grep "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a20 -ert_sigpending $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ert_sigprocmask $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ert_sigqueueinfo -esignal=none $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a20 -ert_sigsuspend -esignal=none $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a38 -ert_sigtimedwait $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ert_tgsigqueueinfo -esignal=none $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -esched_get_priority_min,sched_get_priority_max -a33 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a28 -esched_getaffinity,sched_setaffinity $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e sched_getattr,sched_setattr $args > "$OUT"
match_grep "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -esched_getparam,sched_setparam -a23 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -esched_getscheduler,sched_setscheduler -a22 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-
run_prog > /dev/null
run_strace -veprctl $args > "$OUT"
match_diff "$LOG" "$OUT"
run_prog > /dev/null
syscall=${ME_%.test}
-OUT="$LOG.out"
run_strace -a36 -e$syscall $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a24 -esendfile $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a24 -esendfile64 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -esplice $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
syscall=${ME_%.test}
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ve$syscall -P$syscall.sample $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a14 -esysinfo $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -esyslog -a36 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -etee $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a10 -etime $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e timer_create $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=timer_create,timer_settime,timer_gettime
run_strace -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=timerfd_create,timerfd_settime,timerfd_gettime
run_strace -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a12 -etimes $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -etimes -esignal=none $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -etruncate $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -etruncate64 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -eumask -a11 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
alpha) syscall=oldumount ;;
*) syscall=umount ;;
esac
-OUT="$LOG.out"
run_strace -a24 -s6 -e$syscall $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
alpha|ia64) syscall=umount ;;
*) syscall=umount2 ;;
esac
-OUT="$LOG.out"
run_strace -s7 -e$syscall $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
run_prog > /dev/null
run_strace -veexecve -s262144 $args > "$EXP"
check_prog sed
check_prog uniq
-OUT="$LOG.out"
-EXP="$LOG.exp"
-
run_prog > /dev/null
run_strace -v -euname $args > "$EXP"
uniq < "$LOG" > "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a38 -euserfaultfd $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
$STRACE -e utime -h > /dev/null ||
skip_ 'utime syscall is not supported on this architecture'
-OUT="$LOG.out"
run_prog > /dev/null
run_strace -a 16 -e utime $args > "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -e utimensat $args > "$OUT"
check_prog grep
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -ewrite=1 -evmsplice $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a24 -eget_robust_list,set_robust_list $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=setitimer,getitimer
run_strace -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -a11 -egetpgid,setpgid $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
run_strace -egetpriority,setpriority -a29 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-OUT="$LOG.out"
syscalls=gettimeofday,settimeofday
run_strace -a20 -e trace=$syscalls $args > "$OUT"
match_diff "$LOG" "$OUT"