blob: 0e8b31550cccc966588937ed44f81ff5800d039b [file] [log] [blame]
Dmitry V. Levincc3d5912014-04-16 23:28:29 +00001#!/bin/sh
2
3# Check how pread/pwrite and preadv/pwritev syscalls are traced.
4
5. "${srcdir=.}/init.sh"
6
7check_prog grep
Dmitry V. Levincc3d5912014-04-16 23:28:29 +00008
Mike Frysinger97ca0272014-08-11 02:52:08 -04009./uio || {
10 if [ $? -eq 77 ]; then
11 framework_skip_ 'preadv/pwritev syscalls are not available'
12 else
13 fail_ 'uio failed'
14 fi
15}
Dmitry V. Levincc3d5912014-04-16 23:28:29 +000016
17args="-edesc ./uio"
18$STRACE $args > $LOG 2>&1 || {
19 cat $LOG
20 fail_ "$STRACE $args failed"
21}
22
23grep_log()
24{
25 local syscall="$1"; shift
26
27 LC_ALL=C grep -E -x "$syscall$*" $LOG > /dev/null || {
28 cat $LOG
29 fail_ "$STRACE $args failed to trace \"$syscall\" properly"
30 }
31}
32
33grep_log 'pread(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
34grep_log 'preadv' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'
35grep_log 'pwrite(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
36grep_log 'pwritev' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'
37
38exit 0