1cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin#!/bin/sh 2cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 3cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin# Check how pread/pwrite and preadv/pwritev syscalls are traced. 4cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 5cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin. "${srcdir=.}/init.sh" 6cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 7cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levincheck_prog grep 8cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levincheck_prog rm 9cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 10cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin./uio || 11cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin fail_ 'uio failed' 12cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 13cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levinargs="-edesc ./uio" 14cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin$STRACE $args > $LOG 2>&1 || { 15cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin cat $LOG 16cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin fail_ "$STRACE $args failed" 17cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin} 18cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 19cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levingrep_log() 20cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin{ 21cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin local syscall="$1"; shift 22cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 23cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin LC_ALL=C grep -E -x "$syscall$*" $LOG > /dev/null || { 24cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin cat $LOG 25cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin fail_ "$STRACE $args failed to trace \"$syscall\" properly" 26cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin } 27cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin} 28cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 29cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levingrep_log 'pread(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4' 30cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levingrep_log 'preadv' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4' 31cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levingrep_log 'pwrite(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4' 32cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levingrep_log 'pwritev' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4' 33cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levin 34cc3d59199d80588a53ee353da5d69726bd093c51Dmitry V. Levinexit 0 35