summaryrefslogtreecommitdiff
path: root/tests/uio.test
blob: 25f82cb8d047eec6df9149d1ce893b5e134751b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

# Check how pread/pwrite and preadv/pwritev syscalls are traced.

. "${srcdir=.}/init.sh"

check_prog grep
check_prog rm

./uio ||
	fail_ 'uio failed'

args="-edesc ./uio"
$STRACE $args > $LOG 2>&1 || {
	cat $LOG
	fail_ "$STRACE $args failed"
}

grep_log()
{
	local syscall="$1"; shift

	LC_ALL=C grep -E -x "$syscall$*" $LOG > /dev/null || {
		cat $LOG
		fail_ "$STRACE $args failed to trace \"$syscall\" properly"
	}
}

grep_log 'pread(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
grep_log 'preadv' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'
grep_log 'pwrite(64)?' '\(3, "\\0\\0\\0\\0", 4, 1004211379570065135\) += 4'
grep_log 'pwritev' '\(3, \[{"\\0\\0\\0\\0", 4}\], 1, 1004211379570065135\) += 4'

exit 0