]> granicus.if.org Git - strace/log
strace
7 years agotests: use VERBOSE macro in execve and execve-v tests
Dmitry V. Levin [Thu, 22 Sep 2016 23:58:25 +0000 (23:58 +0000)]
tests: use VERBOSE macro in execve and execve-v tests

* tests/execve-v.c (VERBOSE_EXECVE): Remove.
(VERBOSE): Define to 1.
* tests/execve.c (main): Check VERBOSE instead of VERBOSE_EXECVE.

7 years agotests: add VERBOSE macro
Dmitry V. Levin [Wed, 21 Sep 2016 00:35:30 +0000 (00:35 +0000)]
tests: add VERBOSE macro

Introduce VERBOSE macro (defaults to 0) that is expected to be defined
to 1 by code testing "strace -v" output.

* tests/tests.h [!VERBOSE] (VERBOSE): New macro.

7 years agodecode_open: print the mode argument when O_TMPFILE flag is set
Dmitry V. Levin [Tue, 20 Sep 2016 18:41:50 +0000 (18:41 +0000)]
decode_open: print the mode argument when O_TMPFILE flag is set

O_TMPFILE reqires the mode argument (just like O_CREAT), so print it.

* open.c (STRACE_O_TMPFILE): New macro.
(decode_open): Print the mode argument when O_TMPFILE flag is set.
* tests/open.c (main): Check it.
Fixes RH#1377846.

7 years agotests: use sprintrc in tests/ptrace.c
Dmitry V. Levin [Tue, 20 Sep 2016 15:17:37 +0000 (15:17 +0000)]
tests: use sprintrc in tests/ptrace.c

* tests/ptrace.c (errstr): New static variable.
(do_ptrace): Initialize it using sprintrc.
(test_peeksiginfo, main): Use errstr.

7 years agotests: use sprintrc in tests/netlink_protocol.c
Dmitry V. Levin [Tue, 20 Sep 2016 12:02:06 +0000 (12:02 +0000)]
tests: use sprintrc in tests/netlink_protocol.c

* tests/netlink_protocol.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/fchownat.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:48:57 +0000 (00:48 +0000)]
tests: use sprintrc in tests/fchownat.c

* tests/fchownat.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/fchmodat.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:19:20 +0000 (00:19 +0000)]
tests: use sprintrc in tests/fchmodat.c

* tests/fchmodat.c (main): Use sprintrc.  Add more fchmodat decoding tests.

7 years agotests: use sprintrc in tests/fchmod.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:19:20 +0000 (00:19 +0000)]
tests: use sprintrc in tests/fchmod.c

* tests/fchmod.c (main): Use sprintrc.  Add more fchmod decoding tests.
* tests/fchmod.test: Update the value specified for strace -a parameter.

7 years agotests: use sprintrc in tests/getgroups.c
Dmitry V. Levin [Mon, 19 Sep 2016 23:08:36 +0000 (23:08 +0000)]
tests: use sprintrc in tests/getgroups.c

* tests/getgroups.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/setgroups.c
Dmitry V. Levin [Mon, 19 Sep 2016 23:08:36 +0000 (23:08 +0000)]
tests: use sprintrc in tests/setgroups.c

* tests/setgroups.c (main): Use sprintrc.

7 years agotests/utime.c: rewrite without assert
Dmitry V. Levin [Mon, 19 Sep 2016 19:49:59 +0000 (19:49 +0000)]
tests/utime.c: rewrite without assert

* tests/utime.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

7 years agotests/xattr.c: rewrite without assert
Dmitry V. Levin [Sun, 18 Sep 2016 00:00:53 +0000 (00:00 +0000)]
tests/xattr.c: rewrite without assert

* tests/xattr.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

7 years agotests: use sprintrc in tests/xchownx.c
Dmitry V. Levin [Sat, 17 Sep 2016 23:30:01 +0000 (23:30 +0000)]
tests: use sprintrc in tests/xchownx.c

* tests/xchownx.c (main): Do not include <errno.h>.  Use sprintrc.

7 years agotests/xstatfsx.c: fix potential errno clobbering
Dmitry V. Levin [Fri, 16 Sep 2016 23:14:40 +0000 (23:14 +0000)]
tests/xstatfsx.c: fix potential errno clobbering

* tests/xstatfsx.c (main): Use sprintrc.

7 years agoAdd more fs magic constants
Dmitry V. Levin [Thu, 15 Sep 2016 23:55:17 +0000 (23:55 +0000)]
Add more fs magic constants

Add *_MAGIC constants defined for some relatively widespread
non-mainline filesystems.

* xlat/fsmagic.in: Add AUFS_SUPER_MAGIC, GPFS_SUPER_MAGIC,
VZFS_SUPER_MAGIC, and ZFS_SUPER_MAGIC constants.

8 years agotests: fix whitespace for explicit type casts in futex test
Eugene Syromyatnikov [Thu, 15 Sep 2016 20:04:07 +0000 (23:04 +0300)]
tests: fix whitespace for explicit type casts in futex test

