2011-02-27 03:28:50 +03:00
# Automake input for strace tests.
2015-12-17 20:56:48 +03:00
#
2016-01-02 02:09:02 +03:00
# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
2015-12-17 20:56:48 +03:00
# 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.
2011-02-27 03:28:50 +03:00
2015-04-08 00:18:23 +03:00
OS = linux
ARCH = @arch@
2016-01-02 02:09:02 +03:00
MPERS_NAME =
2015-12-08 03:14:10 +03:00
ARCH_MFLAGS =
2013-05-08 03:32:01 +04:00
AM_CFLAGS = $( WARN_CFLAGS)
2015-12-08 03:14:10 +03:00
AM_CPPFLAGS = $( ARCH_MFLAGS) \
tests: add ksysent.test
Check that syscall names and numbers defined in syscallent files
match kernel __NR_* constants defined by <asm/unistd.h>.
Tested on various platforms, including the following combinations
of architectures and kernel headers:
x86_64: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.12, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
i386: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
aarch64: 4.4-rc
alpha: 4.3
arm eabi: 4.4-rc, 4.2, 4.1
hppa: 3.18
ia64: 3.18
mips o32: 4.1
ppc: 3.18
ppc64: 3.10-rhel, 2.6.32-rhel
s390: 3.18
s390x: 3.18
sparc: 4.1
sparc: 3.18
x32: 3.19
The only platform which is known at this moment to fail the test
is CentOS-5 provided by OBS. On x86_64 instance it fails with
error: "prlimit64" syscall #300 is "fanotify_init" in syscallent.h
and on i586 it similarly fails with
error: "prlimit64" syscall #338 is "fanotify_init" in syscallent.h
So this is a real platform bug that is not likely to be worked around
on the strace side.
* tests/ksysent.c: New file.
* tests/ksysent.sed: Likewise.
* tests/ksysent.test: New test.
* tests/Makefile.am (AM_CPPFLAGS): Add -I$(builddir).
(check_PROGRAMS): Add ksysent.
(TESTS): Add ksysent.test.
(EXTRA_DIST): Add ksysent.sed.
(ksysent.h): New rule.
(BUILT_SOURCES, CLEANFILES): Add ksysent.h.
* tests/.gitignore: Add ksysent.
2015-12-10 05:06:25 +03:00
-I$( builddir) \
2015-12-08 03:14:10 +03:00
-I$( top_builddir) /$( OS) /$( ARCH) \
2015-02-22 05:13:04 +03:00
-I$( top_srcdir) /$( OS) /$( ARCH) \
-I$( top_builddir) /$( OS) \
2015-08-27 01:50:58 +03:00
-I$( top_srcdir) /$( OS) \
-I$( top_builddir) \
-I$( top_srcdir)
2015-12-08 03:14:10 +03:00
AM_LDFLAGS = $( ARCH_MFLAGS)
2013-05-08 03:32:01 +04:00
2016-01-02 15:05:14 +03:00
libtests_a_SOURCES = \
2016-04-21 01:51:28 +03:00
errno2name.c \
2016-01-02 15:05:14 +03:00
error_msg.c \
2016-01-20 08:26:43 +03:00
get_page_size.c \
hexdump_strdup.c \
2016-02-04 04:59:35 +03:00
hexquote_strndup.c \
2016-01-26 01:20:40 +03:00
inode_of_sockfd.c \
2016-04-14 01:38:17 +03:00
overflowuid.c \
2016-03-23 16:34:15 +03:00
print_quoted_string.c \
2016-04-26 03:13:47 +03:00
printflags.c \
2016-04-27 23:29:46 +03:00
printxval.c \
2016-01-02 15:05:14 +03:00
tail_alloc.c \
tests.h \
2016-01-20 05:06:59 +03:00
tprintf.c \
2016-01-02 15:05:14 +03:00
# end of libtests_a_SOURCES
libtests_a_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
check_LIBRARIES = libtests.a
LDADD = libtests.a
2014-05-30 01:35:34 +04:00
check_PROGRAMS = \
2015-12-08 20:38:12 +03:00
_newselect \
2016-04-21 10:53:51 +03:00
access \
2016-03-09 09:07:06 +03:00
acct \
2015-09-17 00:58:36 +03:00
adjtimex \
2015-08-26 15:49:07 +03:00
aio \
2016-02-14 19:56:58 +03:00
alarm \
2016-02-09 07:16:41 +03:00
attach-f-p \
2016-01-22 17:37:14 +03:00
attach-p-cmd-cmd \
attach-p-cmd-p \
2015-07-26 02:55:51 +03:00
bpf \
2015-02-04 19:38:09 +03:00
caps \
2016-03-07 13:57:43 +03:00
chmod \
2016-04-16 02:03:29 +03:00
chown \
2016-04-16 02:03:29 +03:00
chown32 \
2016-03-31 11:06:52 +03:00
chroot \
2016-04-22 04:13:27 +03:00
clock_adjtime \
2015-09-18 17:24:51 +03:00
clock_nanosleep \
2015-09-18 00:57:22 +03:00
clock_xettime \
2016-02-13 06:45:32 +03:00
copy_file_range \
2016-02-23 02:42:23 +03:00
count-f \
2016-03-25 12:47:14 +03:00
creat \
2016-03-10 05:41:31 +03:00
dup \
dup2 \
dup3 \
2016-04-08 10:59:14 +03:00
epoll_create \
2015-08-02 02:04:32 +03:00
epoll_create1 \
2016-04-08 10:59:15 +03:00
epoll_ctl \
2016-04-08 10:59:16 +03:00
epoll_wait \
2015-08-02 00:08:13 +03:00
eventfd \
2015-07-27 13:02:33 +03:00
execve \
2016-02-07 17:37:53 +03:00
execve-v \
2015-07-26 14:06:53 +03:00
execveat \
2016-02-07 17:37:53 +03:00
execveat-v \
2016-03-25 12:47:15 +03:00
faccessat \
2015-02-04 19:38:09 +03:00
fanotify_mark \
2016-04-21 10:53:50 +03:00
fchdir \
2016-03-10 13:29:32 +03:00
fchmod \
2016-04-02 16:13:16 +03:00
fchmodat \
2016-04-18 01:24:41 +03:00
fchown \
2016-04-18 01:24:41 +03:00
fchown32 \
2016-04-02 17:07:02 +03:00
fchownat \
fcntl: skip F_GETLK64, F_SETLK64, and F_SETLKW64 in fcntl syscall parser
As the kernel recognizes F_GETLK64, F_SETLK64, and F_SETLKW64 commands
in fcntl64 syscall only, do not parse their structures in fcntl parser.
* xlat/fcntlcmds.in: Move F_GETLK64, F_SETLK64, and F_SETLKW64 ...
* xlat/fcntl64cmds.in: ... here.
* fcntl.c: Include "xlat/fcntl64cmds.h".
(print_fcntl): Move printing of first two syscall arguments
and handling of F_GETLK64, F_SETLK64, and F_SETLKW64 commands ...
(SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): ... here.
* tests/fcntl.c: New file, based on struct_flock.c.
* tests/fcntl64.c: Likewise.
* tests/struct_flock.c (test_flock_einval, create_sample): New functions.
(test_flock): Use test_flock_einval.
(test_flock64, main): Remove.
* tests/fcntl.test: New test.
* tests/fcntl64.test: Likewise.
* tests/struct_flock.test: Remove.
* tests/Makefile.am (check_PROGRAMS): Add fcntl and fcntl64,
remove struct_flock.
(TESTS): Add fcntl.test and fcntl64.test, remove struct_flock.test.
(EXTRA_DIST) Add struct_flock.c.
* tests/.gitignore: Add fcntl and fcntl64, remove struct_flock.
2015-12-05 03:52:01 +03:00
fcntl \
fcntl64 \
2016-03-31 11:06:51 +03:00
fdatasync \
2015-11-23 00:29:32 +03:00
file_handle \
2015-06-29 14:57:44 +03:00
filter-unavailable \
2016-03-15 11:38:34 +03:00
flock \
2015-12-31 02:00:43 +03:00
fork-f \
2015-12-05 03:02:44 +03:00
fstat \
fstat64 \
2015-12-02 04:02:39 +03:00
fstatat64 \
Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
2016-04-26 03:21:26 +03:00
fstatfs \
fstatfs64 \
2016-03-31 11:06:50 +03:00
fsync \
2015-12-01 03:02:45 +03:00
ftruncate \
2015-12-01 03:32:40 +03:00
ftruncate64 \
2016-04-26 18:34:03 +03:00
futimesat \
2016-04-28 00:58:43 +03:00
get_mempolicy \
2016-03-23 16:38:35 +03:00
getcwd \
2015-11-19 19:39:32 +03:00
getdents \
getdents64 \
tests: extend test coverage of getuid/getgid family syscalls
Add strict tests for getuid, getuid32, getgid, getgid32, geteuid,
geteuid32, getegid, and getegid32 syscalls.
* tests/getegid.c: New file.
* tests/getegid.test: New test.
* tests/getegid32.c: New file.
* tests/getegid32.test: New test.
* tests/geteuid.c: New file.
* tests/geteuid.test: New test.
* tests/geteuid32.c: New file.
* tests/geteuid32.test: New test.
* tests/getgid.c: New file.
* tests/getgid.test: New test.
* tests/getgid32.c: New file.
* tests/getgid32.test: New test.
* tests/getuid.c: New file.
* tests/getuid.test: New test.
* tests/getuid32.c: New file.
* tests/getuid32.test: New test.
* tests/.gitignore: Add getuid, getuid32, getgid, getgid32, geteuid,
* geteuid32, getegid, and getegid32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getegid.test, getegid32.test, geteuid.test,
geteuid32.test, getgid.test, getgid32.test, getuid.test,
and getuid32.test.
2016-04-19 21:28:03 +03:00
getegid \
getegid32 \
geteuid \
geteuid32 \
getgid \
getgid32 \
2016-04-19 04:59:52 +03:00
getgroups \
getgroups32 \
2016-04-21 10:53:52 +03:00
getpgrp \
2015-02-04 19:38:09 +03:00
getrandom \
2016-04-19 20:42:51 +03:00
getresgid \
2016-04-19 20:45:26 +03:00
getresgid32 \
2016-04-19 20:30:23 +03:00
getresuid \
2016-04-19 20:34:00 +03:00
getresuid32 \
2016-02-19 04:57:33 +03:00
getrusage \
2016-04-21 04:40:01 +03:00
getsid \
tests: extend test coverage of getuid/getgid family syscalls
Add strict tests for getuid, getuid32, getgid, getgid32, geteuid,
geteuid32, getegid, and getegid32 syscalls.
* tests/getegid.c: New file.
* tests/getegid.test: New test.
* tests/getegid32.c: New file.
* tests/getegid32.test: New test.
* tests/geteuid.c: New file.
* tests/geteuid.test: New test.
* tests/geteuid32.c: New file.
* tests/geteuid32.test: New test.
* tests/getgid.c: New file.
* tests/getgid.test: New test.
* tests/getgid32.c: New file.
* tests/getgid32.test: New test.
* tests/getuid.c: New file.
* tests/getuid.test: New test.
* tests/getuid32.c: New file.
* tests/getuid32.test: New test.
* tests/.gitignore: Add getuid, getuid32, getgid, getgid32, geteuid,
* geteuid32, getegid, and getegid32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getegid.test, getegid32.test, geteuid.test,
geteuid32.test, getgid.test, getgid32.test, getuid.test,
and getuid32.test.
2016-04-19 21:28:03 +03:00
getuid \
getuid32 \
2016-01-09 03:06:06 +03:00
getxxid \
Implement IPPROTO_IP control messages decoding
* net.c: Include "xlat/ip_cmsg_types.h".
(print_cmsg_ip_pktinfo, print_cmsg_ip_ttl, print_cmsg_ip_tos,
print_cmsg_ip_opts, print_cmsg_ip_recverr, print_cmsg_ip_checksum,
print_cmsg_ip_origdstaddr): New functions.
(print_cmsg_type_data): Add generic SOL_IP level decoding.
Use these functions for decoding of IP_PKTINFO, IP_TTL, IP_TOS,
IP_RECVOPTS, IP_RETOPTS, IP_RECVERR, IP_ORIGDSTADDR, IP_CHECKSUM,
and SCM_SECURITY type messages.
* xlat/ip_cmsg_types.in: New file.
* xlat/sockipoptions.in: Move IP_RETOPTS before IP_RECVRETOPTS.
* tests/inet-cmsg.c: New file.
* tests/inet-cmsg.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add inet-cmsg.
(TESTS): Add inet-cmsg.test.
* tests/.gitignore: Add inet-cmsg.
Suggested-by: Orion Poplawski <orion@cora.nwra.com>
2015-11-21 03:03:54 +03:00
inet-cmsg \
ioctl: take all 32 bits of ioctl commands into account
Historically, only 16 bits (8-bit number and 8-bit type) of 32-bit ioctl
commands were used for decoding, which was the source for numerous
annoying collisions like this:
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, MGSL_IOCGPARAMS or MMTIMER_GETRES or MTIOCTOP or SNDCTL_MIDI_MPUMODE, 0x7fffd47f7338) = -1 ENOTTY (Inappropriate ioctl for device)
The solution is to use all 32 bits for decoding, not just "number" and
"type", but also "size" and "direction".
As some architectures override defaults that come from asm-generic/ and
provide alternative definitions for some ioctl commands, we support
per-architecture ioctl definitions and merge them with common
definitions at build time. During the merge, we used to keep both
generic and architecture-specific definitions, now architecture-specific
definitions have precedence over generic ones -- ioctlsort omits
definitions from asm-generic/ for those ioctl names that have different
definitions in asm/.
Additional bits of "direction" are architecture specific -- the number
of bits and their values differ between architectures. To reduce
architecture differences in the source code, we keep "direction" in
symbolic form and compile it in ioctlsort.
Additional bits of "size" are also architecture specific -- not only the
number of bits differ between architectures, but sizes of many types
depend on sizeof(long). To reduce architecture differences in the
source code, we keep 32-bit and 64-bit versions of common ioctl
definitions, and use the appropriate version for each architecture and
personality.
To implement this, the tools for generating ioctl definitions from
kernel headers have been rewritten, and the source format of ioctl
definitions has been extended. The final ioctlent*.h files that are
included by syscall.c are now generated from source ioctls_inc*.h and
ioctls_arch*.h files at build time with ioctlsort.
* ioctl.c (ioctl_lookup): Use all 32 bits of ioctl command code.
* ioctlsort.c: Rewritten.
* linux/32/ioctls_inc.h: New file.
* linux/64/ioctls_inc.h: New file.
* linux/aarch64/ioctls_arch0.h: New file.
* linux/aarch64/ioctls_arch1.h: New file.
* linux/aarch64/ioctls_inc0.h: New file.
* linux/aarch64/ioctls_inc1.h: New file.
* linux/alpha/ioctls_arch0.h: New file.
* linux/alpha/ioctls_inc0.h: New file.
* linux/arc/ioctls_arch0.h: New file.
* linux/arc/ioctls_inc0.h: New file.
* linux/arm/ioctls_arch0.h: New file.
* linux/arm/ioctls_inc0.h: New file.
* linux/avr32/ioctls_arch0.h: New file.
* linux/avr32/ioctls_inc0.h: New file.
* linux/bfin/ioctls_arch0.h: New file.
* linux/bfin/ioctls_inc0.h: New file.
* linux/hppa/ioctls_arch0.h: New file.
* linux/hppa/ioctls_inc0.h: New file.
* linux/i386/ioctls_arch0.h: New file.
* linux/i386/ioctls_inc0.h: New file.
* linux/ia64/ioctls_arch0.h: New file.
* linux/ia64/ioctls_inc0.h: New file.
* linux/m68k/ioctls_arch0.h: New file.
* linux/m68k/ioctls_inc0.h: New file.
* linux/metag/ioctls_arch0.h: New file.
* linux/metag/ioctls_inc0.h: New file.
* linux/microblaze/ioctls_arch0.h: New file.
* linux/microblaze/ioctls_inc0.h: New file.
* linux/mips/ioctls_arch0.h: New file.
* linux/mips/ioctls_inc0.h: New file.
* linux/or1k/ioctls_arch0.h: New file.
* linux/or1k/ioctls_inc0.h: New file.
* linux/powerpc/ioctls_arch0.h: New file.
* linux/powerpc/ioctls_inc0.h: New file.
* linux/powerpc64/ioctls_arch0.h: New file.
* linux/powerpc64/ioctls_arch1.h: New file.
* linux/powerpc64/ioctls_inc0.h: New file.
* linux/powerpc64/ioctls_inc1.h: New file.
* linux/s390/ioctls_arch0.h: New file.
* linux/s390/ioctls_inc0.h: New file.
* linux/s390x/ioctls_arch0.h: New file.
* linux/s390x/ioctls_inc0.h: New file.
* linux/sh/ioctls_arch0.h: New file.
* linux/sh/ioctls_inc0.h: New file.
* linux/sh64/ioctls_arch0.h: New file.
* linux/sh64/ioctls_inc0.h: New file.
* linux/sparc/ioctls_arch0.h: New file.
* linux/sparc/ioctls_inc0.h: New file.
* linux/sparc64/ioctls_arch0.h: New file.
* linux/sparc64/ioctls_arch2.h: New file.
* linux/sparc64/ioctls_inc0.h: New file.
* linux/sparc64/ioctls_inc2.h: New file.
* linux/tile/ioctls_arch0.h: New file.
* linux/tile/ioctls_arch1.h: New file.
* linux/tile/ioctls_inc0.h: New file.
* linux/tile/ioctls_inc1.h: New file.
* linux/x32/ioctls_arch0.h: New file.
* linux/x32/ioctls_arch1.h: New file.
* linux/x32/ioctls_inc0.h: New file.
* linux/x32/ioctls_inc1.h: New file.
* linux/x86_64/ioctls_arch0.h: New file.
* linux/x86_64/ioctls_arch1.h: New file.
* linux/x86_64/ioctls_inc0.h: New file.
* linux/x86_64/ioctls_inc1.h: New file.
* linux/xtensa/ioctls_arch0.h: New file.
* linux/xtensa/ioctls_inc0.h: New file.
* linux/aarch64/ioctlent.h.in: Remove.
* linux/aarch64/ioctlent1.h: Remove.
* linux/alpha/ioctlent.h.in: Remove.
* linux/arc/ioctlent.h.in: Remove.
* linux/arm/ioctlent.h.in: Remove.
* linux/avr32/ioctlent.h.in: Remove.
* linux/bfin/ioctlent.h.in: Remove.
* linux/hppa/ioctlent.h.in: Remove.
* linux/i386/ioctlent.h.in: Remove.
* linux/ia64/ioctlent.h.in: Remove.
* linux/ioctlent.h.in: Remove.
* linux/ioctlent.sh: Remove.
* linux/m68k/ioctlent.h.in: Remove.
* linux/metag/ioctlent.h.in: Remove.
* linux/microblaze/ioctlent.h.in: Remove.
* linux/mips/ioctlent.h.in: Remove.
* linux/mips/ioctlent.sh: Remove.
* linux/or1k/ioctlent.h.in: Remove.
* linux/powerpc/ioctlent.h.in: Remove.
* linux/powerpc64/ioctlent.h: Remove.
* linux/powerpc64/ioctlent1.h: Remove.
* linux/s390/ioctlent.h.in: Remove.
* linux/s390x/ioctlent.h.in: Remove.
* linux/sh/ioctlent.h.in: Remove.
* linux/sh64/ioctlent.h.in: Remove.
* linux/sparc/ioctlent.h.in: Remove.
* linux/sparc64/ioctlent.h.in: Remove.
* linux/sparc64/ioctlent2.h: Remove.
* linux/tile/ioctlent.h.in: Remove.
* linux/tile/ioctlent1.h: Remove.
* linux/x32/ioctlent.h.in: Remove.
* linux/x32/ioctlent1.h: Remove.
* linux/x86_64/ioctlent.h.in: Remove.
* linux/x86_64/ioctlent1.h: Remove.
* linux/xtensa/ioctlent.h.in: Remove.
* linux/x86_64/ioctlent2.h: Include ioctlent0.h instead of ioctlent.h.
* syscall.c (struct_ioctlent ioctlent0): Likewise.
* Makefile.am: Remove all ioctlent-related definitions.
Define the list of ioctlent*.h files that have to be generated by
presence of $(srcdir)/$(OS)/$(ARCH)/ioctls_inc*.h files.
Add rules for ioctlent*.h files generation.
(EXTRA_DIST): Update.
* maint/ioctls_gen.sh: New file.
* maint/ioctls_hex.sh: New file.
* maint/ioctls_sym.sh: New file.
* maint/print_ioctlent.c: New file.
* HACKING-scripts: Update for ioctlent.sh -> ioctls_gen.sh migration.
* .gitignore: Add ioctlent[012].h and ioctls_all[012].h.
* configure.ac (AC_CHECK_HEADERS): Add linux/hiddev.h
and linux/mmtimer.h for tests.
* tests/ioctl.c: New file.
* tests/ioctl.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add ioctl.
(TESTS): Add ioctl.test.
* tests/.gitignore: Add ioctl.
2015-01-19 20:02:16 +03:00
ioctl \
2016-04-19 10:38:32 +03:00
ioperm \
2016-04-19 10:38:33 +03:00
iopl \
2015-06-08 17:19:46 +03:00
ip_mreq \
2015-01-12 19:08:59 +03:00
ipc_msg \
2015-08-03 12:40:46 +03:00
ipc_msgbuf \
2015-01-12 19:08:59 +03:00
ipc_sem \
2015-02-04 19:38:09 +03:00
ipc_shm \
2016-04-27 11:54:20 +03:00
kill \
tests: add ksysent.test
Check that syscall names and numbers defined in syscallent files
match kernel __NR_* constants defined by <asm/unistd.h>.
Tested on various platforms, including the following combinations
of architectures and kernel headers:
x86_64: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.12, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
i386: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
aarch64: 4.4-rc
alpha: 4.3
arm eabi: 4.4-rc, 4.2, 4.1
hppa: 3.18
ia64: 3.18
mips o32: 4.1
ppc: 3.18
ppc64: 3.10-rhel, 2.6.32-rhel
s390: 3.18
s390x: 3.18
sparc: 4.1
sparc: 3.18
x32: 3.19
The only platform which is known at this moment to fail the test
is CentOS-5 provided by OBS. On x86_64 instance it fails with
error: "prlimit64" syscall #300 is "fanotify_init" in syscallent.h
and on i586 it similarly fails with
error: "prlimit64" syscall #338 is "fanotify_init" in syscallent.h
So this is a real platform bug that is not likely to be worked around
on the strace side.
* tests/ksysent.c: New file.
* tests/ksysent.sed: Likewise.
* tests/ksysent.test: New test.
* tests/Makefile.am (AM_CPPFLAGS): Add -I$(builddir).
(check_PROGRAMS): Add ksysent.
(TESTS): Add ksysent.test.
(EXTRA_DIST): Add ksysent.sed.
(ksysent.h): New rule.
(BUILT_SOURCES, CLEANFILES): Add ksysent.h.
* tests/.gitignore: Add ksysent.
2015-12-10 05:06:25 +03:00
ksysent \
2016-04-17 02:02:27 +03:00
lchown \
2016-04-17 02:02:27 +03:00
lchown32 \
2016-04-06 09:18:48 +03:00
linkat \
2015-12-01 03:59:26 +03:00
llseek \
lseek \
2015-12-05 03:03:02 +03:00
lstat \
lstat64 \
2015-11-15 05:29:29 +03:00
membarrier \
2015-07-29 02:03:41 +03:00
memfd_create \
2016-01-29 04:51:54 +03:00
mincore \
2016-04-21 10:53:49 +03:00
mkdir \
2016-04-06 09:18:51 +03:00
mkdirat \
2016-03-25 12:47:13 +03:00
mknod \
2016-04-26 11:03:09 +03:00
mknodat \
2016-04-27 11:54:19 +03:00
mlock \
2015-11-15 05:35:57 +03:00
mlock2 \
2016-04-10 02:34:18 +03:00
mlockall \
2015-03-20 01:03:32 +03:00
mmap \
mmap64 \
2014-11-06 19:23:27 +03:00
mmsg \
2015-08-19 05:28:48 +03:00
mq \
2015-09-18 05:18:03 +03:00
nanosleep \
2014-05-30 01:35:34 +04:00
net-accept-connect \
2016-02-02 22:48:46 +03:00
net-y-unix \
2016-01-27 01:03:22 +03:00
net-yy-inet \
2016-01-26 01:20:54 +03:00
net-yy-unix \
2014-09-23 04:14:04 +04:00
netlink_inet_diag \
2014-12-25 03:11:40 +03:00
netlink_unix_diag \
2015-12-02 04:02:39 +03:00
newfstatat \
2016-04-27 02:17:17 +03:00
nsyscalls \
2016-04-22 23:37:19 +03:00
old_mmap \
2015-07-30 11:24:32 +03:00
oldselect \
2016-03-28 03:15:15 +03:00
open \
2016-03-25 22:40:12 +03:00
openat \
2016-04-27 11:54:21 +03:00
pause \
2015-02-15 18:52:02 +03:00
pc \
2015-12-25 03:52:42 +03:00
personality \
2015-03-23 03:04:27 +03:00
pipe \
2016-02-16 03:52:43 +03:00
poll \
2015-07-30 22:46:11 +03:00
ppoll \
2016-04-11 18:16:30 +03:00
prctl-seccomp-filter-v \
2016-04-11 18:06:28 +03:00
prctl-seccomp-strict \
2016-04-02 04:08:24 +03:00
pread64-pwrite64 \
2016-03-30 06:54:21 +03:00
preadv \
2016-03-31 03:01:58 +03:00
preadv-pwritev \
2015-09-15 05:14:38 +03:00
pselect6 \
2016-03-30 06:54:21 +03:00
pwritev \
2016-04-03 19:37:43 +03:00
read-write \
2015-11-19 22:04:32 +03:00
readdir \
2015-08-14 18:49:27 +03:00
readlink \
readlinkat \
2016-01-20 03:17:02 +03:00
readv \
2016-04-26 11:03:07 +03:00
reboot \
2016-01-20 06:26:37 +03:00
recvmsg \
2016-04-27 19:04:01 +03:00
remap_file_pages \
2016-03-01 11:55:36 +03:00
rename \
2016-04-26 19:11:48 +03:00
renameat \
renameat2 \
2015-09-18 14:27:11 +03:00
restart_syscall \
2016-04-25 11:18:22 +03:00
rmdir \
2016-02-18 03:08:30 +03:00
rt_sigpending \
2016-02-18 06:21:30 +03:00
rt_sigprocmask \
2015-08-21 18:49:14 +03:00
rt_sigqueueinfo \
2016-02-19 19:07:43 +03:00
rt_sigsuspend \
2016-02-19 06:27:09 +03:00
rt_sigtimedwait \
2016-02-17 08:24:43 +03:00
rt_tgsigqueueinfo \
2016-03-10 12:12:23 +03:00
sched_get_priority_mxx \
2016-04-25 11:18:20 +03:00
sched_rr_get_interval \
2016-01-07 03:31:33 +03:00
sched_xetaffinity \
2015-07-29 10:59:56 +03:00
sched_xetattr \
2016-03-10 12:12:24 +03:00
sched_xetparam \
2016-03-15 11:38:17 +03:00
sched_xetscheduler \
2016-04-26 11:03:11 +03:00
sched_yield \
2014-05-30 01:35:34 +04:00
scm_rights \
2016-04-12 03:20:03 +03:00
seccomp-filter \
2016-04-12 03:05:43 +03:00
seccomp-filter-v \
2016-04-11 18:09:09 +03:00
seccomp-strict \
2015-02-04 05:09:52 +03:00
select \
2016-04-18 10:10:53 +03:00
semop \
2015-08-19 04:25:39 +03:00
sendfile \
sendfile64 \
2014-05-30 01:35:34 +04:00
set_ptracer_any \
2016-04-25 11:18:21 +03:00
setdomainname \
2016-04-18 19:08:38 +03:00
setfsgid \
2016-04-18 19:10:07 +03:00
setfsgid32 \
2016-04-18 18:59:28 +03:00
setfsuid \
2016-04-18 19:03:51 +03:00
setfsuid32 \
2016-04-18 16:45:36 +03:00
setgid \
2016-04-18 16:46:47 +03:00
setgid32 \
2016-04-19 04:59:52 +03:00
setgroups \
setgroups32 \
2016-03-31 11:06:49 +03:00
sethostname \
2016-04-18 17:38:04 +03:00
setregid \
2016-04-18 17:38:57 +03:00
setregid32 \
2016-04-18 18:22:34 +03:00
setresgid \
2016-04-18 18:23:56 +03:00
setresgid32 \
2016-04-18 18:16:53 +03:00
setresuid \
2016-04-18 18:19:27 +03:00
setresuid32 \
2016-04-18 17:34:31 +03:00
setreuid \
2016-04-18 17:36:42 +03:00
setreuid32 \
2016-04-18 16:24:26 +03:00
setuid \
2016-04-18 16:41:25 +03:00
setuid32 \
2016-04-18 10:10:54 +03:00
shmxt \
2014-05-30 01:35:34 +04:00
sigaction \
2015-07-17 04:45:25 +03:00
sigaltstack \
2015-08-03 12:47:25 +03:00
signalfd \
2015-03-04 15:31:18 +03:00
sigreturn \
2016-04-11 18:04:08 +03:00
sleep \
2016-02-14 01:31:30 +03:00
splice \
2014-05-14 08:16:29 +04:00
stack-fcall \
2015-01-07 22:30:37 +03:00
stat \
2015-12-05 03:03:49 +03:00
stat64 \
2014-09-22 02:42:45 +04:00
statfs \
Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
2016-04-26 03:21:26 +03:00
statfs64 \
2016-04-06 09:18:50 +03:00
swap \
2016-04-25 11:18:23 +03:00
symlink \
2016-04-19 10:38:34 +03:00
symlinkat \
2016-04-26 11:03:10 +03:00
sync \
2016-04-06 03:02:08 +03:00
sync_file_range \
sync_file_range2 \
2015-08-03 06:30:49 +03:00
sysinfo \
2016-03-25 12:46:19 +03:00
syslog \
2016-02-14 01:42:52 +03:00
tee \
2015-08-18 16:25:36 +03:00
time \
2015-09-16 19:31:43 +03:00
timer_create \
2015-09-17 21:25:12 +03:00
timer_xettime \
2015-09-17 23:05:20 +03:00
timerfd_xettime \
2015-08-04 15:52:55 +03:00
times \
2015-08-21 00:09:32 +03:00
times-fail \
2015-12-01 03:02:45 +03:00
truncate \
2015-12-01 03:32:40 +03:00
truncate64 \
2015-02-01 03:20:32 +03:00
uio \
2016-03-01 11:55:37 +03:00
umask \
2015-12-07 03:06:35 +03:00
umount \
umount2 \
2015-03-31 21:52:57 +03:00
umovestr \
umovestr2 \
2016-04-27 03:08:06 +03:00
umovestr3 \
2016-03-01 11:55:35 +03:00
uname \
2015-07-15 03:09:08 +03:00
unix-pair-send-recv \
2016-04-26 11:03:08 +03:00
unlink \
2016-04-11 18:04:08 +03:00
unlinkat \
2015-11-15 05:22:44 +03:00
userfaultfd \
2015-07-15 12:02:17 +03:00
utime \
2015-07-15 18:34:59 +03:00
utimensat \
2016-04-26 18:35:57 +03:00
utimes \
2015-12-31 02:00:43 +03:00
vfork-f \
2016-02-14 02:18:15 +03:00
vmsplice \
2015-07-15 04:50:27 +03:00
wait \
2015-08-18 22:21:36 +03:00
xattr \
xet_robust_list \
2015-09-17 23:44:22 +03:00
xetitimer \
2016-02-14 20:14:15 +03:00
xetpgid \
2016-03-17 12:30:45 +03:00
xetpriority \
2015-09-18 19:15:49 +03:00
xettimeofday \
2015-08-18 22:21:36 +03:00
# end of check_PROGRAMS
2014-04-17 03:28:29 +04:00
2016-02-09 07:16:41 +03:00
attach_f_p_LDADD = -lrt -lpthread $( LDADD)
2016-01-02 15:05:14 +03:00
clock_xettime_LDADD = -lrt $( LDADD)
2016-02-23 02:42:23 +03:00
count_f_LDADD = -lpthread $( LDADD)
2016-01-02 15:05:14 +03:00
filter_unavailable_LDADD = -lpthread $( LDADD)
build: add -D_FILE_OFFSET_BITS=64 to _CPPFLAGS instead of _CFLAGS
* tests/Makefile.am (fstat64_CFLAGS): Rename to fstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(fstatat64_CFLAGS): Rename to fstatat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(ftruncate64_CFLAGS): Rename to ftruncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(lstat64_CFLAGS): Rename to lstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(mmap64_CFLAGS): Rename to mmap64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(newfstatat_CFLAGS): Rename to newfstatat_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(stat64_CFLAGS): Rename to stat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(statfs_CFLAGS): Rename to statfs_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(truncate64_CFLAGS): Rename to truncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(uio_CFLAGS): Rename to uio_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
2015-12-08 03:24:53 +03:00
fstat64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
fstatat64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
ftruncate64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
lstat64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
mmap64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-01-02 15:05:14 +03:00
mq_LDADD = -lrt $( LDADD)
build: add -D_FILE_OFFSET_BITS=64 to _CPPFLAGS instead of _CFLAGS
* tests/Makefile.am (fstat64_CFLAGS): Rename to fstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(fstatat64_CFLAGS): Rename to fstatat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(ftruncate64_CFLAGS): Rename to ftruncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(lstat64_CFLAGS): Rename to lstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(mmap64_CFLAGS): Rename to mmap64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(newfstatat_CFLAGS): Rename to newfstatat_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(stat64_CFLAGS): Rename to stat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(statfs_CFLAGS): Rename to statfs_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(truncate64_CFLAGS): Rename to truncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(uio_CFLAGS): Rename to uio_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
2015-12-08 03:24:53 +03:00
newfstatat_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-01-02 15:05:14 +03:00
pc_LDADD = $( dl_LIBS) $( LDADD)
2016-04-02 04:08:24 +03:00
pread64_pwrite64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-03-30 06:54:21 +03:00
preadv_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-03-31 03:01:58 +03:00
preadv_pwritev_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-03-30 06:54:21 +03:00
pwritev_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
build: add -D_FILE_OFFSET_BITS=64 to _CPPFLAGS instead of _CFLAGS
* tests/Makefile.am (fstat64_CFLAGS): Rename to fstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(fstatat64_CFLAGS): Rename to fstatat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(ftruncate64_CFLAGS): Rename to ftruncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(lstat64_CFLAGS): Rename to lstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(mmap64_CFLAGS): Rename to mmap64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(newfstatat_CFLAGS): Rename to newfstatat_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(stat64_CFLAGS): Rename to stat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(statfs_CFLAGS): Rename to statfs_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(truncate64_CFLAGS): Rename to truncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(uio_CFLAGS): Rename to uio_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
2015-12-08 03:24:53 +03:00
stat64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
statfs_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-01-02 15:05:14 +03:00
times_LDADD = -lrt $( LDADD)
build: add -D_FILE_OFFSET_BITS=64 to _CPPFLAGS instead of _CFLAGS
* tests/Makefile.am (fstat64_CFLAGS): Rename to fstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(fstatat64_CFLAGS): Rename to fstatat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(ftruncate64_CFLAGS): Rename to ftruncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(lstat64_CFLAGS): Rename to lstat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(mmap64_CFLAGS): Rename to mmap64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(newfstatat_CFLAGS): Rename to newfstatat_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(stat64_CFLAGS): Rename to stat64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(statfs_CFLAGS): Rename to statfs_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(truncate64_CFLAGS): Rename to truncate64_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
(uio_CFLAGS): Rename to uio_CPPFLAGS,
replace $(AM_CFLAGS) with $(AM_CPPFLAGS).
2015-12-08 03:24:53 +03:00
truncate64_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
uio_CPPFLAGS = $( AM_CPPFLAGS) -D_FILE_OFFSET_BITS= 64
2016-03-30 06:54:21 +03:00
2014-06-17 01:45:52 +04:00
stack_fcall_SOURCES = stack-fcall.c \
stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
2013-05-08 03:32:01 +04:00
2016-01-02 02:09:02 +03:00
i f U S E _ L I B U N W I N D
LIBUNWIND_TESTS = strace-k.test
e l s e
LIBUNWIND_TESTS =
e n d i f
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
DECODER_TESTS = \
2015-12-08 20:38:12 +03:00
_newselect.test \
2016-04-21 10:53:51 +03:00
access.test \
2016-03-09 09:07:06 +03:00
acct.test \
2015-09-17 00:58:36 +03:00
adjtimex.test \
2015-08-26 15:49:07 +03:00
aio.test \
2016-02-14 19:56:58 +03:00
alarm.test \
2015-07-26 02:55:51 +03:00
bpf.test \
2014-12-05 03:21:23 +03:00
caps.test \
2016-03-07 13:57:43 +03:00
chmod.test \
2016-04-16 02:03:29 +03:00
chown.test \
2016-04-16 02:03:29 +03:00
chown32.test \
2016-03-31 11:06:52 +03:00
chroot.test \
2016-04-22 04:13:27 +03:00
clock_adjtime.test \
2015-09-18 17:24:51 +03:00
clock_nanosleep.test \
2015-09-18 00:57:22 +03:00
clock_xettime.test \
2016-02-13 06:45:32 +03:00
copy_file_range.test \
2016-03-25 12:47:14 +03:00
creat.test \
2016-03-10 05:41:31 +03:00
dup.test \
dup2.test \
dup3.test \
2016-04-08 10:59:14 +03:00
epoll_create.test \
2015-08-02 02:04:32 +03:00
epoll_create1.test \
2016-04-08 10:59:15 +03:00
epoll_ctl.test \
2016-04-08 10:59:16 +03:00
epoll_wait.test \
2015-08-02 00:08:13 +03:00
eventfd.test \
2016-02-07 17:37:53 +03:00
execve-v.test \
2016-04-11 18:04:08 +03:00
execve.test \
2016-02-07 17:37:53 +03:00
execveat-v.test \
2016-04-11 18:04:08 +03:00
execveat.test \
2016-03-25 12:47:15 +03:00
faccessat.test \
2015-01-10 03:08:58 +03:00
fanotify_mark.test \
2016-04-21 10:53:50 +03:00
fchdir.test \
2016-03-10 13:29:32 +03:00
fchmod.test \
2016-04-02 16:13:16 +03:00
fchmodat.test \
2016-04-18 01:24:41 +03:00
fchown.test \
2016-04-18 01:24:41 +03:00
fchown32.test \
2016-04-02 17:07:02 +03:00
fchownat.test \
fcntl: skip F_GETLK64, F_SETLK64, and F_SETLKW64 in fcntl syscall parser
As the kernel recognizes F_GETLK64, F_SETLK64, and F_SETLKW64 commands
in fcntl64 syscall only, do not parse their structures in fcntl parser.
* xlat/fcntlcmds.in: Move F_GETLK64, F_SETLK64, and F_SETLKW64 ...
* xlat/fcntl64cmds.in: ... here.
* fcntl.c: Include "xlat/fcntl64cmds.h".
(print_fcntl): Move printing of first two syscall arguments
and handling of F_GETLK64, F_SETLK64, and F_SETLKW64 commands ...
(SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): ... here.
* tests/fcntl.c: New file, based on struct_flock.c.
* tests/fcntl64.c: Likewise.
* tests/struct_flock.c (test_flock_einval, create_sample): New functions.
(test_flock): Use test_flock_einval.
(test_flock64, main): Remove.
* tests/fcntl.test: New test.
* tests/fcntl64.test: Likewise.
* tests/struct_flock.test: Remove.
* tests/Makefile.am (check_PROGRAMS): Add fcntl and fcntl64,
remove struct_flock.
(TESTS): Add fcntl.test and fcntl64.test, remove struct_flock.test.
(EXTRA_DIST) Add struct_flock.c.
* tests/.gitignore: Add fcntl and fcntl64, remove struct_flock.
2015-12-05 03:52:01 +03:00
fcntl.test \
fcntl64.test \
2016-03-31 11:06:51 +03:00
fdatasync.test \
2015-11-23 00:29:32 +03:00
file_handle.test \
2016-03-15 11:38:34 +03:00
flock.test \
2015-12-05 03:02:44 +03:00
fstat.test \
fstat64.test \
2015-12-02 04:02:39 +03:00
fstatat64.test \
Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
2016-04-26 03:21:26 +03:00
fstatfs.test \
fstatfs64.test \
2016-03-31 11:06:50 +03:00
fsync.test \
2015-12-01 03:02:45 +03:00
ftruncate.test \
2015-12-01 03:32:40 +03:00
ftruncate64.test \
2016-04-26 18:34:03 +03:00
futimesat.test \
2016-04-28 00:58:43 +03:00
get_mempolicy.test \
2016-03-23 16:38:35 +03:00
getcwd.test \
2014-09-10 04:07:32 +04:00
getdents.test \
2015-11-19 19:39:32 +03:00
getdents64.test \
tests: extend test coverage of getuid/getgid family syscalls
Add strict tests for getuid, getuid32, getgid, getgid32, geteuid,
geteuid32, getegid, and getegid32 syscalls.
* tests/getegid.c: New file.
* tests/getegid.test: New test.
* tests/getegid32.c: New file.
* tests/getegid32.test: New test.
* tests/geteuid.c: New file.
* tests/geteuid.test: New test.
* tests/geteuid32.c: New file.
* tests/geteuid32.test: New test.
* tests/getgid.c: New file.
* tests/getgid.test: New test.
* tests/getgid32.c: New file.
* tests/getgid32.test: New test.
* tests/getuid.c: New file.
* tests/getuid.test: New test.
* tests/getuid32.c: New file.
* tests/getuid32.test: New test.
* tests/.gitignore: Add getuid, getuid32, getgid, getgid32, geteuid,
* geteuid32, getegid, and getegid32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getegid.test, getegid32.test, geteuid.test,
geteuid32.test, getgid.test, getgid32.test, getuid.test,
and getuid32.test.
2016-04-19 21:28:03 +03:00
getegid.test \
getegid32.test \
geteuid.test \
geteuid32.test \
getgid.test \
getgid32.test \
2016-04-19 04:59:52 +03:00
getgroups.test \
getgroups32.test \
2016-04-21 10:53:52 +03:00
getpgrp.test \
2015-02-04 19:38:09 +03:00
getrandom.test \
2016-04-19 20:42:51 +03:00
getresgid.test \
2016-04-19 20:45:26 +03:00
getresgid32.test \
2016-04-19 20:30:23 +03:00
getresuid.test \
2016-04-19 20:34:00 +03:00
getresuid32.test \
2016-02-19 04:57:33 +03:00
getrusage.test \
2016-04-21 04:40:01 +03:00
getsid.test \
tests: extend test coverage of getuid/getgid family syscalls
Add strict tests for getuid, getuid32, getgid, getgid32, geteuid,
geteuid32, getegid, and getegid32 syscalls.
* tests/getegid.c: New file.
* tests/getegid.test: New test.
* tests/getegid32.c: New file.
* tests/getegid32.test: New test.
* tests/geteuid.c: New file.
* tests/geteuid.test: New test.
* tests/geteuid32.c: New file.
* tests/geteuid32.test: New test.
* tests/getgid.c: New file.
* tests/getgid.test: New test.
* tests/getgid32.c: New file.
* tests/getgid32.test: New test.
* tests/getuid.c: New file.
* tests/getuid.test: New test.
* tests/getuid32.c: New file.
* tests/getuid32.test: New test.
* tests/.gitignore: Add getuid, getuid32, getgid, getgid32, geteuid,
* geteuid32, getegid, and getegid32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getegid.test, getegid32.test, geteuid.test,
geteuid32.test, getgid.test, getgid32.test, getuid.test,
and getuid32.test.
2016-04-19 21:28:03 +03:00
getuid.test \
getuid32.test \
2016-01-09 03:06:06 +03:00
getxxid.test \
Implement IPPROTO_IP control messages decoding
* net.c: Include "xlat/ip_cmsg_types.h".
(print_cmsg_ip_pktinfo, print_cmsg_ip_ttl, print_cmsg_ip_tos,
print_cmsg_ip_opts, print_cmsg_ip_recverr, print_cmsg_ip_checksum,
print_cmsg_ip_origdstaddr): New functions.
(print_cmsg_type_data): Add generic SOL_IP level decoding.
Use these functions for decoding of IP_PKTINFO, IP_TTL, IP_TOS,
IP_RECVOPTS, IP_RETOPTS, IP_RECVERR, IP_ORIGDSTADDR, IP_CHECKSUM,
and SCM_SECURITY type messages.
* xlat/ip_cmsg_types.in: New file.
* xlat/sockipoptions.in: Move IP_RETOPTS before IP_RECVRETOPTS.
* tests/inet-cmsg.c: New file.
* tests/inet-cmsg.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add inet-cmsg.
(TESTS): Add inet-cmsg.test.
* tests/.gitignore: Add inet-cmsg.
Suggested-by: Orion Poplawski <orion@cora.nwra.com>
2015-11-21 03:03:54 +03:00
inet-cmsg.test \
ioctl: take all 32 bits of ioctl commands into account
Historically, only 16 bits (8-bit number and 8-bit type) of 32-bit ioctl
commands were used for decoding, which was the source for numerous
annoying collisions like this:
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, MGSL_IOCGPARAMS or MMTIMER_GETRES or MTIOCTOP or SNDCTL_MIDI_MPUMODE, 0x7fffd47f7338) = -1 ENOTTY (Inappropriate ioctl for device)
The solution is to use all 32 bits for decoding, not just "number" and
"type", but also "size" and "direction".
As some architectures override defaults that come from asm-generic/ and
provide alternative definitions for some ioctl commands, we support
per-architecture ioctl definitions and merge them with common
definitions at build time. During the merge, we used to keep both
generic and architecture-specific definitions, now architecture-specific
definitions have precedence over generic ones -- ioctlsort omits
definitions from asm-generic/ for those ioctl names that have different
definitions in asm/.
Additional bits of "direction" are architecture specific -- the number
of bits and their values differ between architectures. To reduce
architecture differences in the source code, we keep "direction" in
symbolic form and compile it in ioctlsort.
Additional bits of "size" are also architecture specific -- not only the
number of bits differ between architectures, but sizes of many types
depend on sizeof(long). To reduce architecture differences in the
source code, we keep 32-bit and 64-bit versions of common ioctl
definitions, and use the appropriate version for each architecture and
personality.
To implement this, the tools for generating ioctl definitions from
kernel headers have been rewritten, and the source format of ioctl
definitions has been extended. The final ioctlent*.h files that are
included by syscall.c are now generated from source ioctls_inc*.h and
ioctls_arch*.h files at build time with ioctlsort.
* ioctl.c (ioctl_lookup): Use all 32 bits of ioctl command code.
* ioctlsort.c: Rewritten.
* linux/32/ioctls_inc.h: New file.
* linux/64/ioctls_inc.h: New file.
* linux/aarch64/ioctls_arch0.h: New file.
* linux/aarch64/ioctls_arch1.h: New file.
* linux/aarch64/ioctls_inc0.h: New file.
* linux/aarch64/ioctls_inc1.h: New file.
* linux/alpha/ioctls_arch0.h: New file.
* linux/alpha/ioctls_inc0.h: New file.
* linux/arc/ioctls_arch0.h: New file.
* linux/arc/ioctls_inc0.h: New file.
* linux/arm/ioctls_arch0.h: New file.
* linux/arm/ioctls_inc0.h: New file.
* linux/avr32/ioctls_arch0.h: New file.
* linux/avr32/ioctls_inc0.h: New file.
* linux/bfin/ioctls_arch0.h: New file.
* linux/bfin/ioctls_inc0.h: New file.
* linux/hppa/ioctls_arch0.h: New file.
* linux/hppa/ioctls_inc0.h: New file.
* linux/i386/ioctls_arch0.h: New file.
* linux/i386/ioctls_inc0.h: New file.
* linux/ia64/ioctls_arch0.h: New file.
* linux/ia64/ioctls_inc0.h: New file.
* linux/m68k/ioctls_arch0.h: New file.
* linux/m68k/ioctls_inc0.h: New file.
* linux/metag/ioctls_arch0.h: New file.
* linux/metag/ioctls_inc0.h: New file.
* linux/microblaze/ioctls_arch0.h: New file.
* linux/microblaze/ioctls_inc0.h: New file.
* linux/mips/ioctls_arch0.h: New file.
* linux/mips/ioctls_inc0.h: New file.
* linux/or1k/ioctls_arch0.h: New file.
* linux/or1k/ioctls_inc0.h: New file.
* linux/powerpc/ioctls_arch0.h: New file.
* linux/powerpc/ioctls_inc0.h: New file.
* linux/powerpc64/ioctls_arch0.h: New file.
* linux/powerpc64/ioctls_arch1.h: New file.
* linux/powerpc64/ioctls_inc0.h: New file.
* linux/powerpc64/ioctls_inc1.h: New file.
* linux/s390/ioctls_arch0.h: New file.
* linux/s390/ioctls_inc0.h: New file.
* linux/s390x/ioctls_arch0.h: New file.
* linux/s390x/ioctls_inc0.h: New file.
* linux/sh/ioctls_arch0.h: New file.
* linux/sh/ioctls_inc0.h: New file.
* linux/sh64/ioctls_arch0.h: New file.
* linux/sh64/ioctls_inc0.h: New file.
* linux/sparc/ioctls_arch0.h: New file.
* linux/sparc/ioctls_inc0.h: New file.
* linux/sparc64/ioctls_arch0.h: New file.
* linux/sparc64/ioctls_arch2.h: New file.
* linux/sparc64/ioctls_inc0.h: New file.
* linux/sparc64/ioctls_inc2.h: New file.
* linux/tile/ioctls_arch0.h: New file.
* linux/tile/ioctls_arch1.h: New file.
* linux/tile/ioctls_inc0.h: New file.
* linux/tile/ioctls_inc1.h: New file.
* linux/x32/ioctls_arch0.h: New file.
* linux/x32/ioctls_arch1.h: New file.
* linux/x32/ioctls_inc0.h: New file.
* linux/x32/ioctls_inc1.h: New file.
* linux/x86_64/ioctls_arch0.h: New file.
* linux/x86_64/ioctls_arch1.h: New file.
* linux/x86_64/ioctls_inc0.h: New file.
* linux/x86_64/ioctls_inc1.h: New file.
* linux/xtensa/ioctls_arch0.h: New file.
* linux/xtensa/ioctls_inc0.h: New file.
* linux/aarch64/ioctlent.h.in: Remove.
* linux/aarch64/ioctlent1.h: Remove.
* linux/alpha/ioctlent.h.in: Remove.
* linux/arc/ioctlent.h.in: Remove.
* linux/arm/ioctlent.h.in: Remove.
* linux/avr32/ioctlent.h.in: Remove.
* linux/bfin/ioctlent.h.in: Remove.
* linux/hppa/ioctlent.h.in: Remove.
* linux/i386/ioctlent.h.in: Remove.
* linux/ia64/ioctlent.h.in: Remove.
* linux/ioctlent.h.in: Remove.
* linux/ioctlent.sh: Remove.
* linux/m68k/ioctlent.h.in: Remove.
* linux/metag/ioctlent.h.in: Remove.
* linux/microblaze/ioctlent.h.in: Remove.
* linux/mips/ioctlent.h.in: Remove.
* linux/mips/ioctlent.sh: Remove.
* linux/or1k/ioctlent.h.in: Remove.
* linux/powerpc/ioctlent.h.in: Remove.
* linux/powerpc64/ioctlent.h: Remove.
* linux/powerpc64/ioctlent1.h: Remove.
* linux/s390/ioctlent.h.in: Remove.
* linux/s390x/ioctlent.h.in: Remove.
* linux/sh/ioctlent.h.in: Remove.
* linux/sh64/ioctlent.h.in: Remove.
* linux/sparc/ioctlent.h.in: Remove.
* linux/sparc64/ioctlent.h.in: Remove.
* linux/sparc64/ioctlent2.h: Remove.
* linux/tile/ioctlent.h.in: Remove.
* linux/tile/ioctlent1.h: Remove.
* linux/x32/ioctlent.h.in: Remove.
* linux/x32/ioctlent1.h: Remove.
* linux/x86_64/ioctlent.h.in: Remove.
* linux/x86_64/ioctlent1.h: Remove.
* linux/xtensa/ioctlent.h.in: Remove.
* linux/x86_64/ioctlent2.h: Include ioctlent0.h instead of ioctlent.h.
* syscall.c (struct_ioctlent ioctlent0): Likewise.
* Makefile.am: Remove all ioctlent-related definitions.
Define the list of ioctlent*.h files that have to be generated by
presence of $(srcdir)/$(OS)/$(ARCH)/ioctls_inc*.h files.
Add rules for ioctlent*.h files generation.
(EXTRA_DIST): Update.
* maint/ioctls_gen.sh: New file.
* maint/ioctls_hex.sh: New file.
* maint/ioctls_sym.sh: New file.
* maint/print_ioctlent.c: New file.
* HACKING-scripts: Update for ioctlent.sh -> ioctls_gen.sh migration.
* .gitignore: Add ioctlent[012].h and ioctls_all[012].h.
* configure.ac (AC_CHECK_HEADERS): Add linux/hiddev.h
and linux/mmtimer.h for tests.
* tests/ioctl.c: New file.
* tests/ioctl.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add ioctl.
(TESTS): Add ioctl.test.
* tests/.gitignore: Add ioctl.
2015-01-19 20:02:16 +03:00
ioctl.test \
2016-04-19 10:38:32 +03:00
ioperm.test \
2016-04-19 10:38:33 +03:00
iopl.test \
2015-06-08 17:19:46 +03:00
ip_mreq.test \
2015-01-12 19:08:59 +03:00
ipc_msg.test \
2015-08-03 12:40:46 +03:00
ipc_msgbuf.test \
2015-01-12 19:08:59 +03:00
ipc_sem.test \
2015-12-08 20:33:52 +03:00
ipc_shm.test \
2016-04-27 11:54:20 +03:00
kill.test \
2016-04-17 02:02:27 +03:00
lchown.test \
2016-04-17 02:02:27 +03:00
lchown32.test \
2016-04-06 09:18:48 +03:00
linkat.test \
2015-12-01 03:59:26 +03:00
llseek.test \
lseek.test \
2015-12-05 03:03:02 +03:00
lstat.test \
lstat64.test \
2015-12-08 20:33:52 +03:00
membarrier.test \
memfd_create.test \
2016-01-29 04:51:54 +03:00
mincore.test \
2016-04-21 10:53:49 +03:00
mkdir.test \
2016-04-06 09:18:51 +03:00
mkdirat.test \
2016-03-25 12:47:13 +03:00
mknod.test \
2016-04-26 11:03:09 +03:00
mknodat.test \
2016-04-27 11:54:19 +03:00
mlock.test \
2015-12-08 20:33:52 +03:00
mlock2.test \
2016-04-10 02:34:18 +03:00
mlockall.test \
2015-12-08 20:33:52 +03:00
mmap.test \
mmap64.test \
mmsg.test \
2015-08-19 05:28:48 +03:00
mq.test \
2015-12-08 20:33:52 +03:00
nanosleep.test \
2016-02-02 22:48:46 +03:00
net-y-unix.test \
2016-01-27 01:03:22 +03:00
net-yy-inet.test \
2016-01-26 01:20:54 +03:00
net-yy-unix.test \
2015-12-08 20:33:52 +03:00
net.test \
newfstatat.test \
2016-04-27 02:17:17 +03:00
nsyscalls.test \
2016-04-22 23:37:19 +03:00
old_mmap.test \
2015-12-08 20:33:52 +03:00
oldselect.test \
2016-03-28 03:15:15 +03:00
open.test \
2016-03-25 22:40:12 +03:00
openat.test \
2016-04-27 11:54:21 +03:00
pause.test \
2015-12-25 03:52:42 +03:00
personality.test \
2015-12-08 20:33:52 +03:00
pipe.test \
2016-02-16 03:52:43 +03:00
poll.test \
2015-12-08 20:33:52 +03:00
ppoll.test \
2016-04-11 18:16:30 +03:00
prctl-seccomp-filter-v.test \
2016-04-11 18:06:28 +03:00
prctl-seccomp-strict.test \
2016-04-02 04:08:24 +03:00
pread64-pwrite64.test \
2016-03-31 03:01:58 +03:00
preadv-pwritev.test \
2016-04-11 18:04:08 +03:00
preadv.test \
2015-09-15 05:14:38 +03:00
pselect6.test \
2016-03-30 06:54:21 +03:00
pwritev.test \
2016-04-03 19:37:43 +03:00
read-write.test \
2015-11-19 22:04:32 +03:00
readdir.test \
2015-08-14 18:49:27 +03:00
readlink.test \
readlinkat.test \
2016-01-20 03:17:02 +03:00
readv.test \
2016-04-26 11:03:07 +03:00
reboot.test \
2016-01-20 06:26:37 +03:00
recvmsg.test \
2016-04-27 19:04:01 +03:00
remap_file_pages.test \
2016-03-01 11:55:36 +03:00
rename.test \
2016-03-25 12:47:16 +03:00
renameat.test \
2016-04-26 19:11:48 +03:00
renameat2.test \
2016-04-25 11:18:22 +03:00
rmdir.test \
2016-02-18 03:08:30 +03:00
rt_sigpending.test \
2016-02-18 06:21:30 +03:00
rt_sigprocmask.test \
2015-08-21 18:49:14 +03:00
rt_sigqueueinfo.test \
2016-02-19 19:07:43 +03:00
rt_sigsuspend.test \
2016-02-19 06:27:09 +03:00
rt_sigtimedwait.test \
2016-02-17 08:24:43 +03:00
rt_tgsigqueueinfo.test \
2016-03-10 12:12:23 +03:00
sched_get_priority_mxx.test \
2016-04-25 11:18:20 +03:00
sched_rr_get_interval.test \
2016-01-07 03:31:33 +03:00
sched_xetaffinity.test \
2015-07-29 10:59:56 +03:00
sched_xetattr.test \
2016-03-10 12:12:24 +03:00
sched_xetparam.test \
2016-03-15 11:38:17 +03:00
sched_xetscheduler.test \
2016-04-26 11:03:11 +03:00
sched_yield.test \
2014-05-30 01:35:34 +04:00
scm_rights-fd.test \
2016-04-12 03:05:43 +03:00
seccomp-filter-v.test \
2016-04-12 03:20:03 +03:00
seccomp-filter.test \
2016-04-11 18:09:09 +03:00
seccomp-strict.test \
2015-02-04 05:09:52 +03:00
select .test \
2016-04-18 10:10:53 +03:00
semop.test \
2015-08-19 04:25:39 +03:00
sendfile.test \
sendfile64.test \
2016-04-25 11:18:21 +03:00
setdomainname.test \
2016-04-18 19:08:38 +03:00
setfsgid.test \
2016-04-18 19:10:07 +03:00
setfsgid32.test \
2016-04-18 18:59:28 +03:00
setfsuid.test \
2016-04-18 19:03:51 +03:00
setfsuid32.test \
2016-04-18 16:45:36 +03:00
setgid.test \
2016-04-18 16:46:47 +03:00
setgid32.test \
2016-04-19 04:59:52 +03:00
setgroups.test \
setgroups32.test \
2016-03-31 11:06:49 +03:00
sethostname.test \
2016-04-18 17:38:04 +03:00
setregid.test \
2016-04-18 17:38:57 +03:00
setregid32.test \
2016-04-18 18:22:34 +03:00
setresgid.test \
2016-04-18 18:23:56 +03:00
setresgid32.test \
2016-04-18 18:16:53 +03:00
setresuid.test \
2016-04-18 18:19:27 +03:00
setresuid32.test \
2016-04-18 17:34:31 +03:00
setreuid.test \
2016-04-18 17:36:42 +03:00
setreuid32.test \
2016-04-18 16:24:26 +03:00
setuid.test \
2016-04-18 16:41:25 +03:00
setuid32.test \
2016-04-18 10:10:54 +03:00
shmxt.test \
2014-02-02 19:20:11 +04:00
sigaction.test \
2015-07-17 04:45:25 +03:00
sigaltstack.test \
2015-08-03 12:47:25 +03:00
signalfd.test \
2015-03-04 15:31:18 +03:00
sigreturn.test \
2016-02-14 01:31:30 +03:00
splice.test \
2014-02-02 19:20:11 +04:00
stat.test \
2015-12-05 03:03:49 +03:00
stat64.test \
2014-09-22 02:42:45 +04:00
statfs.test \
Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
2016-04-26 03:21:26 +03:00
statfs64.test \
2015-01-29 18:19:21 +03:00
sun_path.test \
2016-04-06 09:18:50 +03:00
swap.test \
2016-04-25 11:18:23 +03:00
symlink.test \
2016-04-19 10:38:34 +03:00
symlinkat.test \
2016-04-26 11:03:10 +03:00
sync.test \
2016-04-06 03:02:08 +03:00
sync_file_range.test \
sync_file_range2.test \
2015-12-08 20:33:52 +03:00
sysinfo.test \
2016-03-25 12:46:19 +03:00
syslog.test \
2016-02-14 01:42:52 +03:00
tee.test \
2015-08-18 16:25:36 +03:00
time.test \
2015-09-16 19:31:43 +03:00
timer_create.test \
2015-09-17 21:25:12 +03:00
timer_xettime.test \
2015-09-17 23:05:20 +03:00
timerfd_xettime.test \
2015-08-21 00:09:32 +03:00
times-fail.test \
2015-12-08 20:33:52 +03:00
times.test \
2015-12-01 03:02:45 +03:00
truncate.test \
2015-12-01 03:32:40 +03:00
truncate64.test \
2015-12-08 20:33:52 +03:00
uio.test \
2016-03-01 11:55:37 +03:00
umask.test \
2015-12-07 03:06:35 +03:00
umount.test \
umount2.test \
2015-03-31 21:52:57 +03:00
umovestr.test \
umovestr2.test \
2016-04-27 03:08:06 +03:00
umovestr3.test \
2016-03-01 11:55:35 +03:00
uname.test \
2016-04-26 11:03:08 +03:00
unlink.test \
2016-04-06 09:18:49 +03:00
unlinkat.test \
2015-11-15 05:22:44 +03:00
userfaultfd.test \
2015-07-15 12:02:17 +03:00
utime.test \
2015-07-15 18:34:59 +03:00
utimensat.test \
2016-04-26 18:35:57 +03:00
utimes.test \
2016-02-14 02:18:15 +03:00
vmsplice.test \
2015-07-15 04:50:27 +03:00
wait.test \
2015-07-15 03:09:08 +03:00
xattr.test \
2015-08-18 22:21:36 +03:00
xet_robust_list.test \
2015-09-17 23:44:22 +03:00
xetitimer.test \
2016-02-14 20:14:15 +03:00
xetpgid.test \
2016-03-17 12:30:45 +03:00
xetpriority.test \
2015-09-18 19:15:49 +03:00
xettimeofday.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
# end of DECODER_TESTS
MISC_TESTS = \
2016-02-09 07:16:41 +03:00
attach-f-p.test \
2016-01-22 17:37:14 +03:00
attach-p-cmd.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
bexecve.test \
count-f.test \
count.test \
detach-running.test \
2014-02-02 19:20:11 +04:00
detach-sleeping.test \
detach-stopped.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
dumpio.test \
filter-unavailable.test \
fork-f.test \
ksysent.test \
2016-02-05 04:19:37 +03:00
opipe.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
pc.test \
qual_syscall.test \
2016-02-08 19:47:40 +03:00
redirect.test \
2015-04-08 00:18:23 +03:00
restart_syscall.test \
2016-03-24 03:31:23 +03:00
strace-T.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
strace-f.test \
2016-03-24 04:27:03 +03:00
strace-r.test \
2016-03-24 03:59:32 +03:00
strace-t.test \
2016-03-24 04:03:31 +03:00
strace-tt.test \
2016-03-24 04:10:02 +03:00
strace-ttt.test \
tests: split out tests of specific decoders
Split TESTS into three groups: tests of specific decoders, libunwind
tests, and all other tests.
* tests/Makefile.am (TESTS): Move attach-f-p.test, attach-p-cmd.test,
bexecve.test, count-f.test, count.test, detach-running.test,
detach-sleeping.test, detach-stopped.test, dumpio.test,
filter-unavailable.test, fork-f.test, ksysent.test, opipe.test,
pc.test, qual_syscall.test, redirect.test, restart_syscall.test,
strace-f.test, and vfork-f.test to MISC_TESTS.
Move remaining tests except $(LIBUNWIND_TESTS) to DECODER_TESTS.
Add $(DECODER_TESTS) and $(MISC_TESTS).
2016-03-24 02:07:02 +03:00
vfork-f.test \
# end of MISC_TESTS
TESTS = $( DECODER_TESTS) $( MISC_TESTS) $( LIBUNWIND_TESTS)
2016-01-02 02:09:02 +03:00
XFAIL_TESTS_ =
XFAIL_TESTS_m32 = $( LIBUNWIND_TESTS)
XFAIL_TESTS_mx32 = $( LIBUNWIND_TESTS)
XFAIL_TESTS = $( XFAIL_TESTS_$( MPERS_NAME) )
2011-02-27 03:28:50 +03:00
2015-04-08 00:18:23 +03:00
TEST_LOG_COMPILER = env
AM_TEST_LOG_FLAGS = STRACE_ARCH = $( ARCH) $( srcdir) /run.sh
2013-06-18 19:28:47 +04:00
2015-03-18 22:14:02 +03:00
EXTRA_DIST = init.sh run.sh match.awk \
2014-12-05 03:21:23 +03:00
caps.awk \
2016-02-23 02:42:23 +03:00
count-f.expected \
2015-02-01 03:20:32 +03:00
dumpio.expected \
2015-08-02 00:08:13 +03:00
eventfd.expected \
2015-03-17 20:07:57 +03:00
fanotify_mark.expected \
2015-06-29 14:57:44 +03:00
filter-unavailable.expected \
2015-12-02 04:02:39 +03:00
fstatat.c \
2015-12-05 03:02:44 +03:00
fstatx.c \
2016-04-19 20:30:23 +03:00
getresugid.c \
2015-06-08 17:19:46 +03:00
ip_mreq.expected \
2015-03-17 20:07:57 +03:00
ipc.sh \
2015-08-03 12:40:46 +03:00
ipc_msgbuf.expected \
tests: add ksysent.test
Check that syscall names and numbers defined in syscallent files
match kernel __NR_* constants defined by <asm/unistd.h>.
Tested on various platforms, including the following combinations
of architectures and kernel headers:
x86_64: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.12, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
i386: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
aarch64: 4.4-rc
alpha: 4.3
arm eabi: 4.4-rc, 4.2, 4.1
hppa: 3.18
ia64: 3.18
mips o32: 4.1
ppc: 3.18
ppc64: 3.10-rhel, 2.6.32-rhel
s390: 3.18
s390x: 3.18
sparc: 4.1
sparc: 3.18
x32: 3.19
The only platform which is known at this moment to fail the test
is CentOS-5 provided by OBS. On x86_64 instance it fails with
error: "prlimit64" syscall #300 is "fanotify_init" in syscallent.h
and on i586 it similarly fails with
error: "prlimit64" syscall #338 is "fanotify_init" in syscallent.h
So this is a real platform bug that is not likely to be worked around
on the strace side.
* tests/ksysent.c: New file.
* tests/ksysent.sed: Likewise.
* tests/ksysent.test: New test.
* tests/Makefile.am (AM_CPPFLAGS): Add -I$(builddir).
(check_PROGRAMS): Add ksysent.
(TESTS): Add ksysent.test.
(EXTRA_DIST): Add ksysent.sed.
(ksysent.h): New rule.
(BUILT_SOURCES, CLEANFILES): Add ksysent.h.
* tests/.gitignore: Add ksysent.
2015-12-10 05:06:25 +03:00
ksysent.sed \
2015-12-05 03:03:02 +03:00
lstatx.c \
2015-07-29 02:03:41 +03:00
memfd_create.expected \
2015-08-19 05:28:48 +03:00
mq.expected \
2015-03-17 20:07:57 +03:00
net.expected \
2015-07-30 11:24:32 +03:00
oldselect.expected \
2015-03-23 03:04:27 +03:00
pipe.expected \
2015-07-30 22:46:11 +03:00
ppoll.expected \
ppoll-v.expected \
2016-04-18 18:59:28 +03:00
setfsugid.c \
2016-04-18 17:34:31 +03:00
setreugid.c \
2016-04-18 18:16:53 +03:00
setresugid.c \
2016-04-18 16:24:26 +03:00
setugid.c \
2014-09-23 04:14:04 +04:00
sigaction.awk \
2015-07-17 04:45:25 +03:00
sigaltstack.expected \
2015-08-03 12:47:25 +03:00
signalfd.expected \
2015-03-17 20:07:57 +03:00
statfs.expected \
2015-12-05 03:01:56 +03:00
statx.sh \
2016-03-24 03:31:23 +03:00
strace-T.expected \
2016-03-24 04:27:03 +03:00
strace-r.expected \
fcntl: skip F_GETLK64, F_SETLK64, and F_SETLKW64 in fcntl syscall parser
As the kernel recognizes F_GETLK64, F_SETLK64, and F_SETLKW64 commands
in fcntl64 syscall only, do not parse their structures in fcntl parser.
* xlat/fcntlcmds.in: Move F_GETLK64, F_SETLK64, and F_SETLKW64 ...
* xlat/fcntl64cmds.in: ... here.
* fcntl.c: Include "xlat/fcntl64cmds.h".
(print_fcntl): Move printing of first two syscall arguments
and handling of F_GETLK64, F_SETLK64, and F_SETLKW64 commands ...
(SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): ... here.
* tests/fcntl.c: New file, based on struct_flock.c.
* tests/fcntl64.c: Likewise.
* tests/struct_flock.c (test_flock_einval, create_sample): New functions.
(test_flock): Use test_flock_einval.
(test_flock64, main): Remove.
* tests/fcntl.test: New test.
* tests/fcntl64.test: Likewise.
* tests/struct_flock.test: Remove.
* tests/Makefile.am (check_PROGRAMS): Add fcntl and fcntl64,
remove struct_flock.
(TESTS): Add fcntl.test and fcntl64.test, remove struct_flock.test.
(EXTRA_DIST) Add struct_flock.c.
* tests/.gitignore: Add fcntl and fcntl64, remove struct_flock.
2015-12-05 03:52:01 +03:00
struct_flock.c \
2015-03-17 20:07:57 +03:00
sun_path.expected \
uio.expected \
2015-03-31 21:52:57 +03:00
umovestr.expected \
2015-07-15 04:50:27 +03:00
wait.expected \
2015-07-15 03:09:08 +03:00
xattr.expected \
2016-04-16 02:03:29 +03:00
xchownx.c \
2015-12-08 20:38:12 +03:00
xselect.c \
Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
2016-04-26 03:21:26 +03:00
xstatfs.c \
xstatfs64.c \
xstatfsx.c \
2015-12-05 03:01:56 +03:00
xstatx.c \
2014-09-23 04:14:04 +04:00
$( TESTS)
2011-02-27 03:28:50 +03:00
tests: add ksysent.test
Check that syscall names and numbers defined in syscallent files
match kernel __NR_* constants defined by <asm/unistd.h>.
Tested on various platforms, including the following combinations
of architectures and kernel headers:
x86_64: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.12, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
i386: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
aarch64: 4.4-rc
alpha: 4.3
arm eabi: 4.4-rc, 4.2, 4.1
hppa: 3.18
ia64: 3.18
mips o32: 4.1
ppc: 3.18
ppc64: 3.10-rhel, 2.6.32-rhel
s390: 3.18
s390x: 3.18
sparc: 4.1
sparc: 3.18
x32: 3.19
The only platform which is known at this moment to fail the test
is CentOS-5 provided by OBS. On x86_64 instance it fails with
error: "prlimit64" syscall #300 is "fanotify_init" in syscallent.h
and on i586 it similarly fails with
error: "prlimit64" syscall #338 is "fanotify_init" in syscallent.h
So this is a real platform bug that is not likely to be worked around
on the strace side.
* tests/ksysent.c: New file.
* tests/ksysent.sed: Likewise.
* tests/ksysent.test: New test.
* tests/Makefile.am (AM_CPPFLAGS): Add -I$(builddir).
(check_PROGRAMS): Add ksysent.
(TESTS): Add ksysent.test.
(EXTRA_DIST): Add ksysent.sed.
(ksysent.h): New rule.
(BUILT_SOURCES, CLEANFILES): Add ksysent.h.
* tests/.gitignore: Add ksysent.
2015-12-10 05:06:25 +03:00
ksysent.h : $( srcdir ) /ksysent .sed
echo '#include <asm/unistd.h>' | \
2016-02-17 18:55:28 +03:00
$( CPP) $( AM_CPPFLAGS) $( CPPFLAGS) -dM - > $@ .t1
tests: add ksysent.test
Check that syscall names and numbers defined in syscallent files
match kernel __NR_* constants defined by <asm/unistd.h>.
Tested on various platforms, including the following combinations
of architectures and kernel headers:
x86_64: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.12, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
i386: 4.4-rc, 4.3, 4.2, 4.1, 3.19, 3.17, 3.16, 3.11,
3.10-rhel, 2.6.32-rhel, 2.6.27-sle, 2.6.18-rhel
aarch64: 4.4-rc
alpha: 4.3
arm eabi: 4.4-rc, 4.2, 4.1
hppa: 3.18
ia64: 3.18
mips o32: 4.1
ppc: 3.18
ppc64: 3.10-rhel, 2.6.32-rhel
s390: 3.18
s390x: 3.18
sparc: 4.1
sparc: 3.18
x32: 3.19
The only platform which is known at this moment to fail the test
is CentOS-5 provided by OBS. On x86_64 instance it fails with
error: "prlimit64" syscall #300 is "fanotify_init" in syscallent.h
and on i586 it similarly fails with
error: "prlimit64" syscall #338 is "fanotify_init" in syscallent.h
So this is a real platform bug that is not likely to be worked around
on the strace side.
* tests/ksysent.c: New file.
* tests/ksysent.sed: Likewise.
* tests/ksysent.test: New test.
* tests/Makefile.am (AM_CPPFLAGS): Add -I$(builddir).
(check_PROGRAMS): Add ksysent.
(TESTS): Add ksysent.test.
(EXTRA_DIST): Add ksysent.sed.
(ksysent.h): New rule.
(BUILT_SOURCES, CLEANFILES): Add ksysent.h.
* tests/.gitignore: Add ksysent.
2015-12-10 05:06:25 +03:00
LC_COLLATE = C sed -n -f $( srcdir) /ksysent.sed < $@ .t1 > $@ .t2
mv -f $@ .t2 $@
rm -f $@ .t1
BUILT_SOURCES = ksysent.h
CLEANFILES = ksysent.h $( TESTS:= .tmp)