blob: bdcaa500ef1bd3f971cd98a7f6277e24d7af1c9a [file] [log] [blame]
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +00001#!/bin/sh
2
3# Check ioctl syscall decoding.
4
5. "${srcdir=.}/init.sh"
6
7check_prog grep
8
9./ioctl || {
10 if [ $? -eq 77 ]; then
11 framework_skip_ 'ioctl does not behave as expected'
12 else
13 fail_ 'ioctl failed'
14 fi
15}
16
17args="-e ioctl ./ioctl"
18$STRACE -o "$LOG" $args || {
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 ioctl '\(-1, TCGETS, 0x[0-9a-f]+\) += -1 EBADF .*'
34grep_log ioctl '\(-1, MMTIMER_GETRES, 0x[0-9a-f]+\) += -1 EBADF .*'
35grep_log ioctl '\(-1, HIDIOCGRDESCSIZE or HIDIOCGVERSION, 0x[0-9a-f]+\) += -1 EBADF .*'
36grep_log ioctl '\(-1, HIDIOCGPHYS\(8\), 0x[0-9a-f]+\) += -1 EBADF .*'
37grep_log ioctl '\(-1, EVIOCGBIT\(EV_KEY, 8\), 0x[0-9a-f]+\) += -1 EBADF .*'
38grep_log ioctl '\(-1, _IOC\(_IOC_READ, 0xde, 0xad, 0x08\), 0x[0-9a-f]+\) += -1 EBADF .*'
39
40exit 0