8 years agoAdd more fs magic constants
Dmitry V. Levin [Wed, 14 Sep 2016 23:52:36 +0000 (23:52 +0000)]
Add more fs magic constants

Add *_MAGIC constants defined inside linux fs but not explicitly
exported via linux uapi.

* xlat/fsmagic.in: Add HFS_SUPER_MAGIC, HFSPLUS_SUPER_MAGIC,
EXOFS_SUPER_MAGIC, CEPH_SUPER_MAGIC, UBIFS_SUPER_MAGIC, JFS_SUPER_MAGIC,
BEFS_SUPER_MAGIC, NTFS_SB_MAGIC, XFS_SB_MAGIC, CONFIGFS_MAGIC,
FUSE_CTL_SUPER_MAGIC, FUSE_SUPER_MAGIC, AFS_FS_MAGIC, OCFS2_SUPER_MAGIC,
VXFS_SUPER_MAGIC, LOGFS_MAGIC, SMB2_MAGIC_NUMBER, and CIFS_MAGIC_NUMBER
constants.

8 years agoUpdate fs *_MAGIC constants
Dmitry V. Levin [Wed, 14 Sep 2016 23:41:19 +0000 (23:41 +0000)]
Update fs *_MAGIC constants

Add fs *_MAGIC constants exported by linux uapi.

* xlat/fsmagic.in: Add BFS_MAGIC, GFS2_MAGIC, and ROMFS_MAGIC constants
defined in linux/bfs_fs.h, linux/gfs2_ondisk.h, and linux/romfs_fs.h,
respectively.

8 years agotests: workaround limited semctl implementation in musl
Dmitry V. Levin [Tue, 13 Sep 2016 20:33:04 +0000 (20:33 +0000)]
tests: workaround limited semctl implementation in musl

musl libc forwards semctl command argument for 8 known commands only,
for all the rest it passes 0 instead.

* tests/ipc_sem.c (main): Update semctl expected output.

8 years agotests: add more IPC decoding checks
Eugene Syromyatnikov [Tue, 13 Sep 2016 16:18:42 +0000 (19:18 +0300)]
tests: add more IPC decoding checks

* tests/ipc_msg.c: Additional msgget (parameter format) and msgctl
(parameter format, decoding of struct msqid_ds in IPC_SET/IPC_STAT
commands) checks.
* tests/ipc_sem.c: Additional semget and semctl checks.
* tests/ipc_shm.c: Additional shmget and shmctl checks.
* tests/semop.c: Additional semop checks.  Add checks for semtimedop.
* tests/semop.test: Add explicit -e parameter in order to trace both
semop and semtimedop.
* tests/shmxt.c: Additional shmat and shmdt checks.

8 years ago.mailmap: add addresses of Dr. David Alan Gilbert
Dmitry V. Levin [Mon, 12 Sep 2016 23:38:20 +0000 (23:38 +0000)]
.mailmap: add addresses of Dr. David Alan Gilbert

* .mailmap: Add both addresses of Dr. David Alan Gilbert here to avoid
duplications in CREDITS file.

8 years ago.mailmap: add canonical name for Eugene Syromyatnikov
Eugene Syromyatnikov [Mon, 12 Sep 2016 23:10:53 +0000 (02:10 +0300)]
.mailmap: add canonical name for Eugene Syromyatnikov

This is needed due to apparent deviation in spelling of commit author
name in several commits.

* .mailmap: Add canonical name for Eugene Syromyatnikov.

8 years agoUpdate generic ioctl entries from linux 4.8
Dmitry V. Levin [Mon, 12 Sep 2016 15:19:31 +0000 (15:19 +0000)]
Update generic ioctl entries from linux 4.8

* linux/64/ioctls_inc.h: Update from linux v4.8 using ioctls_gen.sh.
* linux/32/ioctls_inc_align32.h: Likewise.
* linux/32/ioctls_inc_align64.h: Likewise.

8 years agox32: update ioctl entries from linux 4.8
Gleb Fotengauer-Malinovskiy [Mon, 12 Sep 2016 13:30:18 +0000 (16:30 +0300)]
x32: update ioctl entries from linux 4.8

* linux/x32/ioctls_inc0.h: Update from linux v4.8 using ioctls_gen.sh.

8 years agomaint: update for linux 4.8
Gleb Fotengauer-Malinovskiy [Mon, 12 Sep 2016 13:29:38 +0000 (16:29 +0300)]
maint: update for linux 4.8

* maint/ioctls_sym.sh: Add workarounds for linux/atm_zatm.h and
xen/evtchn.h files.

8 years agotests: use sprintrc_grep in tests/ipc_shm.c
Dmitry V. Levin [Mon, 12 Sep 2016 10:30:22 +0000 (10:30 +0000)]
tests: use sprintrc_grep in tests/ipc_shm.c

* tests/ipc_shm.c (main): Use sprintrc_grep.

8 years agotests: use sprintrc_grep in tests/ipc_sem.c
Dmitry V. Levin [Mon, 12 Sep 2016 09:27:58 +0000 (09:27 +0000)]
tests: use sprintrc_grep in tests/ipc_sem.c

