tests: tabulate stereotypical test scripts

Convert test scripts that follow simple testing patterns to a table.
Generate all these scripts from gen_tests.in file using gen_tests.sh
script at bootstrap time.

The largest set of test scripts has been converted using
the following command:

grep -l ^run_strace_match_diff *.test |while read f; do
	n="${f%.test}"
	grep '^[^#]' "$f" |
	grep -Evq '^(\. "\${srcdir=\.}/init\.sh"|run_strace_match_diff)' ||
	sed -n 's/^run_strace_match_diff\(.*\)/'$n'\1/p' "$f"
done

The second largest set of test scripts has been converted using
the following command:

grep -l srcdir= *.test |while read f; do
	n="${f%.test}"
	grep '^[^#]' "$f" |
	grep -Fvq srcdir= ||
	sed -n 's/^. "\${srcdir=.}\/\([^"]\+\)".*/'$n'\t+\1/p' "$f"
done

* tests/gen_tests.in: New file.
* tests/gen_tests.sh: New file.
* bootstrap: Invoke it.
* tests/.gitignore: Add *.gen.test and gen_tests.am.
* tests/_newselect.test: Remove.
* tests/accept.test: Ditto.
* tests/accept4.test: Ditto.
* tests/access.test: Ditto.
* tests/acct.test: Ditto.
* tests/add_key.test: Ditto.
* tests/adjtimex.test: Ditto.
* tests/aio.test: Ditto.
* tests/alarm.test: Ditto.
* tests/bpf.test: Ditto.
* tests/btrfs.test: Ditto.
* tests/chmod.test: Ditto.
* tests/chown.test: Ditto.
* tests/chown32.test: Ditto.
* tests/chroot.test: Ditto.
* tests/clock_adjtime.test: Ditto.
* tests/clock_nanosleep.test: Ditto.
* tests/clock_xettime.test: Ditto.
* tests/copy_file_range.test: Ditto.
* tests/creat.test: Ditto.
* tests/delete_module.test: Ditto.
* tests/dup.test: Ditto.
* tests/dup2.test: Ditto.
* tests/dup3.test: Ditto.
* tests/epoll_create.test: Ditto.
* tests/epoll_create1.test: Ditto.
* tests/epoll_ctl.test: Ditto.
* tests/epoll_pwait.test: Ditto.
* tests/epoll_wait.test: Ditto.
* tests/erestartsys.test: Ditto.
* tests/execveat-v.test: Ditto.
* tests/execveat.test: Ditto.
* tests/faccessat.test: Ditto.
* tests/fadvise64_64.test: Ditto.
* tests/fallocate.test: Ditto.
* tests/fanotify_init.test: Ditto.
* tests/fanotify_mark.test: Ditto.
* tests/fchdir.test: Ditto.
* tests/fchmod.test: Ditto.
* tests/fchmodat.test: Ditto.
* tests/fchown.test: Ditto.
* tests/fchown32.test: Ditto.
* tests/fchownat.test: Ditto.
* tests/fcntl.test: Ditto.
* tests/fcntl64.test: Ditto.
* tests/fdatasync.test: Ditto.
* tests/file_handle.test: Ditto.
* tests/file_ioctl.test: Ditto.
* tests/finit_module.test: Ditto.
* tests/flock.test: Ditto.
* tests/fork-f.test: Ditto.
* tests/fstat64.test: Ditto.
* tests/fstatat64.test: Ditto.
* tests/fstatfs.test: Ditto.
* tests/fstatfs64.test: Ditto.
* tests/fsync.test: Ditto.
* tests/ftruncate.test: Ditto.
* tests/ftruncate64.test: Ditto.
* tests/futimesat.test: Ditto.
* tests/get_mempolicy.test: Ditto.
* tests/getcpu.test: Ditto.
* tests/getcwd.test: Ditto.
* tests/getdents.test: Ditto.
* tests/getdents64.test: Ditto.
* tests/getegid.test: Ditto.
* tests/getegid32.test: Ditto.
* tests/geteuid.test: Ditto.
* tests/geteuid32.test: Ditto.
* tests/getgid.test: Ditto.
* tests/getgid32.test: Ditto.
* tests/getgroups.test: Ditto.
* tests/getgroups32.test: Ditto.
* tests/getpeername.test: Ditto.
* tests/getpgrp.test: Ditto.
* tests/getrandom.test: Ditto.
* tests/getresgid.test: Ditto.
* tests/getresgid32.test: Ditto.
* tests/getresuid.test: Ditto.
* tests/getresuid32.test: Ditto.
* tests/getrlimit.test: Ditto.
* tests/getrusage.test: Ditto.
* tests/getsid.test: Ditto.
* tests/getsockname.test: Ditto.
* tests/getuid32.test: Ditto.
* tests/getxxid.test: Ditto.
* tests/inet-cmsg.test: Ditto.
* tests/init_module.test: Ditto.
* tests/inotify.test: Ditto.
* tests/inotify_init1.test: Ditto.
* tests/int_0x80.test: Ditto.
* tests/ioctl_block.test: Ditto.
* tests/ioctl_evdev.test: Ditto.
* tests/ioctl_loop.test: Ditto.
* tests/ioctl_mtd.test: Ditto.
* tests/ioctl_rtc.test: Ditto.
* tests/ioctl_scsi.test: Ditto.
* tests/ioctl_sg_io_v3.test: Ditto.
* tests/ioctl_sg_io_v4.test: Ditto.
* tests/ioctl_uffdio.test: Ditto.
* tests/ioctl_v4l2.test: Ditto.
* tests/ioperm.test: Ditto.
* tests/iopl.test: Ditto.
* tests/ioprio.test: Ditto.
* tests/ip_mreq.test: Ditto.
* tests/ipc.test: Ditto.
* tests/ipc_msg.test: Ditto.
* tests/ipc_sem.test: Ditto.
* tests/ipc_shm.test: Ditto.
* tests/kcmp.test: Ditto.
* tests/kexec_file_load.test: Ditto.
* tests/kexec_load.test: Ditto.
* tests/keyctl.test: Ditto.
* tests/kill.test: Ditto.
* tests/lchown.test: Ditto.
* tests/lchown32.test: Ditto.
* tests/link.test: Ditto.
* tests/linkat.test: Ditto.
* tests/lookup_dcookie.test: Ditto.
* tests/lstat.test: Ditto.
* tests/lstat64.test: Ditto.
* tests/mbind.test: Ditto.
* tests/membarrier.test: Ditto.
* tests/memfd_create.test: Ditto.
* tests/migrate_pages.test: Ditto.
* tests/mincore.test: Ditto.
* tests/mkdir.test: Ditto.
* tests/mkdirat.test: Ditto.
* tests/mknod.test: Ditto.
* tests/mknodat.test: Ditto.
* tests/mlock.test: Ditto.
* tests/mlock2.test: Ditto.
* tests/mlockall.test: Ditto.
* tests/mmap64.test: Ditto.
* tests/mmsg-silent.test: Ditto.
* tests/mmsg.test: Ditto.
* tests/mmsg_name-v.test: Ditto.
* tests/mmsg_name.test: Ditto.
* tests/mount.test: Ditto.
* tests/move_pages.test: Ditto.
* tests/mq.test: Ditto.
* tests/mq_sendrecv-read.test: Ditto.
* tests/mq_sendrecv-write.test: Ditto.
* tests/mq_sendrecv.test: Ditto.
* tests/msg_control-v.test: Ditto.
* tests/msg_control.test: Ditto.
* tests/msg_name.test: Ditto.
* tests/munlockall.test: Ditto.
* tests/nanosleep.test: Ditto.
* tests/net-icmp_filter.test: Ditto.
* tests/net-sockaddr.test: Ditto.
* tests/newfstatat.test: Ditto.
* tests/old_mmap.test: Ditto.
* tests/oldfstat.test: Ditto.
* tests/oldlstat.test: Ditto.
* tests/oldstat.test: Ditto.
* tests/open.test: Ditto.
* tests/openat.test: Ditto.
* tests/pause.test: Ditto.
* tests/perf_event_open.test: Ditto.
* tests/perf_event_open_nonverbose.test: Ditto.
* tests/perf_event_open_unabbrev.test: Ditto.
* tests/pipe2.test: Ditto.
* tests/pkey_alloc.test: Ditto.
* tests/pkey_free.test: Ditto.
* tests/pkey_mprotect.test: Ditto.
* tests/ppoll-v.test: Ditto.
* tests/ppoll.test: Ditto.
* tests/preadv-pwritev.test: Ditto.
* tests/preadv.test: Ditto.
* tests/preadv2-pwritev2.test: Ditto.
* tests/printstr.test: Ditto.
* tests/prlimit64.test: Ditto.
* tests/process_vm_readv.test: Ditto.
* tests/process_vm_writev.test: Ditto.
* tests/pselect6.test: Ditto.
* tests/ptrace.test: Ditto.
* tests/pwritev.test: Ditto.
* tests/quotactl-v.test: Ditto.
* tests/quotactl-xfs-v.test: Ditto.
* tests/quotactl-xfs.test: Ditto.
* tests/quotactl.test: Ditto.
* tests/readahead.test: Ditto.
* tests/readdir.test: Ditto.
* tests/readlink.test: Ditto.
* tests/readlinkat.test: Ditto.
* tests/reboot.test: Ditto.
* tests/recvfrom.test: Ditto.
* tests/recvmmsg-timeout.test: Ditto.
* tests/recvmsg.test: Ditto.
* tests/remap_file_pages.test: Ditto.
* tests/rename.test: Ditto.
* tests/renameat.test: Ditto.
* tests/renameat2.test: Ditto.
* tests/request_key.test: Ditto.
* tests/rmdir.test: Ditto.
* tests/rt_sigpending.test: Ditto.
* tests/rt_sigprocmask.test: Ditto.
* tests/rt_sigqueueinfo.test: Ditto.
* tests/rt_sigreturn.test: Ditto.
* tests/rt_sigsuspend.test: Ditto.
* tests/rt_sigtimedwait.test: Ditto.
* tests/rt_tgsigqueueinfo.test: Ditto.
* tests/sched_get_priority_mxx.test: Ditto.
* tests/sched_rr_get_interval.test: Ditto.
* tests/sched_xetaffinity.test: Ditto.
* tests/sched_xetattr.test: Ditto.
* tests/sched_xetparam.test: Ditto.
* tests/sched_xetscheduler.test: Ditto.
* tests/sched_yield.test: Ditto.
* tests/seccomp-filter-v.test: Ditto.
* tests/seccomp-filter.test: Ditto.
* tests/select.test: Ditto.
* tests/semop.test: Ditto.
* tests/sendfile.test: Ditto.
* tests/sendfile64.test: Ditto.
* tests/set_mempolicy.test: Ditto.
* tests/setdomainname.test: Ditto.
* tests/setfsgid.test: Ditto.
* tests/setfsgid32.test: Ditto.
* tests/setfsuid.test: Ditto.
* tests/setfsuid32.test: Ditto.
* tests/setgid.test: Ditto.
* tests/setgid32.test: Ditto.
* tests/setgroups.test: Ditto.
* tests/setgroups32.test: Ditto.
* tests/sethostname.test: Ditto.
* tests/setns.test: Ditto.
* tests/setregid.test: Ditto.
* tests/setregid32.test: Ditto.
* tests/setresgid.test: Ditto.
* tests/setresgid32.test: Ditto.
* tests/setresuid.test: Ditto.
* tests/setresuid32.test: Ditto.
* tests/setreuid.test: Ditto.
* tests/setreuid32.test: Ditto.
* tests/setrlimit.test: Ditto.
* tests/setuid.test: Ditto.
* tests/setuid32.test: Ditto.
* tests/shutdown.test: Ditto.
* tests/siginfo.test: Ditto.
* tests/signal_receive.test: Ditto.
* tests/signalfd4.test: Ditto.
* tests/sigreturn.test: Ditto.
* tests/socketcall.test: Ditto.
* tests/splice.test: Ditto.
* tests/stat.test: Ditto.
* tests/stat64.test: Ditto.
* tests/statfs64.test: Ditto.
* tests/statx.sh: Ditto.
* tests/statx.test: Ditto.
* tests/swap.test: Ditto.
* tests/symlink.test: Ditto.
* tests/symlinkat.test: Ditto.
* tests/sync.test: Ditto.
* tests/sync_file_range.test: Ditto.
* tests/sync_file_range2.test: Ditto.
* tests/sysinfo.test: Ditto.
* tests/syslog.test: Ditto.
* tests/tee.test: Ditto.
* tests/time.test: Ditto.
* tests/timer_create.test: Ditto.
* tests/timer_xettime.test: Ditto.
* tests/timerfd_xettime.test: Ditto.
* tests/times-fail.test: Ditto.
* tests/times.test: Ditto.
* tests/truncate.test: Ditto.
* tests/truncate64.test: Ditto.
* tests/ugetrlimit.test: Ditto.
* tests/umask.test: Ditto.
* tests/umoven-illptr.test: Ditto.
* tests/umovestr-illptr.test: Ditto.
* tests/umovestr3.test: Ditto.
* tests/unlink.test: Ditto.
* tests/unlinkat.test: Ditto.
* tests/unshare.test: Ditto.
* tests/userfaultfd.test: Ditto.
* tests/ustat.test: Ditto.
* tests/utime.test: Ditto.
* tests/utimes.test: Ditto.
* tests/vfork-f.test: Ditto.
* tests/vhangup.test: Ditto.
* tests/vmsplice.test: Ditto.
* tests/wait4-v.test: Ditto.
* tests/wait4.test: Ditto.
* tests/waitid-v.test: Ditto.
* tests/waitid.test: Ditto.
* tests/waitpid.test: Ditto.
* tests/xattr-strings.test: Ditto.
* tests/xet_robust_list.test: Ditto.
* tests/xetitimer.test: Ditto.
* tests/xetpgid.test: Ditto.
* tests/xetpriority.test: Ditto.
* tests/xettimeofday.test: Ditto.
* tests/Makefile.am (DECODER_TESTS, MISC_TESTS): Remove them.
Include gen_tests.am.
(TESTS): Add $(GEN_TESTS).
(XFAIL_TESTS_x86_64, XFAIL_TESTS_x32): Rename int_0x80.test
to int_0x80.gen.test.
(EXTRA_DIST): Add gen_tests.in and gen_tests.sh, remove statx.sh.
(clean-local-check): Remove $(GEN_TESTS:.gen.test=.dir).
This commit is contained in:
Дмитрий Левин 2017-04-05 00:37:54 +00:00
parent 713b138218
commit 0527093a7c
298 changed files with 432 additions and 2030 deletions

