]> granicus.if.org Git - strace/log
strace
8 years agoalpha: decode osf_statfs64 and osf_fstatfs64 syscalls
Dmitry V. Levin [Mon, 25 Apr 2016 23:52:03 +0000 (23:52 +0000)]
alpha: decode osf_statfs64 and osf_fstatfs64 syscalls

* linux/alpha/syscallent.h (osf_statfs64, osf_fstatfs64): Set nargs
and handler.

8 years agoalpha: fix decoding of osf_statfs and osf_fstatfs syscalls
Dmitry V. Levin [Mon, 25 Apr 2016 23:52:03 +0000 (23:52 +0000)]
alpha: fix decoding of osf_statfs and osf_fstatfs syscalls

Do not attempt to print struct osf_statfs as if it was the same as
struct statfs.  Since struct osf_statfs has never been decoded properly,
it is probably too late to implement a decoder, so let's just print the
pointer.

* statfs.c [ALPHA] (SYS_FUNC(osf_statfs), SYS_FUNC(osf_fstatfs)): Move ...
* alpha.c: ... here.  Replace printstatfs with printaddr.

8 years agostatfs: print f_flags field only when ST_VALID flag is set
Dmitry V. Levin [Mon, 25 Apr 2016 10:15:14 +0000 (10:15 +0000)]
statfs: print f_flags field only when ST_VALID flag is set

* statfs.c (print_statfs_flags): New function.
(printstatfs, printstatfs64, printcompat_statfs64): Use it.
* xlat/statfs_flags.in (ST_VALID): Move to the head of the list.
* tests/statfs.expected: Update.

8 years agotests: add symlink.test
Fei Jie [Mon, 25 Apr 2016 08:18:23 +0000 (16:18 +0800)]
tests: add symlink.test

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

8 years agotests: add rmdir.test
Fei Jie [Mon, 25 Apr 2016 08:18:22 +0000 (16:18 +0800)]
tests: add rmdir.test

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

8 years agotests: add setdomainname.test
Fei Jie [Mon, 25 Apr 2016 08:18:21 +0000 (16:18 +0800)]
tests: add setdomainname.test

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

8 years agotests: add sched_rr_get_interval.test
Fei Jie [Mon, 25 Apr 2016 08:18:20 +0000 (16:18 +0800)]
tests: add sched_rr_get_interval.test

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

8 years agostatfs: decode f_flags field of struct statfs
Dmitry V. Levin [Sun, 24 Apr 2016 23:54:52 +0000 (23:54 +0000)]
statfs: decode f_flags field of struct statfs

* xlat/statfs_flags.in: New file.
* statfs.c: Include "xlat/statfs_flags.h".
(printstatfs) [_STATFS_F_FLAGS]: Print statbuf.f_flags as flags.
(printstatfs64) [_STATFS_F_FLAGS]: Likewise.
(printcompat_statfs64): Likewise.
* tests/statfs.expected: Update.

8 years agostatfs: don't quote f_type macro names
Zev Weiss [Sun, 24 Apr 2016 23:32:33 +0000 (18:32 -0500)]
statfs: don't quote f_type macro names

* statfs.c (sprintfstype): Don't add double-quotes to fs magic macros.
* tests/statfs.expected: Remove double-quotes.

8 years agotests/shmxt.c: robustify against arch specific issues
Dmitry V. Levin [Sat, 23 Apr 2016 01:53:43 +0000 (01:53 +0000)]
tests/shmxt.c: robustify against arch specific issues

Do not treat failed shmat(SHM_RND) as a test failure.
This change partially reverts commit
bea707377d2ee3e1950bfa43537ef928163a5fa6.

* tests/shmxt.c (main): Use SHM_RND in the second shmat call,
do not treat its potential error as a test failure.

8 years agoRename PRI__s64 to PRI__d64
Dmitry V. Levin [Fri, 22 Apr 2016 23:54:58 +0000 (23:54 +0000)]
Rename PRI__s64 to PRI__d64

As PRI__*64 macros mirror PRI*64 macros from inttypes.h, follow the
principle of least astonishment and name these macros the same way.

* defs.h (PRI__s64): Rename to PRI__d64.