* tests/ipc_sem.c (main): Use sprintrc_grep.

8 years agotests: use sprintrc_grep in tests/ipc_msg.c
Dmitry V. Levin [Sun, 11 Sep 2016 00:04:16 +0000 (00:04 +0000)]
tests: use sprintrc_grep in tests/ipc_msg.c

* tests/ipc_msg.c (main): Use sprintrc_grep.

8 years agotests: use sprintrc in tests/chmod.c
Dmitry V. Levin [Sat, 10 Sep 2016 22:58:40 +0000 (22:58 +0000)]
tests: use sprintrc in tests/chmod.c

* tests/chmod.c (main): Use sprintrc.  Add more chmod decoding tests.

8 years agoipc: fix printing of nsops argument of semop and semtimedop syscalls
Dmitry V. Levin [Fri, 9 Sep 2016 19:13:54 +0000 (19:13 +0000)]
ipc: fix printing of nsops argument of semop and semtimedop syscalls

According to POSIX, nsops argument of semop syscall has type size_t,
but the kernel treats nsops argument of semop and semtimedop syscalls
as unsigned int.

* ipc_sem.c (tprint_sembuf_array): Change type of "count" argument
from unsigned long to unsigned int, print it using %u format.

8 years agotests/aio.c: bring indentation in conformance with the rest of the file
Eugene Syromyatnikov [Fri, 9 Sep 2016 07:54:54 +0000 (10:54 +0300)]
tests/aio.c: bring indentation in conformance with the rest of the file

8 years agotests: use predefined constant in aio_context_t checks in aio test
Eugene Syromyatnikov [Fri, 9 Sep 2016 07:54:38 +0000 (10:54 +0300)]
tests: use predefined constant in aio_context_t checks in aio test

Also fix io_cancel and io_destroy checks which did not check correct
printing of context argument properly.

* tests/aio.c (main): Update syscall checks in order to use newly
defined bogus_ctx constant.

8 years agoMark io_setup and io_destroy as memory mapping related syscalls
Dmitry V. Levin [Fri, 9 Sep 2016 02:38:32 +0000 (02:38 +0000)]
Mark io_setup and io_destroy as memory mapping related syscalls

As io_setup syscall allocates some memory using do_mmap_pgoff, and
io_destroy deallocates this memory using vm_munmap, set TRACE_MEMORY
flag for all sysentries of io_setup and io_destroy using the following
oneliner:
sed -ri '/io_setup|io_destroy/ s/0,/TM,/' linux/*/syscallent*.h

* linux/*/syscallent*.h (io_setup, io_destroy): Change sys_flags to TM.

8 years agotravis: add x86 musl
Dmitry V. Levin [Thu, 8 Sep 2016 17:11:51 +0000 (17:11 +0000)]
travis: add x86 musl

* .travis.yml (matric): Add musl-gcc/x86.
* travis-build.sh [TARGET == x86]: Specify --target along with --build
to configure.
* travis-install.sh [CC == musl-gcc && TARGET == x32]: Add -mx32 to $CC.
[CC == musl-gcc && TARGET == x86]: Add -m32 to $CC.  Specify --build
and --target to musl configure invocation.

8 years agotests: use PRI__*64 macros in aio test
Eugene Syromyatnikov [Thu, 8 Sep 2016 18:26:17 +0000 (21:26 +0300)]
tests: use PRI__*64 macros in aio test

It was incorrectly assumed that __*64 types are long long on all
platforms, despite strace having specially crafted macros in order
to handle precisely this architecture discrepancy.
The commit fixes this oversight.

* tests/aio.c (main): Use PRI__*64 macros for correct format conversion
specifiers for __*64-typed values.

8 years agoipc: fix printing of integer arguments
Eugene Syromyatnikov [Wed, 7 Sep 2016 12:41:17 +0000 (15:41 +0300)]
ipc: fix printing of integer arguments

* ipc_msgctl.c (SYS_FUNC(msgctl)): As msqid argument is treated as int
by the kernel, cast it to int and print it using %d format.
* ipc_sem.c (SYS_FUNC(semop), SYS_FUNC(semtimedop)): Likewise,
for semid argument.
(SYS_FUNC(semget)): Likewise, for nsems argument.
(SYS_FUNC(semctl)): Likewise, for semid and semnum arguments.
* ipc_shm.c (SYS_FUNC(shmat)): Likewise, for shmid argument.
* ipc_shmctl.c (SYS_FUNC(shmctl)): Likewise.

8 years agoipc: fix printing key_t arguments of msgget, semget, and shmget syscalls
Dmitry V. Levin [Thu, 8 Sep 2016 12:49:35 +0000 (12:49 +0000)]
ipc: fix printing key_t arguments of msgget, semget, and shmget syscalls