View File

@ -1,5 +1,9 @@
#!/bin/sh -eu
./generate_mpers_am.sh
./xlat/gen.sh
./tests/gen_tests.sh
for m in m32 mx32; do
tests=tests-$m
rm -rf $tests
@ -17,7 +21,4 @@ for m in m32 mx32; do
done
done
./generate_mpers_am.sh
./xlat/gen.sh
exec autoreconf -f -i "$@"

2
tests/.gitignore vendored
View File

@ -1,4 +1,5 @@
*.dir
*.gen.test
*.log
*.o
*.trs
@ -77,6 +78,7 @@ ftruncate
ftruncate64
futex
futimesat
gen_tests.am
get_mempolicy
getcpu
getcwd

View File

@ -477,6 +477,8 @@ uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
stack_fcall_SOURCES = stack-fcall.c \
stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
include gen_tests.am
if USE_LIBUNWIND
LIBUNWIND_TESTS = strace-k.test
else
@ -484,207 +486,42 @@ LIBUNWIND_TESTS =
endif
DECODER_TESTS = \
_newselect.test \
accept.test \
accept4.test \
access.test \
acct.test \
add_key.test \
adjtimex.test \
aio.test \
alarm.test \
bpf.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
btrfs-w.test \
btrfs.test \
caps-abbrev.test \
caps.test \
chmod.test \
chown.test \
chown32.test \
chroot.test \
clock_adjtime.test \
clock_nanosleep.test \
clock_xettime.test \
copy_file_range.test \
creat.test \
delete_module.test \
dup.test \
dup2.test \
dup3.test \
epoll_create.test \
epoll_create1.test \
epoll_ctl.test \
epoll_pwait.test \
epoll_wait.test \
erestartsys.test \
eventfd.test \
execve-v.test \
execve.test \
execveat-v.test \
execveat.test \
faccessat.test \
fadvise64.test \
fadvise64_64.test \
fallocate.test \
fanotify_init.test \
fanotify_mark.test \
fchdir.test \
fchmod.test \
fchmodat.test \
fchown.test \
fchown32.test \
fchownat.test \
fcntl.test \
fcntl64.test \
fdatasync.test \
file_handle.test \
file_ioctl.test \
finit_module.test \
flock.test \
fstat.test \
fstat64.test \
fstatat64.test \
fstatfs.test \
fstatfs64.test \
fsync.test \
ftruncate.test \
ftruncate64.test \
futex.test \
futimesat.test \
get_mempolicy.test \
getcpu.test \
getcwd.test \
getdents.test \
getdents64.test \
getegid.test \
getegid32.test \
geteuid.test \
geteuid32.test \
getgid.test \
getgid32.test \
getgroups.test \
getgroups32.test \
getpeername.test \
getpgrp.test \
getrandom.test \
getresgid.test \
getresgid32.test \
getresuid.test \
getresuid32.test \
getrlimit.test \
getrusage.test \
getsid.test \
getsockname.test \
getuid.test \
getuid32.test \
getxxid.test \
inet-cmsg.test \
init_module.test \
inotify.test \
inotify_init1.test \
ioctl.test \
ioctl_block.test \
ioctl_dm-v.test \
ioctl_dm.test \
ioctl_evdev-v.test \
ioctl_evdev.test \
ioctl_loop-nv.test \
ioctl_loop-v.test \
ioctl_loop.test \
ioctl_mtd.test \
ioctl_rtc-v.test \
ioctl_rtc.test \
ioctl_scsi.test \
ioctl_sg_io_v3.test \
ioctl_sg_io_v4.test \
ioctl_sock_gifconf.test \
ioctl_uffdio.test \
ioctl_v4l2.test \
ioperm.test \
iopl.test \
ioprio.test \
ip_mreq.test \
ipc.test \
ipc_msg.test \
ipc_msgbuf.test \
ipc_sem.test \
ipc_shm.test \
kcmp.test \
kexec_file_load.test \
kexec_load.test \
keyctl.test \
kill.test \
lchown.test \
lchown32.test \
link.test \
linkat.test \
llseek.test \
lookup_dcookie.test \
lseek.test \
lstat.test \
lstat64.test \
mbind.test \
membarrier.test \
memfd_create.test \
migrate_pages.test \
mincore.test \
mkdir.test \
mkdirat.test \
mknod.test \
mknodat.test \
mlock.test \
mlock2.test \
mlockall.test \
mmap.test \
mmap64.test \
mmsg-silent.test \
mmsg.test \
mmsg_name-v.test \
mmsg_name.test \
mount.test \
move_pages.test \
mq.test \
mq_sendrecv-read.test \
mq_sendrecv-write.test \
mq_sendrecv.test \
msg_control-v.test \
msg_control.test \
msg_name.test \
munlockall.test \
nanosleep.test \
net-icmp_filter.test \
net-sockaddr.test \
net-y-unix.test \
net-yy-inet.test \
net-yy-netlink.test \
net-yy-unix.test \
net.test \
netlink_protocol.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
oldfstat.test \
oldlstat.test \
oldselect.test \
oldstat.test \
open.test \
openat.test \
pause.test \
perf_event_open.test \
perf_event_open_nonverbose.test \
perf_event_open_unabbrev.test \
personality.test \
pipe.test \
pipe2.test \
pkey_alloc.test \
pkey_free.test \
pkey_mprotect.test \
poll.test \
ppoll-v.test \
ppoll.test \
prctl-arg2-intptr.test \
prctl-dumpable.test \
prctl-name.test \
@ -696,150 +533,27 @@ DECODER_TESTS = \
prctl-tid_address.test \
prctl-tsc.test \
pread64-pwrite64.test \
preadv-pwritev.test \
preadv.test \
preadv2-pwritev2.test \
printstr.test \
prlimit64.test \
process_vm_readv.test \
process_vm_writev.test \
pselect6.test \
ptrace.test \
pwritev.test \
qual_fault-exit_group.test \
quotactl-v.test \
quotactl-xfs-v.test \
quotactl-xfs.test \
quotactl.test \
read-write.test \
readahead.test \
readdir.test \
readlink.test \
readlinkat.test \
readv.test \
reboot.test \
recvfrom.test \
recvmmsg-timeout.test \
recvmsg.test \
remap_file_pages.test \
rename.test \
renameat.test \
renameat2.test \
request_key.test \
rmdir.test \
rt_sigpending.test \
rt_sigprocmask.test \
rt_sigqueueinfo.test \
rt_sigreturn.test \
rt_sigsuspend.test \
rt_sigtimedwait.test \
rt_tgsigqueueinfo.test \
sched.test \
sched_get_priority_mxx.test \
sched_rr_get_interval.test \
sched_xetaffinity.test \
sched_xetattr.test \
sched_xetparam.test \
sched_xetscheduler.test \
sched_yield.test \
scm_rights-fd.test \
seccomp-filter-v.test \
seccomp-filter.test \
seccomp-strict.test \
select.test \
semop.test \
sendfile.test \
sendfile64.test \
set_mempolicy.test \
setdomainname.test \
setfsgid.test \
setfsgid32.test \
setfsuid.test \
setfsuid32.test \
setgid.test \
setgid32.test \
setgroups.test \
setgroups32.test \
sethostname.test \
setns.test \
setregid.test \
setregid32.test \
setresgid.test \
setresgid32.test \
setresuid.test \
setresuid32.test \
setreuid.test \
setreuid32.test \
setrlimit.test \
setuid.test \
setuid32.test \
shmxt.test \
shutdown.test \
sigaction.test \
sigaltstack.test \
siginfo.test \
signalfd4.test \
sigreturn.test \
socketcall.test \
splice.test \
stat.test \
stat64.test \
statfs.test \
statfs64.test \
statx.test \
sun_path.test \
swap.test \
symlink.test \
symlinkat.test \
sync.test \
sync_file_range.test \
sync_file_range2.test \
sysinfo.test \
syslog.test \
tee.test \
time.test \
timer_create.test \
timer_xettime.test \
timerfd_xettime.test \
times-fail.test \
times.test \
truncate.test \
truncate64.test \
ugetrlimit.test \
uio.test \
umask.test \
umount.test \
umount2.test \
umoven-illptr.test \
umovestr-illptr.test \
umovestr.test \
umovestr2.test \
umovestr3.test \
uname.test \
unix-pair-send-recv.test \
unix-pair-sendto-recvfrom.test \
unlink.test \
unlinkat.test \
unshare.test \
userfaultfd.test \
ustat.test \
utime.test \
utimensat.test \
utimes.test \
vhangup.test \
vmsplice.test \
wait4-v.test \
wait4.test \
waitid-v.test \
waitid.test \
waitpid.test \
xattr-strings.test \
xattr.test \
xet_robust_list.test \
xetitimer.test \
xetpgid.test \
xetpriority.test \
xettimeofday.test \
# end of DECODER_TESTS
MISC_TESTS = \
@ -852,8 +566,6 @@ MISC_TESTS = \
detach-sleeping.test \
detach-stopped.test \
filter-unavailable.test \
fork-f.test \
int_0x80.test \
ksysent.test \
opipe.test \
options-syntax.test \
@ -869,7 +581,6 @@ MISC_TESTS = \
redirect-fds.test \
redirect.test \
restart_syscall.test \
signal_receive.test \
strace-C.test \
strace-E.test \
strace-S.test \
@ -881,16 +592,15 @@ MISC_TESTS = \
strace-tt.test \
strace-ttt.test \
threads-execve.test \
vfork-f.test \
# end of MISC_TESTS
TESTS = $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
XFAIL_TESTS_ =
XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.test
XFAIL_TESTS_x32 = int_0x80.test
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
TEST_LOG_COMPILER = env
@ -900,7 +610,7 @@ AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
VALGRIND_FLAGS = --quiet
VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
EXTRA_DIST = init.sh run.sh match.awk \
EXTRA_DIST = gen_tests.in gen_tests.sh init.sh run.sh match.awk \
caps-abbrev.awk \
caps.awk \
count-f.expected \
@ -933,7 +643,6 @@ EXTRA_DIST = init.sh run.sh match.awk \
sigaltstack.expected \
sockname.c \
statfs.expected \
statx.sh \
strace-C.expected \
strace-E.expected \
strace-T.expected \
@ -972,7 +681,7 @@ $(objects): scno.h
clean-local: clean-local-check
.PHONY: clean-local-check
clean-local-check:
-rm -rf -- $(TESTS:.test=.dir)
-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
CLEANFILES = ksysent.h

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check _newselect syscall decoding.
. "${srcdir=.}/select.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of accept syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a22

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of accept4 syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a37

