]> granicus.if.org Git - strace/blob - tests/uio.test
tests: fix uio building w/out preadv/pwritev
[strace] / tests / uio.test
1 #!/bin/sh
2
3 # Check how pread/pwrite and preadv/pwritev syscalls are traced.
4
5 . "${srcdir=.}/init.sh"
6
7 check_prog grep
8 check_prog rm
9
10 ./uio || {
11         if [ $? -eq 77 ]; then
12                 framework_skip_ 'preadv/pwritev syscalls are not available'
13         else
14                 fail_ 'uio failed'
15         fi
16 }
17
18 args="-edesc ./uio"
19 $STRACE $args > $LOG 2>&1 || {
20         cat $LOG
21         fail_ "$STRACE $args failed"
22 }
23
24 grep_log()
25 {
26         local syscall="$1"; shift
27
28         LC_ALL=C grep -E -x "$syscall$*" $LOG > /dev/null || {
29                 cat $LOG
30                 fail_ "$STRACE $args failed to trace \"$syscall\" properly"
31         }
32 }
33
34 grep_log 'pread(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
35 grep_log 'preadv' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'
36 grep_log 'pwrite(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
37 grep_log 'pwritev' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'
38
39 exit 0