* ipc_msg.c (SYS_FUNC(msgget)): As key_t type in the kernel
is __kernel_key_t (i.e. int), cast key_t argument to int
and print it using %#x format.
* ipc_sem.c (SYS_FUNC(semget)): Likewise.
* ipc_shm.c (SYS_FUNC(shmget)): Likewise.
* tests/ipc_msg.c (main): Test it.
* tests/ipc_sem.c (main): Likewise.
* tests/ipc_shm.c (main): Likewise.

8 years agotests: add more sched_getattr and sched_setattr decoding checks
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:09:10 +0000 (05:09 +0300)]
tests: add more sched_getattr and sched_setattr decoding checks

* tests/sched_xetattr.c (main): Add more sched_getattr and sched_setattr
decoding checks.

8 years agotests: change type of sched_nice field to signed in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:47 +0000 (05:08 +0300)]
tests: change type of sched_nice field to signed in sched_xetattr test

Kernel headers declare this field as s32, and strace prints it with %d
specifier.

* tests/sched_xetattr.c (main): Change type of sched_nice field of struct
sched_attr to int32_t, update format specifiers accordingly.

8 years agotests: add sprintrc_grep function to libtests
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:24 +0000 (05:08 +0300)]
tests: add sprintrc_grep function to libtests

New sprintrc_grep function is sprintrc function equivalent suitable for
tests where grep-base pattern matching is employed.

* tests/tests.h (sprintrc_grep): New prototype.
* tests/sprintrc.c (enum sprintrc_fmt): New sprintrc format enumeration.
(sprintrc_ex): New function, renamed from sprintrc and updated to
support different formats.
(sprintrc): Change to use sprintrc_ex with SPRINTRC_FMT_RAW.
(sprintrc_grep): New function, calls sprintrc_ex with SPRINTRC_FMT_GREP.

8 years agotests: perform more strict structure allocation in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:10 +0000 (05:08 +0300)]
tests: perform more strict structure allocation in sched_xetattr test

Use tail_alloc with precise size of the structure.

* tests/sched_xetattr.c (main): Eliminate usage of anonymous union type.
Rename sched to sched_attr.  Change type of sched_attr to struct
pointer.  Use tail_alloc for sched_attr allocation, update printf
statements accrodingly.

8 years agotests: split long lines in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:07:57 +0000 (05:07 +0300)]
tests: split long lines in sched_xetattr test

* tests/sched_xetattr.c (main): Split long lines.

8 years agotests/aio.c: fix for x32 personality
Dmitry V. Levin [Wed, 7 Sep 2016 13:17:59 +0000 (13:17 +0000)]
tests/aio.c: fix for x32 personality

* tests/aio.c (main): Do not pass 64-bit aio_context_t to io_submit
and io_getevents until strace learns how to print 64-bit pointers on x32
and on x86_64 for x32 personality.

8 years agoaio: print aio_context_t as a pointer type
Dmitry V. Levin [Wed, 7 Sep 2016 11:22:51 +0000 (11:22 +0000)]
aio: print aio_context_t as a pointer type

As aio_context_t is treated by the kernel as a pointer,
print it using printaddr.

* aio.c (SYS_FUNC(io_setup)): Print the pointer to aio_context_t
argument using printnum_ptr.
(SYS_FUNC(io_destroy), SYS_FUNC(io_submit), SYS_FUNC(io_cancel),
SYS_FUNC(io_getevents)): Print aio_context_t argument using printaddr.
* tests/aio.c (sprint_aio_context_t): Remove.
(main): Update expected output.

8 years agotests/aio.c: rewrite without assert
Dmitry V. Levin [Tue, 6 Sep 2016 16:11:51 +0000 (16:11 +0000)]
tests/aio.c: rewrite without assert

* tests/aio.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

8 years agotests: add more aio decoding checks
Eugene Syromyatnikov [Tue, 6 Sep 2016 09:03:14 +0000 (12:03 +0300)]
tests: add more aio decoding checks

* tests/aio.c (sprint_aio_context_t): New function.
(main): Use it; add more checks.

8 years agotests: add suffix and cast to 64-bit constants in aio test
Eugene Syromyatnikov [Tue, 6 Sep 2016 09:02:44 +0000 (12:02 +0300)]
tests: add suffix and cast to 64-bit constants in aio test

This helps to avoid warnings like
"integer constant is too large for â€˜long’ type"
reported by some versions of gcc on 32-bit platforms.

* tests/aio.c (main): Add ULL suffix to 64-bit constants
and cast them to unsigned long.

8 years agotests: check decoding of perf_event_open syscall
Eugene Syromyatnikov [Mon, 5 Sep 2016 17:39:04 +0000 (20:39 +0300)]
tests: check decoding of perf_event_open syscall

* tests/perf_event_open.c: New file.
* tests/perf_event_open.test: New test.
* tests/.gitignore: Add perf_event_open.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add perf_event_open.test.

8 years agoMakefile.am: use pwd instead of realpath
Eugene Syromyatnikov [Mon, 5 Sep 2016 17:35:20 +0000 (20:35 +0300)]
Makefile.am: use pwd instead of realpath