View File

@ -1,7 +0,0 @@
#!/bin/sh
# Check decoding of access syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a30 -P access_sample

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check acct syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a20

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of add_key syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a30 -s12

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check adjtimex syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a15

View File

@ -1,8 +0,0 @@
#!/bin/sh
# Check io_* syscalls decoding.
. "${srcdir=.}/init.sh"
syscalls=io_setup,io_submit,io_getevents,io_cancel,io_destroy
run_strace_match_diff -a14 -e trace=$syscalls

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check alarm syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a10

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check bpf syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a20

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check basic btrfs ioctl decoding.
. "${srcdir=.}/ioctl.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check chmod syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a28

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check chown syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a28

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check chown32 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a31

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check chroot syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a24

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check clock_adjtime syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a37

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of clock_nanosleep and clock_gettime syscalls.
. "${srcdir=.}/init.sh"
run_strace_match_diff -e trace=clock_nanosleep,clock_gettime

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check clock_getres, clock_gettime, and clock_settime syscalls decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a36 -e trace=clock_getres,clock_gettime,clock_settime

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check copy_file_range syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check creat syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a20

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of delete_module syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a23

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check dup syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a8

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check dup2 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a13

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check dup3 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a24

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check epoll_create syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a17

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check epoll_create1 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a28

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check epoll_ctl syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of epoll_pwait syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check epoll_wait syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a26

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of ERESTARTSYS error code.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a34 -e signal=none -e trace=recvfrom

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check verbose decoding of execveat syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -v -e trace=execveat

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check execveat syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check faccessat syscall decoding.
. "${srcdir=.}/openat.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of fadvise64_64 syscall.
. "${srcdir=.}/fadvise64.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getcwd syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a18

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of fanotify_init syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of fanotify_mark syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a32

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fchdir syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a11

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fchmod syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a15

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of fchmodat syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fchown syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a16

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fchown32 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a18

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of fchownat syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fcntl decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a8

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check fcntl64 syscall decoding.
. "${srcdir=.}/fcntl.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fdatasync syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a14

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check name_to_handle_at and open_by_handle_at syscalls decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -e trace=name_to_handle_at,open_by_handle_at

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check FS_IOC_FIEMAP ioctl decoding.
. "${srcdir=.}/ioctl.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of finit_module syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a25

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check flock syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a19

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check how strace -f follows fork syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a26 -qq -f -e trace=chdir -e signal=none

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check fstat64 syscall decoding.
. "${srcdir=.}/fstat.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check fstatat64 syscall decoding.
. "${srcdir=.}/statx.sh"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check fstatfs syscall decoding.
. "${srcdir=.}/statfs.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check fstatfs64 syscall decoding.
. "${srcdir=.}/statfs.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check fsync syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a10

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check ftruncate syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a24

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check ftruncate64 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a36

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check futimesat syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a28