8 years agoFix old_mmap output when mmap arguments are unfetchable
Dmitry V. Levin [Fri, 22 Apr 2016 23:41:36 +0000 (23:41 +0000)]
Fix old_mmap output when mmap arguments are unfetchable

* mem.c (SYS_FUNC(old_mmap)): Use umove_or_printaddr instead of umoven
to fetch mmap arguments, return RVAL_DECODED when umove_or_printaddr
fails.
* tests/old_mmap.c (main): Check it.

8 years agoaarch64: fix old_mmap output for arm personality
Dmitry V. Levin [Fri, 22 Apr 2016 23:47:46 +0000 (23:47 +0000)]
aarch64: fix old_mmap output for arm personality

* mem.c (SYS_FUNC(old_mmap)) [AARCH64]: Fetch mmap arguments
as 32-bit integers.

8 years agoDefine old_mmap parser only on architectures that use it
Dmitry V. Levin [Fri, 22 Apr 2016 23:36:26 +0000 (23:36 +0000)]
Define old_mmap parser only on architectures that use it

* mem.c (SYS_FUNC(old_mmap)): Define only on AARCH64, ARM, I386, X86_64,
X32, M68K, S390, and S390X.

8 years agotests: extend test coverage of mmap syscall
Dmitry V. Levin [Fri, 22 Apr 2016 20:37:19 +0000 (20:37 +0000)]
tests: extend test coverage of mmap syscall

Check decoding of "old mmap" edition of mmap syscall
on those architectures that define it.

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

8 years agotests: extend test coverage of mincore syscall
Dmitry V. Levin [Fri, 22 Apr 2016 14:14:39 +0000 (14:14 +0000)]
tests: extend test coverage of mincore syscall

* tests/mincore.c (print_mincore): New function.
(test_mincore): Use it.  Check mincore with invalid vec address.
Check mincore with length argument not a multiple of the page size.
(main): Check with DEFAULT_STRLEN pages.

8 years agoMove parsers of sync_file_range and sync_file_range2 syscalls to libstrace
Dmitry V. Levin [Fri, 22 Apr 2016 04:17:06 +0000 (04:17 +0000)]
Move parsers of sync_file_range and sync_file_range2 syscalls to libstrace

For each given architecture only one of these two syscalls has a
syscallent entry.  When each parser is placed into a separate file,
moving to libstrace ensures that only one of them that is need
is linked into strace executable.

* sync_file_range.c (SYS_FUNC(sync_file_range2)): Move ...
* sync_file_range2.c: ... here.
* Makefile.am (strace_SOURCES): Move sync_file_range.c ...
(libstrace_a_SOURCES): ... here.  Add sync_file_range2.c.
(strace_SOURCES_c): Add filtered libstrace_a_SOURCES.

8 years agotests: check decoding of clock_adjtime syscall
Dmitry V. Levin [Fri, 22 Apr 2016 01:13:27 +0000 (01:13 +0000)]
tests: check decoding of clock_adjtime syscall

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

8 years agotests: do not include <assert.h> unnecessarily
Dmitry V. Levin [Thu, 21 Apr 2016 18:20:47 +0000 (18:20 +0000)]
tests: do not include <assert.h> unnecessarily