* Makefile.am (CODE_COVERAGE_GENHTML_OPTIONS): Use standard pwd(1)
instead of less widespread realpath(1) utility from GNU coreutils.

8 years agotests: use sprintrc in tests/xetpriority.c
Dmitry V. Levin [Mon, 5 Sep 2016 14:00:46 +0000 (14:00 +0000)]
tests: use sprintrc in tests/xetpriority.c

* tests/xetpriority.c (main): Use sprintrc.

8 years agotests: use sprintrc in vhangup.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:59:08 +0000 (13:59 +0000)]
tests: use sprintrc in vhangup.test

* tests/vhangup.c (main): Use sprintrc.

8 years agotests: use sprintrc in tests/sockname.c
Dmitry V. Levin [Mon, 5 Sep 2016 13:58:02 +0000 (13:58 +0000)]
tests: use sprintrc in tests/sockname.c

* tests/sockname.c (test_sockname_syscall): Use sprintrc.

8 years agotests: use sprintrc in signalfd4.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:53:52 +0000 (13:53 +0000)]
tests: use sprintrc in signalfd4.test

* tests/signalfd4.c (main): Use sprintrc.

8 years agotests: use sprintrc in setrlimit.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:50:39 +0000 (13:50 +0000)]
tests: use sprintrc in setrlimit.test

* tests/setrlimit.c (main): Use sprintrc.

8 years agotests: use sprintrc in set_mempolicy.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:43:36 +0000 (13:43 +0000)]
tests: use sprintrc in set_mempolicy.test

* tests/set_mempolicy.c (main, print_nodes): Use sprintrc.

8 years agotests: use sprintrc in openat.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:37:33 +0000 (13:37 +0000)]
tests: use sprintrc in openat.test

* tests/openat.c (main): Use sprintrc.

8 years agotests: use sprintrc in open.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:34:06 +0000 (13:34 +0000)]
tests: use sprintrc in open.test

* tests/open.c (main): Use sprintrc.

8 years agotests: use sprintrc in move_pages.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:30:06 +0000 (13:30 +0000)]
tests: use sprintrc in move_pages.test

* tests/move_pages.c (print_stat_pages, print_move_pages): Use sprintrc.

8 years agotests: use sprintrc in mlockall.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:24:03 +0000 (22:24 +0000)]
tests: use sprintrc in mlockall.test

* tests/mlockall.c (main): Use sprintrc.

8 years agotests: use sprintrc in mlock.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:22:37 +0000 (22:22 +0000)]
tests: use sprintrc in mlock.test

* tests/mlock.c (main): Use sprintrc.

8 years agotests: use sprintrc in epoll_create1.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:16:46 +0000 (22:16 +0000)]
tests: use sprintrc in epoll_create1.test

* tests/epoll_create1.c (main): Use sprintrc.

8 years agotests: fix printing of min_nr and nr arguments of io_getevents syscall
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:40 +0000 (04:32 +0300)]
tests: fix printing of min_nr and nr arguments of io_getevents syscall

* tests/aio.c (main): Change output format for min_nr and nr arguments
in io_getevents check to %ld, cast these arguments to long.

8 years agotests: use sprintrc for return code output in aio test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:29 +0000 (04:32 +0300)]
tests: use sprintrc for return code output in aio test

* tests/aio.c (main): Use sprintrc for return code output.

8 years agotests: add more tests for ched_rr_get_interval decoding
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:02 +0000 (04:32 +0300)]
tests: add more tests for ched_rr_get_interval decoding

* tests/sched_rr_get_interval.c (main): Check decoding of invalid
timespec pointer and successful syscall invocation.

8 years agotests: use sprintrc for return code output in sched_rr_get_interval test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:31:48 +0000 (04:31 +0300)]
tests: use sprintrc for return code output in sched_rr_get_interval test

* tests/sched_rr_get_interval.c (main): Use sprintrc for return code
output.

8 years agotests: add more tests for sched_getscheduler and sched_xetscheduler
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:31:35 +0000 (04:31 +0300)]
tests: add more tests for sched_getscheduler and sched_xetscheduler

* tests/sched_xetscheduler.c (main): Check for decoding of invalid PID
in sched_getscheduler and sched_setscheduler, invalid address
of sched_param structure, and invalid policy value.

8 years agotests: use sprintrc for return code output in sched_xetscheduler test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:33:16 +0000 (04:33 +0300)]
tests: use sprintrc for return code output in sched_xetscheduler test

* tests/sched_xetscheduler.c (main): Use sprintrc for return code output.

8 years agoaio: use printfd for fd printing
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:16 +0000 (04:32 +0300)]
aio: use printfd for fd printing

struct iocb contains two fields with fd semantics: aio_fildes and
aio_resfd.  It is quite reasonable to use the appropriate function for
printing them (apart from just "%d").

* aio.c (print_common_flags): Add struct tcb pointer to parameter list;
use printfd for printing aio_resfd field.
(print_iocb_header): Add struct tcb pointer to parameter list;
use printfd for printing aio_fildes field.
(print_iocb): Provide tcp argument to print_iocb_header
and print_common_flags.
(SYS_FUNC(io_cancel)): Likewise.