319
tests/gen_tests.in Normal file
View File

@ -0,0 +1,319 @@
# Input for gen_tests.sh
#
# Copyright (c) 2017 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
_newselect
accept -a22
accept4 -a37
access -a30 -P access_sample
acct -a20
add_key -a30 -s12
adjtimex -a15
aio -a14 -e trace=io_setup,io_submit,io_getevents,io_cancel,io_destroy
alarm -a10
bpf -a20
btrfs +ioctl.test
chmod -a28
chown -a28
chown32 -a31
chroot -a24
clock_adjtime -a37
clock_nanosleep -e trace=clock_nanosleep,clock_gettime
clock_xettime -a36 -e trace=clock_getres,clock_gettime,clock_settime
copy_file_range
creat -a20
delete_module -a23
dup -a8
dup2 -a13
dup3 -a24
epoll_create -a17
epoll_create1 -a28
epoll_ctl
epoll_pwait
epoll_wait -a26
erestartsys -a34 -e signal=none -e trace=recvfrom
execveat
execveat-v -v -e trace=execveat
faccessat -P $NAME.sample
fadvise64_64 +fadvise64.test
fallocate -a18
fanotify_init
fanotify_mark -a32
fchdir -a11
fchmod -a15
fchmodat
fchown -a16
fchown32 -a18
fchownat
fcntl -a8
fcntl64 -a8
fdatasync -a14
file_handle -e trace=name_to_handle_at,open_by_handle_at
file_ioctl +ioctl.test
finit_module -a25
flock -a19
fork-f -a26 -qq -f -e signal=none -e trace=chdir
fstat64 +fstat.test
fstatat64 -a32 -v -P $NAME.sample -P /dev/full
fstatfs +statfs.test
fstatfs64 +statfs.test
fsync -a10
ftruncate -a24
ftruncate64 -a36
futimesat -a28
get_mempolicy -s3 -a38
getcpu -a25
getcwd -a18
getdents -a22 -v
getdents64 -a24 -v
getegid +getuid.test
getegid32 +getuid.test
geteuid +getuid.test
geteuid32 +getuid.test
getgid +getuid.test
getgid32 +getuid.test
getgroups -a17
getgroups32 -a19
getpeername -a27
getpgrp -a10
getrandom -a32 -s3
getresgid -a25
getresgid32 -a27
getresuid -a25
getresuid32 -a27
getrlimit -a27
getrusage -v
getsid -a10
getsockname -a27
getuid32 +getuid.test
getxxid -a10 -e trace=getxpid,getxuid,getxgid
inet-cmsg -e trace=recvmsg
init_module -a27
inotify -a23 -e trace=inotify_add_watch,inotify_rm_watch
inotify_init1 -a27
int_0x80 -a11 -e trace=getgid32
ioctl_block +ioctl.test
ioctl_evdev +ioctl.test
ioctl_loop +ioctl.test
ioctl_mtd +ioctl.test
ioctl_rtc +ioctl.test
ioctl_scsi +ioctl.test
ioctl_sg_io_v3 +ioctl.test
ioctl_sg_io_v4 +ioctl.test
ioctl_uffdio +ioctl.test
ioctl_v4l2 +ioctl.test
ioperm -a27
iopl -a8
ioprio -a18 -e trace=ioprio_get,ioprio_set
ip_mreq -e trace=setsockopt
ipc -a19
ipc_msg +ipc.sh
ipc_sem +ipc.sh
ipc_shm +ipc.sh
kcmp -a27
kexec_file_load -s9
kexec_load -s9
keyctl -a31 -s10
kill -a12 -esignal=none
lchown -a30
lchown32 -a32
link
linkat
lookup_dcookie -a27
lstat -a32 -v -P $NAME.sample -P /dev/full
lstat64 -a32 -v -P $NAME.sample -P /dev/full
mbind
membarrier -a36
memfd_create
migrate_pages -a33
mincore -a22
mkdir -a20
mkdirat -a28
mknod -a18
mknodat -a35
mlock -a20 -e trace=mlock,munlock
mlock2
mlockall -a12
mmap64 +mmap.test
mmsg -e read=0 -e write=1 -e trace=recvmmsg,sendmmsg
mmsg-silent -a25 -e verbose=none -e trace=sendmmsg,recvmmsg
mmsg_name -a25 -e trace=sendmmsg,recvmmsg
mmsg_name-v -v -a25 -e trace=sendmmsg,recvmmsg
mount
move_pages -s3
mq -a28 -e trace=mq_getsetattr,mq_open,mq_unlink
mq_sendrecv -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
mq_sendrecv-read -eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
mq_sendrecv-write -ewrite=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
msg_control -a21 -e trace=sendmsg
msg_control-v -v -a21 -e trace=sendmsg
msg_name -a20 -e trace=recvmsg
munlockall -a13
nanosleep -a20
net-icmp_filter -e trace=getsockopt,setsockopt
net-sockaddr -a24 -e trace=connect
newfstatat -a32 -v -P $NAME.sample -P /dev/full
old_mmap -a11 -e trace=mmap
oldfstat +fstat.test
oldlstat -a32 -v -P $NAME.sample -P /dev/full
oldstat -a32 -v -P $NAME.sample -P /dev/full
open -a30 -P $NAME.sample
openat -P $NAME.sample
pause -a8 -esignal=none
perf_event_open -a1
perf_event_open_nonverbose -a34 -e verbose=none -e trace=perf_event_open
perf_event_open_unabbrev -a1 -v -e trace=perf_event_open
pipe2 -a15
pkey_alloc -a17
pkey_free -a13
pkey_mprotect -a37
ppoll -s2
ppoll-v -v -s2 -e trace=ppoll
preadv -a21
preadv-pwritev -a19 -eread=0 -ewrite=1 -e trace=preadv,pwritev
preadv2-pwritev2 -a22 -eread=0 -ewrite=1 -e trace=preadv2,pwritev2
printstr -e trace=writev
prlimit64
process_vm_readv -s5 -a37
process_vm_writev -s5 -a38
pselect6
ptrace -a23 -e signal=none
pwritev -a22 -s7
quotactl
quotactl-v -v -e trace=quotactl
quotactl-xfs -e trace=quotactl
quotactl-xfs-v -v -e trace=quotactl
readahead -a1
readdir -a16
readlink -xx
readlinkat -xx
reboot
recvfrom -a35
recvmmsg-timeout -a25 -e trace=recvmmsg
recvmsg -eread=0 -ewrite=1 -e trace=recvmsg,sendmsg
remap_file_pages
rename -a35
renameat
renameat2
request_key -a33 -s12
rmdir -a22
rt_sigpending -a20
rt_sigprocmask
rt_sigqueueinfo -esignal=none
rt_sigreturn -esignal='!USR1'
rt_sigsuspend -a20 -esignal=none
rt_sigtimedwait -a38
rt_tgsigqueueinfo -esignal=none
sched_get_priority_mxx -a33 -e trace=sched_get_priority_min,sched_get_priority_max
sched_rr_get_interval -a31
sched_xetaffinity -a28 -e trace=sched_getaffinity,sched_setaffinity
sched_xetattr -a29 -e trace=sched_getattr,sched_setattr
sched_xetparam -a23 -e trace=sched_getparam,sched_setparam
sched_xetscheduler -a22 -e trace=sched_getscheduler,sched_setscheduler
sched_yield -a14
seccomp-filter -e trace=seccomp
seccomp-filter-v -v -e trace=seccomp
select -a36
semop -a32 -e trace=semop,semtimedop
sendfile -a27
sendfile64 -a29
set_mempolicy -s3 -a35
setdomainname -a24
setfsgid -a12
setfsgid32 -a14
setfsuid -a12
setfsuid32 -a14
setgid -a10
setgid32 -a12
setgroups -s2 -a17
setgroups32 -s2 -a19
sethostname -a22
setns -a21
setregid -a15
setregid32 -a17
setresgid -a19
setresgid32 -a21
setresuid -a19
setresuid32 -a21
setreuid -a15
setreuid32 -a17
setrlimit -a27
setuid -a10
setuid32 -a12
shutdown -a24
siginfo -e trace=none
signal_receive -a16 -e trace=kill
signalfd4
sigreturn -esignal='!USR1'
socketcall -a20
splice
stat -a32 -v -P $NAME.sample -P /dev/full
stat64 -a32 -v -P $NAME.sample -P /dev/full
statfs64 +statfs.test
statx -a32 -v -P $NAME.sample -P /dev/full
swap -a23 -e trace=swapon,swapoff
symlink -a34
symlinkat
sync -a7
sync_file_range
sync_file_range2
sysinfo -a14
syslog -a36
tee
time -a10
timer_create
timer_xettime -e trace=timer_create,timer_settime,timer_gettime
timerfd_xettime -e trace=timerfd_create,timerfd_settime,timerfd_gettime
times -esignal=none
times-fail -a12 -e trace=times
truncate
truncate64
ugetrlimit -a28
umask -a11
umoven-illptr -a36 -e trace=nanosleep
umovestr-illptr -a11 -e trace=chdir
umovestr3 -a14 -e trace=chdir
unlink -a24
unlinkat -a35
unshare -a11
userfaultfd -a38
ustat -a33
utime -a 16 -e trace=utime
utimes -a21
vfork-f -a26 -qq -f -e signal=none -e trace=chdir
vhangup -a10
vmsplice -ewrite=1
wait4 -esignal=none
wait4-v -v -e signal=none -e trace=wait4
waitid -esignal=none
waitid-v -v -e signal=none -e trace=waitid
waitpid -a28
xattr-strings -a22 -s 4 -e trace=fsetxattr
xet_robust_list -a24 -e trace=get_robust_list,set_robust_list
xetitimer -a29 -e trace=setitimer,getitimer
xetpgid -a11 -e trace=getpgid,setpgid
xetpriority -a29 -e trace=getpriority,setpriority
xettimeofday -a20 -e trace=gettimeofday,settimeofday