Automatically change tests/*.c files using the following script:

for f in tests/*.c; do
grep -q '\<assert(' "$f" ||
sed -i '/# *include *<assert\.h>/d' "$f"
done

8 years agotests: do not include <errno.h> unnecessarily
Dmitry V. Levin [Thu, 21 Apr 2016 18:20:47 +0000 (18:20 +0000)]
tests: do not include <errno.h> unnecessarily

Automatically change tests/*.c files using the following script:

for f in tests/*.c; do
grep -Fv errno.h "$f" |
grep -Ewq '(si_)?errno|SOCK_FILTER_DENY_SYSCALL' ||
sed -i '/# *include *<errno\.h>/d' "$f"
done

8 years agotests/xetpriority.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:34:19 +0000 (21:34 +0000)]
tests/xetpriority.c: print syscall() result using %ld format

8 years agotests/xetpgid.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:33:43 +0000 (21:33 +0000)]
tests/xetpgid.c: print syscall() result using %ld format

8 years agotests/xchownx.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:33:24 +0000 (21:33 +0000)]
tests/xchownx.c: use errno2name

8 years agotests/userfaultfd.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:32:52 +0000 (21:32 +0000)]
tests/userfaultfd.c: stop using assert

8 years agotests/unlinkat.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:32:28 +0000 (21:32 +0000)]
tests/unlinkat.c: print syscall() result using %ld format

8 years agotests/umount.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:32:00 +0000 (21:32 +0000)]
tests/umount.c: use errno2name

8 years agotests/truncate64.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:28:30 +0000 (21:28 +0000)]
tests/truncate64.c: cleanup

* tests/truncate64.c (main): Use errno2name, stop using assert.

8 years agotests/truncate.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:28:03 +0000 (21:28 +0000)]
tests/truncate.c: cleanup

* tests/truncate.c (main): Use errno2name, stop using assert.

8 years agotests/tee.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:27:19 +0000 (21:27 +0000)]
tests/tee.c: stop using assert

8 years agotests/syslog.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:26:52 +0000 (21:26 +0000)]
tests/syslog.c: use errno2name

8 years agotests/sync_file_range2.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:26:16 +0000 (21:26 +0000)]
tests/sync_file_range2.c: stop using assert

8 years agotests/sync_file_range.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:25:55 +0000 (21:25 +0000)]
tests/sync_file_range.c: stop using assert

8 years agotests/symlinkat.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:25:29 +0000 (21:25 +0000)]
tests/symlinkat.c: cleanup

8 years agotests/swap.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:24:43 +0000 (21:24 +0000)]
tests/swap.c: cleanup

* tests/swap.c (error_msg): Remove.
(main): Use errno2name.

8 years agotests/splice.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:24:01 +0000 (21:24 +0000)]
tests/splice.c: stop using assert

8 years agotests/setugid.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:23:34 +0000 (21:23 +0000)]
tests/setugid.c: cleanup

8 years agotests/sethostname.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:22:50 +0000 (21:22 +0000)]
tests/sethostname.c: use errno2name

8 years agotests/setgroups.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:21:37 +0000 (21:21 +0000)]
tests/setgroups.c: use errno2name

* tests/setgroups.c (errno2str): Remove.
(main): Use errno2name.

8 years agotests/seccomp-strict.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:20:31 +0000 (21:20 +0000)]
tests/seccomp-strict.c: cleanup

* tests/seccomp-strict.c (main): Use errno2name, stop using assert.

8 years agotests/seccomp-filter.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:19:30 +0000 (21:19 +0000)]
tests/seccomp-filter.c: cleanup

* tests/seccomp-filter.c (main): Use errno2name, stop using assert.

8 years agotests/sched_xetscheduler.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:18:14 +0000 (21:18 +0000)]
tests/sched_xetscheduler.c: print syscall() result using %ld format

8 years agotests/sched_xetparam.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:17:46 +0000 (21:17 +0000)]
tests/sched_xetparam.c: print syscall() result using %ld format

8 years agotests/renameat.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:17:11 +0000 (21:17 +0000)]
tests/renameat.c: print syscall() result using %ld format

8 years agotests/rename.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:16:54 +0000 (21:16 +0000)]
tests/rename.c: print syscall() result using %ld format

8 years agotests/readv.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:16:34 +0000 (21:16 +0000)]
tests/readv.c: cleanup

8 years agotests/pwritev.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:16:02 +0000 (21:16 +0000)]
tests/pwritev.c: use errno2name

8 years agotests/preadv-pwritev.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:14:52 +0000 (21:14 +0000)]
tests/preadv-pwritev.c: cleanup

8 years agotests/prctl-seccomp-strict.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:13:20 +0000 (21:13 +0000)]
tests/prctl-seccomp-strict.c: cleanup

* tests/prctl-seccomp-strict.c (main): Use errno2name,
stop using assert.

8 years agotests/openat.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:12:41 +0000 (21:12 +0000)]
tests/openat.c: use errno2name

8 years agotests/open.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 21:12:14 +0000 (21:12 +0000)]
tests/open.c: use errno2name

8 years agotests/mlockall.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:06:13 +0000 (21:06 +0000)]
tests/mlockall.c: cleanup

8 years agotests/mlock2.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 21:05:39 +0000 (21:05 +0000)]
tests/mlock2.c: stop using assert

8 years agotests/mknod.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:04:00 +0000 (21:04 +0000)]
tests/mknod.c: print syscall() result using %ld format

8 years agotests/mkdirat.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:03:13 +0000 (21:03 +0000)]
tests/mkdirat.c: print syscall() result using %ld format

8 years agotests/lseek.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:01:40 +0000 (21:01 +0000)]
tests/lseek.c: cleanup

* tests/lseek.c (main): Use errno2name, stop using assert.

8 years agotests/llseek.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 21:00:47 +0000 (21:00 +0000)]
tests/llseek.c: cleanup

* tests/llseek.c (main): Use errno2name, stop using assert.

8 years agotests/linkat.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 21:00:18 +0000 (21:00 +0000)]
tests/linkat.c: print syscall() result using %ld format

8 years agotests/iopl.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:59:46 +0000 (20:59 +0000)]
tests/iopl.c: use errno2name

8 years agotests/ioperm.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:59:26 +0000 (20:59 +0000)]
tests/ioperm.c: use errno2name

8 years agotests/getgroups.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:51:15 +0000 (20:51 +0000)]
tests/getgroups.c: use errno2name

* tests/getgroups.c (errno2str): Remove.
(main): Use errno2name.

8 years agotests/ftruncate64.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 20:50:08 +0000 (20:50 +0000)]
tests/ftruncate64.c: cleanup

* tests/ftruncate64.c (main): Use errno2name, stop using assert.

8 years agotests/ftruncate.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 20:48:23 +0000 (20:48 +0000)]
tests/ftruncate.c: cleanup

* tests/ftruncate.c (main): Use errno2name, stop using assert.

8 years agotests/fsync.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:46:44 +0000 (20:46 +0000)]
tests/fsync.c: print syscall() result using %ld format

8 years agotests/flock.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:46:15 +0000 (20:46 +0000)]
tests/flock.c: print syscall() result using %ld format

8 years agotests/file_handle.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:45:17 +0000 (20:45 +0000)]
tests/file_handle.c: use errno2name

8 years agotests/fdatasync.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:41:38 +0000 (20:41 +0000)]
tests/fdatasync.c: print syscall() result using %ld format

8 years agotests/fchownat.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:40:49 +0000 (20:40 +0000)]
tests/fchownat.c: use errno2name

8 years agotests/fchmodat.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:39:58 +0000 (20:39 +0000)]
tests/fchmodat.c: use errno2name

8 years agotests/fchmod.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:39:40 +0000 (20:39 +0000)]
tests/fchmod.c: use errno2name

8 years agotests/faccessat.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:38:47 +0000 (20:38 +0000)]
tests/faccessat.c: print syscall() result using %ld format

8 years agotests/epoll_wait.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:38:15 +0000 (20:38 +0000)]
tests/epoll_wait.c: print syscall() result using %ld format

8 years agotests/epoll_ctl.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:37:50 +0000 (20:37 +0000)]
tests/epoll_ctl.c: print syscall() result using %ld format

8 years agotests/epoll_create1.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 20:36:45 +0000 (20:36 +0000)]
tests/epoll_create1.c: cleanup

* tests/epoll_create1.c (main): Use errno2name, stop using assert.

8 years agotests/epoll_create.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:35:20 +0000 (20:35 +0000)]
tests/epoll_create.c: print syscall() result using %ld format

8 years agotests/dup3.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:34:56 +0000 (20:34 +0000)]
tests/dup3.c: print syscall() result using %ld format

8 years agotests/dup2.c: print syscall() result using %ld format
Dmitry V. Levin [Thu, 21 Apr 2016 20:34:36 +0000 (20:34 +0000)]
tests/dup2.c: print syscall() result using %ld format

8 years agotests/dup.c: cleanup
Dmitry V. Levin [Thu, 21 Apr 2016 20:33:32 +0000 (20:33 +0000)]
tests/dup.c: cleanup

8 years agotests/creat.c: stop using sys/stat.h
Dmitry V. Levin [Thu, 21 Apr 2016 20:32:43 +0000 (20:32 +0000)]
tests/creat.c: stop using sys/stat.h

8 years agotests/copy_file_range.c: stop using assert
Dmitry V. Levin [Thu, 21 Apr 2016 20:31:32 +0000 (20:31 +0000)]
tests/copy_file_range.c: stop using assert

8 years agotests/chroot.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:30:25 +0000 (20:30 +0000)]
tests/chroot.c: use errno2name

8 years agotests/aio.c: use errno2name
Dmitry V. Levin [Thu, 21 Apr 2016 20:29:29 +0000 (20:29 +0000)]
tests/aio.c: use errno2name

8 years agotests: cleanup acct.test
Dmitry V. Levin [Thu, 21 Apr 2016 20:16:32 +0000 (20:16 +0000)]
tests: cleanup acct.test

* tests/acct.c (main): Use errno2name, stop using assert,
change sample file name.
* tests/acct.test: Update.

8 years agotests: use errno2name()
Dmitry V. Levin [Thu, 21 Apr 2016 17:49:32 +0000 (17:49 +0000)]
tests: use errno2name()

Automatically change tests/*.c files using the following sed regexp:
sed -i 's/errno == E[[:alnum:]]\+ ? "E[[:alnum:]]\+" : "E[[:alnum:]]\+"/errno2name()/g'

8 years agotests/dup.c: include "tests.h"
Dmitry V. Levin [Thu, 21 Apr 2016 18:16:10 +0000 (18:16 +0000)]
tests/dup.c: include "tests.h"

This is going to be necessary for the following commit.

8 years agotests: add getpgrp.test
Fei Jie [Thu, 21 Apr 2016 07:53:52 +0000 (15:53 +0800)]
tests: add getpgrp.test

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

8 years agotests: add access.test
Fei Jie [Thu, 21 Apr 2016 07:53:51 +0000 (15:53 +0800)]
tests: add access.test

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

8 years agotests: add fchdir.test
Fei Jie [Thu, 21 Apr 2016 07:53:50 +0000 (15:53 +0800)]
tests: add fchdir.test

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

8 years agotests: add mkdir.test
Fei Jie [Thu, 21 Apr 2016 07:53:49 +0000 (15:53 +0800)]
tests: add mkdir.test

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

8 years agotests: add getsid.test
Fei Jie [Thu, 21 Apr 2016 01:40:01 +0000 (09:40 +0800)]
tests: add getsid.test

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

8 years agotests: add errno2name function to libtests
Dmitry V. Levin [Wed, 20 Apr 2016 22:51:28 +0000 (22:51 +0000)]
tests: add errno2name function to libtests

Add a simple translator of errno to its name, so one could
simply use errno2name() instead of complex expressions like
errno == EINVAL ? "EINVAL" : "EFAULT".

* tests.h (errno2name): New prototype.
* errno2name.c: New file.
* Makefile.am (libtests_a_SOURCES): Add it.

8 years agohppa: rename ECANCELLED to ECANCELED
Dmitry V. Levin [Wed, 20 Apr 2016 18:04:34 +0000 (18:04 +0000)]
hppa: rename ECANCELLED to ECANCELED

hppa seems to be the only architecture that defines ECANCELLED synonym
for ECANCELED constant, other architectures just define ECANCELED.
Change the way how this constant is printed on hppa to be in line
with other architectures.

* linux/hppa/errnoent.h [253]: Rename ECANCELLED to ECANCELED.

8 years agoRemove parser of unimplemented timerfd syscall
Dmitry V. Levin [Wed, 20 Apr 2016 17:15:05 +0000 (17:15 +0000)]
Remove parser of unimplemented timerfd syscall

timerfd syscall was introduced in v2.6.22-rc1, but in v2.6.25-rc1
it was replaced by timerfd_* syscall family.

* linux/avr32/syscallent.h (timerfd): Fix nargs.
* linux/dummy.h (sys_timerfd): Add stub alias.
* time.c (SYS_FUNC(timerfd)): Remove.

8 years agotests: workaround kernel bugs in seccomp-strict.test and prctl-seccomp-strict.test
Dmitry V. Levin [Wed, 20 Apr 2016 14:30:43 +0000 (14:30 +0000)]
tests: workaround kernel bugs in seccomp-strict.test and prctl-seccomp-strict.test

If kernel implementation of strict seccomp mode is buggy, test programs
will be killed by SIGKILL.  This is a known problem at least on
x32 and mips.  Skip affected tests if this is the case.

This change partially revert commit 9c1a72cd3f3d52d573876ce474b620a5f141fb1b.

* tests/seccomp-strict.c (main): Remove workaround for x32.
* tests/prctl-seccomp-strict.c: Likewise.
* tests/seccomp-strict.test: Skip the test if the test program
has been killed by SIGKILL.
* tests/prctl-seccomp-strict.test: Likewise.

8 years agotests/shmxt.c: do not use SHM_RND, it is unreliable
Dmitry V. Levin [Wed, 20 Apr 2016 05:40:58 +0000 (05:40 +0000)]
tests/shmxt.c: do not use SHM_RND, it is unreliable

* tests/shmxt.c (main): Do not set SHM_RND flag.

8 years agotests/rt_sigpending.c: fix for systems where _NSIG > 16 * sizeof(long)
Dmitry V. Levin [Wed, 20 Apr 2016 04:32:04 +0000 (04:32 +0000)]
tests/rt_sigpending.c: fix for systems where _NSIG > 16 * sizeof(long)

* tests/rt_sigsuspend.c (iterate): Do not assume that size will be less
than sizeof(long) on the second iteration.

8 years agoprctl-seccomp-strict.test: robustify against unrelated prctl invocations
Dmitry V. Levin [Wed, 20 Apr 2016 00:26:46 +0000 (00:26 +0000)]
prctl-seccomp-strict.test: robustify against unrelated prctl invocations

* tests/prctl-seccomp-strict.test: Filter out PR_GET_* prctl calls.

8 years agotests: adjust rt_sigpending to older kernels
Dmitry V. Levin [Tue, 19 Apr 2016 22:16:30 +0000 (22:16 +0000)]
tests: adjust rt_sigpending to older kernels

With linux kernels older than v3.9-rc1, compat rt_sigpending syscall
could fail with EFAULT in cases where on later kernels it succeeds.
Adjust the test to handle both cases properly.

* tests/rt_sigpending.c (iterate): Stop iterations if rt_sigpending
failed with EFAULT.

8 years agotests: adjust readv/writev and preadv/pwritev tests to older kernels
Dmitry V. Levin [Tue, 19 Apr 2016 21:10:44 +0000 (21:10 +0000)]
tests: adjust readv/writev and preadv/pwritev tests to older kernels

With linux kernels older than v3.16-rc1, iovec based compat syscalls may
return EINVAL in some cases where on later kernels they return EFAULT.
Adjust tests to handle both cases properly.

* tests/preadv-pwritev.c: Include <errno.h>.
(main): Print either "EINVAL" or "EFAULT" depending on errno.
* tests/pwritev.c: Likewise.
* tests/readv.c: Likewise.

8 years agotests: remove obsolete non-strict uid tests
Dmitry V. Levin [Tue, 19 Apr 2016 18:45:25 +0000 (18:45 +0000)]
tests: remove obsolete non-strict uid tests

Recently added strict tests for uid/gid related syscalls
made old uid tests obsolete.

* tests/uid.awk: Remove.
* tests/uid.c: Remove.
* tests/uid.test: Remove.
* tests/uid16.c: Remove.
* tests/uid16.test: Remove.
* tests/uid32.c: Remove.
* tests/uid32.test: Remove.
* tests/.gitignore: Remove uid, uid16, and uid32.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Remove uid.test, uid16.test, and uid32.test.
(EXTRA_DIST): Remove uid.awk.

8 years agotests: extend test coverage of getuid/getgid family syscalls
Dmitry V. Levin [Tue, 19 Apr 2016 18:28:03 +0000 (18:28 +0000)]
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.