8 years agosh64: wire up new syscalls
Dmitry V. Levin [Sat, 3 Sep 2016 22:05:10 +0000 (22:05 +0000)]
sh64: wire up new syscalls

* linux/sh64/syscallent.h [380..393]: New entries.

8 years agosh: wire up new syscalls
Dmitry V. Levin [Fri, 2 Sep 2016 21:04:49 +0000 (21:04 +0000)]
sh: wire up new syscalls

* linux/sh/syscallent.h [369..382]: New entries.

8 years agoavr32: wire up preadv2 and pwritev2 syscalls
Dmitry V. Levin [Thu, 1 Sep 2016 22:04:08 +0000 (22:04 +0000)]
avr32: wire up preadv2 and pwritev2 syscalls

* linux/avr32/syscallent.h [326]: Add preadv2 entry.
[327]: Add pwritev2 entry.

8 years agotests: check decoding of readahead syscall
Eugene Syromyatnikov [Fri, 2 Sep 2016 15:28:24 +0000 (18:28 +0300)]
tests: check decoding of readahead syscall

* configure.ac (AC_CHECK_FUNCS): Add readahead.
* tests/readahead.c: New file.
* tests/readahead.test: New test.
* tests/.gitignore: Add readahead.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add readahead.test.

8 years agotests: move sprintrc function to libtests
Eugene Syromyatnikov [Fri, 2 Sep 2016 15:28:02 +0000 (18:28 +0300)]
tests: move sprintrc function to libtests

* tests/tests.h (sprintrc): New prototype.
* tests/futex.c (sprintrc): Move to ...
* tests/sprintrc.c: ... new file.
* tests/Makefile.am (libtests_a_SOURCES): Add sprintrc.c.

8 years agotests/futex: add support to sprintrc for return codes other than 0 and -1
Eugene Syromyatnikov [Fri, 2 Sep 2016 15:27:18 +0000 (18:27 +0300)]
tests/futex: add support to sprintrc for return codes other than 0 and -1

* tests/futex.c (sprintrc): Print the actual return code provided,
not just "0".  Check snprintf return code.

8 years agotests/futex: increase sprintrc static buffer size
Eugene Syromyatnikov [Fri, 2 Sep 2016 15:25:56 +0000 (18:25 +0300)]
tests/futex: increase sprintrc static buffer size

* tests/futex.c (sprintrc): Increase buffer size from 256 to 4096.

8 years agotests/futex: rename retstr to sprintrc
Eugene Syromyatnikov [Fri, 2 Sep 2016 15:25:35 +0000 (18:25 +0300)]
tests/futex: rename retstr to sprintrc

* tests/futex.c (retstr): Rename to sprintrc.
(main): Convert all retstr calls to sprintrc.

8 years agoreadahead: fix print format for the "count" argument
Eugene Syromyatnikov [Wed, 31 Aug 2016 23:42:48 +0000 (02:42 +0300)]
readahead: fix print format for the "count" argument

According to documentation and kernel's syscalls.h, its type is size_t,
so "%lu" format should be used instead of "%ld".

* readahead.c (SYS_FUNC(readahead)): Fix conversion specifier
for the "count" argument.

8 years agotests/xstatx.c: use zero_extend_signed_to_ull/sign_extend_unsigned_to_ll
Dmitry V. Levin [Wed, 31 Aug 2016 16:31:53 +0000 (16:31 +0000)]
tests/xstatx.c: use zero_extend_signed_to_ull/sign_extend_unsigned_to_ll

Use zero_extend_signed_to_ull and sign_extend_unsigned_to_ll macros
instead of explicit casts with unpredictable sign extension semantics.

* tests/xstatx.c (print_time, main): Use zero_extend_signed_to_ull
instead of explicit cast.
(print_stat): Use zero_extend_signed_to_ull and
sign_extend_unsigned_to_ll instead of explicit casts.

8 years agotests: add sign_extend_unsigned_to_ll macro
Dmitry V. Levin [Wed, 31 Aug 2016 16:09:24 +0000 (16:09 +0000)]
tests: add sign_extend_unsigned_to_ll macro

* tests/tests.h (sign_extend_unsigned_to_ll): New macro from defs.h.

8 years agoRefactor common sa_handler printing code
Eugene Syromiatnikov [Wed, 17 Aug 2016 01:08:49 +0000 (01:08 +0000)]
Refactor common sa_handler printing code

* xlat/sa_handler_values.in: New file.
* signal.c: Include "xlat/sa_handler_values.h".
(get_sa_handler_str, print_sa_handler): New functions.
(SYS_FUNC(sigsetmask), SYS_FUNC(signal), decode_new_sigaction): Use them.

8 years agoUpdate TCP* constants
Dmitry V. Levin [Wed, 31 Aug 2016 08:49:31 +0000 (08:49 +0000)]
Update TCP* constants