100
tests/gen_tests.sh Executable file
View File

@ -0,0 +1,100 @@
#!/bin/sh -efu
#
# Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
usage()
{
cat >&2 <<EOF
Usage: $0 [<input> [<output>]]
Generate test script(s) from <input> table.
If a <output> is specified, generate the script for this test only,
otherwise generate scripts for all tests specified in <input> table.
EOF
exit 1
}
input="${0%/*}/gen_tests.in"
[ $# -eq 0 ] || { input="$1"; shift; }
output=
[ $# -eq 0 ] || { output="$1"; shift; }
[ $# -eq 0 ] || usage
if [ -n "$output" ]; then
match="${output##*/}"
match="${match%.gen.test}"
[ -n "$match" ] || usage
else
match=
dir="$(dirname "$input")"
fi
names=
while read name args; do {
[ -n "${name###*}" ] || continue
if [ -z "$match" ]; then
names="$names $name"
output="$dir/$name.gen.test"
else
[ "$match" = "$name" ] || continue
fi
case "$args" in
+*)
cat <<-EOF
#!/bin/sh -efu
# Generated by $0 from $input; do not edit.
. "\${srcdir=.}/${args#+}"
EOF
;;
*)
cat <<-EOF
#!/bin/sh -efu
# Generated by $0 from $input; do not edit.
. "\${srcdir=.}/init.sh"
run_strace_match_diff $args
EOF
;;
esac > "$output"
chmod a+x "$output"
} < /dev/null; done < "$input"
if [ -n "$names" ]; then
{
printf '# Generated by %s from %s; do not edit.\n' "$0" "$input"
printf 'GEN_TESTS ='
printf ' %s.gen.test' $names
echo
target='$(srcdir)/%s.gen.test'
dep1='$(srcdir)/gen_tests.sh'
dep2='$(srcdir)/gen_tests.in'
recipe='$(AM_V_GEN) $^ $@'
printf "\\n$target: $dep1 $dep2\\n\\t$recipe\\n" $names
} > "$dir/gen_tests.am"
fi

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check get_mempolicy syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -s3 -a38

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of getcpu syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a25

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getcwd syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a18

View File

@ -1,7 +0,0 @@
#!/bin/sh
# Check getdents syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a22 -v

View File

@ -1,7 +0,0 @@
#!/bin/sh
# Check getdents64 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a24 -v

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check getegid syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check getegid32 syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check geteuid syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check geteuid32 syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check getgid syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check getgid32 syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getgroups syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a17

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getgroups32 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a19

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of getpeername syscall.
. "${srcdir=.}/getsockname.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getpgrp syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a10

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getrandom syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a32 -s3

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getresgid syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a25

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getresgid32 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a27

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getresuid syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a25

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getresuid32 syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a27

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of getrlimit syscall.
. "${srcdir=.}/setrlimit.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getrusage syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -v

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getsid syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a10

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of getsockname syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a27

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check getuid32 syscall decoding.
. "${srcdir=.}/getuid.test"

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check getxpid, getxuid, and getxgid syscalls decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a10 -e trace=getxpid,getxuid,getxgid

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check IPPROTO_IP control messages decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -e trace=recvmsg

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of init_module syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a27

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of inotify_add_watch and inotify_rm_watch syscalls.
. "${srcdir=.}/init.sh"
run_strace_match_diff -e trace=inotify_add_watch,inotify_rm_watch -a23

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of inotify_init1 syscall.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a27

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Check decoding of int 0x80 on x86_64, x32, and x86.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a11 -e trace=getgid32

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of BLK* ioctls.
. "${srcdir=.}/ioctl.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of EVIOC* ioctls.
. "${srcdir=.}/ioctl.test"

View File

@ -1,11 +0,0 @@
#!/bin/sh
# Check decoding of LOOP_* ioctls.
. "${srcdir=.}/init.sh"
check_prog grep
run_prog > /dev/null
run_strace -a22 -eioctl $args > "$EXP"
grep -v '^ioctl([012],' < "$LOG" > "$OUT"
match_diff "$OUT" "$EXP"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check decoding of 'M' type ioctls.
. "${srcdir=.}/ioctl.test"

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Check basic decoding of RTC_* ioctls.
. "${srcdir=.}/ioctl.test"

Some files were not shown because too many files have changed in this diff Show More