* xlat/socktcpoptions.in: Add TCP_REPAIR_WINDOW introduced by linux
kernel commit v4.8-rc1~140^2~226.

8 years agoUpdate SCTP_* constants
Dmitry V. Levin [Tue, 30 Aug 2016 18:22:41 +0000 (18:22 +0000)]
Update SCTP_* constants

* xlat/socksctpoptions.in: Add SCTP_PR_SUPPORTED, SCTP_DEFAULT_PRINFO,
and SCTP_PR_ASSOC_STATUS introduced by linux kernel commits
v4.8-rc1~140^2~148^2~5, v4.8-rc1~140^2~148^2~4, and
v4.8-rc1~140^2~148^2~3, respectively.

8 years agoUpdate fs *_MAGIC constants
Dmitry V. Levin [Tue, 30 Aug 2016 18:16:53 +0000 (18:16 +0000)]
Update fs *_MAGIC constants

* xlat/fsmagic.in: Add BALLOON_KVM_MAGIC and ZSMALLOC_MAGIC introduced
by linux kernel commits v4.8-rc1~147^2~82 and v4.8-rc1~147^2~74,
respectively.

8 years agoUpdate KEXEC_ARCH_* constants
Dmitry V. Levin [Tue, 30 Aug 2016 18:13:38 +0000 (18:13 +0000)]
Update KEXEC_ARCH_* constants

* xlat/kexec_arch_values.in: Add KEXEC_ARCH_AARCH64 introduced by linux
kernel commit v4.8-rc1~16^2~41.

8 years agoUpdate ETH_P_* constants
Dmitry V. Levin [Tue, 30 Aug 2016 18:11:13 +0000 (18:11 +0000)]
Update ETH_P_* constants

* xlat/ethernet_protocols.in: Add ETH_P_NCSI introduced by linux kernel
commit v4.8-rc1~140^2~65^2~8.

8 years agoUpdate BPF_* constants
Dmitry V. Levin [Tue, 30 Aug 2016 18:01:50 +0000 (18:01 +0000)]
Update BPF_* constants

* xlat/bpf_map_types.in: Add BPF_MAP_TYPE_CGROUP_ARRAY introduced
by linux kernel commit v4.8-rc1~140^2~212^2~2.
* xlat/bpf_prog_types.in: Add BPF_PROG_TYPE_XDP introduced
by linux kernel commit v4.8-rc1~140^2~64^2~10.

8 years agoRemove HAVE_SIGACTION checks
Dmitry V. Levin [Tue, 30 Aug 2016 17:44:33 +0000 (17:44 +0000)]
Remove HAVE_SIGACTION checks

The syscall parsers guarded by HAVE_SIGACTION check have to be compiled
regardless of libc sigaction function availability.

* configure.ac (AC_CHECK_FUNCS): Remove sigaction.
* signal.c: Remove HAVE_SIGACTION checks.

8 years agoRemove obsolescent autoconf macro AC_TYPE_SIGNAL
Dmitry V. Levin [Tue, 30 Aug 2016 16:32:29 +0000 (16:32 +0000)]
Remove obsolescent autoconf macro AC_TYPE_SIGNAL

All supported systems are expected to have C89 conforming sematics.

* configure.ac (AC_TYPE_SIGNAL): Remove.

8 years agoRemove obsolescent autoconf macro AC_C_CONST
Dmitry V. Levin [Tue, 30 Aug 2016 16:23:46 +0000 (16:23 +0000)]
Remove obsolescent autoconf macro AC_C_CONST

All supported systems are expected to have the 'const' keyword.

* configure.ac (AC_C_CONST): Remove.

8 years agotests: check decoding of futex syscall
Eugene Syromiatnikov [Tue, 30 Aug 2016 13:30:37 +0000 (16:30 +0300)]
tests: check decoding of futex syscall

* tests/futex.c: New file.
* tests/futex.test: New test.
* tests/.gitignore: Add futex.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add futex.test.

8 years agofutex: do not pretend <linux/futex.h> is included
Eugene Syromyatnikov [Tue, 30 Aug 2016 13:24:37 +0000 (16:24 +0300)]
futex: do not pretend <linux/futex.h> is included

As configure.ac does not check for linux/futex.h, HAVE_LINUX_FUTEX_H is
never defined and therefore the inclusion of <linux/futex.h> guarded by
HAVE_LINUX_FUTEX_H makes no sense.

Moreover, <linux/futex.h> used to have an incorrect definition
of FUTEX_WAIT_BITSET_PRIVATE and FUTEX_WAKE_BITSET_PRIVATE:
since kernel commit v2.6.24-6320-gcd68998 where these definitions
were initially introduced and up to v2.6.31-7082-gf8d1e54 where they
were finally fixed these macros had been incorrectly defined via
FUTEX_WAIT_BITS and FUTEX_WAKE_BITS instead of FUTEX_WAIT_BITSET
and FUTEX_WAKE_BITSET, and these incorrect definitions made their way
into some distributions still in use.

* futex.c [HAVE_LINUX_FUTEX_H]: Remove.

8 years agofutex: avoid printing val when it is not used by the futex command
Eugene Syromyatnikov [Mon, 29 Aug 2016 21:01:45 +0000 (00:01 +0300)]
futex: avoid printing val when it is not used by the futex command

This is analogous to timeout argument omitting in FUTEX_WAKE_BITSET
command.

* futex.c (SYS_FUNC(futex)): Remove common printing of val argument.
Add printing of val argument for all futex commands except
FUTEX_LOCK_PI, FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.

8 years agoxlat: add FUTEX_WAIT* commands with FUTEX_CLOCK_REALTIME bit set
Eugene Syromyatnikov [Mon, 29 Aug 2016 20:59:51 +0000 (23:59 +0300)]
xlat: add FUTEX_WAIT* commands with FUTEX_CLOCK_REALTIME bit set

* xlat/futexops.in: Add FUTEX_WAIT|FUTEX_CLOCK_REALTIME and
FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME values supported by linux kernel
since commit v4.5-rc1~172^2.

8 years agofutex: fix formatting of unknown command argument
Eugene Syromyatnikov [Mon, 29 Aug 2016 20:59:01 +0000 (23:59 +0300)]
futex: fix formatting of unknown command argument

Use alternate form for printing hexadecimal numbers to avoid confusion.
Use printaddr to print uaddr as the latter is interpreted as a pointer
in all currently supported futex operations.

* futex.c (SYS_FUNC(futex)): Fix formatting of unknown command
argument.

8 years agofutex: add handling of FUTEX_FD command
Eugene Syromyatnikov [Mon, 29 Aug 2016 20:57:38 +0000 (23:57 +0300)]
futex: add handling of FUTEX_FD command

Since obsolete FUTEX_FD command is known and used to have some expected
argument format, print FUTEX_FD using that format.

* futex.c (SYS_FUNC(futex)): Handle FUTEX_FD command.

8 years agofutex: fix formatting of val3 hexadecimal argument
Eugene Syromyatnikov [Mon, 29 Aug 2016 21:00:58 +0000 (00:00 +0300)]
futex: fix formatting of val3 hexadecimal argument

* futex.c (SYS_FUNC(futex)): In FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET,
print hexadecimal val3 argument in alternate form to avoid confusion.

8 years agofutex: fix FUTEX_WAKE_OP compare function mask
Eugene Syromyatnikov [Mon, 29 Aug 2016 20:56:24 +0000 (23:56 +0300)]
futex: fix FUTEX_WAKE_OP compare function mask

According to the initial and current (v4.7) kernel implementations,
in FUTEX_WAKE_OP case the compare function does not have
FUTEX_OP_OPARG_SHIFT flag and occupies 4 bits starting with bit 24.

* futex.c (SYS_FUNC(futex)): Do not print FUTEX_OP_OPARG_SHIFT
for 27th bit of val3 in FUTEX_WAKE_OP case.

8 years agotests: use correct m32/mx32 st_mtime_nsec checks in tests/xstatx.c
Dmitry V. Levin [Tue, 30 Aug 2016 12:43:09 +0000 (12:43 +0000)]
tests: use correct m32/mx32 st_mtime_nsec checks in tests/xstatx.c

* bootstrap: Add -DMPERS_IS_$(MPERS_NAME) to ARCH_MFLAGS.
* tests/xstatx.c [USE_ASM_STAT && STRUCT_STAT_IS_STAT64 && MPERS_IS_m32]:
Redefine HAVE_STRUCT_STAT_ST_MTIME_NSEC
to HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC.
[USE_ASM_STAT && STRUCT_STAT_IS_STAT64 && MPERS_IS_mx32]:
Redefine HAVE_STRUCT_STAT_ST_MTIME_NSEC
to HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC.
[USE_ASM_STAT && !STRUCT_STAT_IS_STAT64 && MPERS_IS_m32]:
Redefine HAVE_STRUCT_STAT_ST_MTIME_NSEC
to HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC.
[USE_ASM_STAT && !STRUCT_STAT_IS_STAT64 && MPERS_IS_mx32]:
Redefine HAVE_STRUCT_STAT_ST_MTIME_NSEC
to HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC.

Based on patch by James Clarke <jrtc27@jrtc27.com>.

8 years agoRemove redundant check for PTRACE_LISTEN availability
Dmitry V. Levin [Tue, 30 Aug 2016 09:12:06 +0000 (09:12 +0000)]
Remove redundant check for PTRACE_LISTEN availability

As ptrace.h already ensures that PTRACE_LISTEN is defined,
there is no need to check this fact in other places.

* strace.c (ptrace_restart): Do not check that PTRACE_LISTEN is defined.

8 years agoRemove unused autoconf macro AC_TYPE_GETGROUPS
Dmitry V. Levin [Tue, 30 Aug 2016 00:55:07 +0000 (00:55 +0000)]
Remove unused autoconf macro AC_TYPE_GETGROUPS

strace code does not use GETGROUPS_T.

* configure.ac (AC_TYPE_GETGROUPS): Remove.