aboutsummaryrefslogtreecommitdiff
path: root/tests/fstatat64.c
AgeCommit message (Collapse)Author
2017-05-25Upgrade strace to 4.17.Elliott Hughes
Noteworthy changes in release 4.17 (2017-05-24) =============================================== * Changes in command line syntax * Syscall classes specified in -e trace= option now have % prefix (like -e trace=%process). Old style class names without leading % are still supported, but considered deprecated now. * Improvements * Optimized syscall filtering. * Improved representation of timestamps. * Enhanced decoding of sched_setattr syscall. * Added -e trace=%stat option for tracing variants of stat syscall. * Added -e trace=%lstat option for tracing variants of lstat syscall. * Added -e trace=%fstat option for tracing variants of fstat and fstatat syscalls. * Added -e trace=%%stat option for tracing syscalls used for querying file status information (stat, lstat, fstat, fstatat, statx, and their variations). * Added -e trace=%statfs option for tracing statfs, statfs64 and statvfs syscalls. * Added -e trace=%fstatfs option for tracing fstatfs, fstatfs64 and fstatvfs syscalls. * Added -e trace=%%statfs option for tracing syscalls used for querying file system statistics information (statfs-like, fstatfs-like and ustat). * Added -e trace=/regex option for filtering syscalls using regular expressions. * Added support for prepending of question mark before syscall qualification in -e trace expressions in order to suppress error in case no syscalls matched the provided qualification. * Implemented decoding of signal mask in rt_sigreturn syscall on alpha, arc, arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k, powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86, and xtensa architectures. * Implemented decoding of statx syscall. * Implemented decoding of NS_* ioctl commands. * Implemented decoding of the remaining V4L2_BUF_TYPE_* types. * Implemented decoding of VIDIOC_[SG]_TUNER ioctl commands. * Implemented decoding of NLMSG_ERROR netlink messages. * Improved decoding of BPF_PROG_ATTACH command of bpf syscall. * Improved decoding of misplaced parts in DM_* ioctl commands. * Updated lists of ioctl commands from Linux 4.11. * Bug fixes * Fixed decoding of flags argument of preadv2 and pwritev2 syscalls on x32. * Fixed the number of arguments and tracing flags of alpha specific syscalls. * Fixed decoding of old sigsuspend syscall on alpha, cris, mips, powerpc, powerpc64, sh, sh64, sparc, and sparc64. * Fixed decoding of sgetmask and ssetmask syscalls on 64-bit architectures. * Fixed decoding of netlink messages received within struct msghdr. * Worked around a bug in miscompiled aarch64 kernels leading to the 3rd argument of sched_getattr syscall being not quite 32-bit. * Fixed corner cases of printing inaccessible times argument of utimes and futimesat syscalls. Bug: N/A Test: strace date Change-Id: Idc4614a3f16ffe57fdca2a07a05253900d1c52bb
2017-02-15Upgrade strace to 4.16 from 4.14.Elliott Hughes
Noteworthy changes in release 4.16 (2017-02-14) * Improvements * Implemented syscall return value injection (-e inject=SET:retval= option). * Implemented signal injection (-e inject=SET:signal= option). * Implemented decoding of SUID_DUMP_* constants in PR_[GS]ET_DUMPABLE. * Implemented decoding of all SG_* ioctl commands. * Implemented decoding of ustat syscall. * Implemented decoding of BPF_OBJ_PIN, BPF_OBJ_GET, BPF_PROG_ATTACH, and BPF_PROG_DETACH commands of bpf syscall. * Enhanced decoding of sg_io_hdr and sg_io_v4 structures. * Enhanced decoding of get_robust_list, getrandom, io_submit, set_robust_list syscalls. * Enhanced decoding of entities of kernel long type on x32 and mips n32 ABIs. * Updated lists of IP_*, IPV6_*, and LOOP_* constants. * Updated lists of ioctl commands from Linux 4.10. * Added decoding of recently added syscalls on avr32, microblaze, ppc, and ppc64. * Bug fixes * Fixed pathmatch of oldselect syscall on 64-bit architectures. * Fixed decoding of mmap2 syscall on s390 when arguments are not available. * Fixed decoding of kexec_file_load, mprotect, pkey_mprotect, prctl, preadv*, and pwritev* syscalls on x32. * Fixed printing of string arguments of getxattr and setxattr syscalls when -s option is used to limit the printed string size. * Fixed decoding of ifconf, ifreq, and loop_info structures on non-native personalities. * Fixed decoding of SG_* and LOOP_* ioctl commands. * Fixed build on mips with musl libc. * Fixed cross-building of ioctlsort. * Applied minor formatting fixes to the manual page. Noteworthy changes in release 4.15 (2016-12-14) * Changes in behavior * Time stamps are now printed according to ISO 8601. * Changed output format of val3 parameter of futex FUTEX_WAKE_OP operation. * The last argument of mincore, sched_getaffinity, and sched_setaffinity syscalls is now formatted as an array. * Improvements * Implemented syscall fault injection (-e fault=... option). * Implemented decoding of DM_* ioctl commands. * Implemented decoding of attr parameter of perf_event_open syscall. * Implemented decoding of pkey_alloc, pkey_free, and pkey_mprotect syscalls. * Implemented dumping of mq_timedsend and mq_timedreceive syscalls. * Implemented decoding of PR_SET_FP_MODE and PR_GET_FP_MODE operations of prctl syscall. * Implemented PTRACE_GETREGS API support on m68k. * Updated lists of ARCH_*, BPF_*, BTRFS_*, FALLOC_*, MS_*, *_MAGIC, and V4L2_* constants. * Updated lists of ioctl commands from Linux 4.9. * Added decoding of recently added syscalls on arc, x32, and xtensa. * Enhanced manual page. * Bug fixes * Fixed corner cases in decoding of exit, exit_group, futimesat, getgroups, getresuid, init_module, inotify_init1, kcmp, kexec_load, lookup_dcookie, mq_getsetattr, mq_notify, mq_open, mq_timedreceive, mq_timedsend, name_to_handle_at, prctl, process_vm_readv, process_vm_writev, setfsuid, setgroups, setns, unshare, and utimes syscalls. * Fixed handling of verbose flag in printing of controls array of struct v4l2_ext_controls. * Fixed omission of field names in the output of capability, sigaction, sigevent, statfs, timespec, timeval, and utimbuf structures. * Fixed printing of unknown syscalls in siginfo structure. * Fixed decoding of ioctl constants on m68k. * Fixed cris architecture support. * Fixed cross build when host compiler does not support the same set of warning flags as the cross compiler. * Fixed build on SLE10 and SLE11. Bug: N/A Test: manual Change-Id: I590bf5db1652aa1dfdc0eb16e30fd97c82af2261
2016-08-09Use <asm/unistd.h> instead of <sys/syscall.h>Dmitry V. Levin
There are no users of SYS_* macros provided by <sys/syscall.h>, and definitions of __NR_* macros could be obtained directly from <asm/unistd.h>. * defs.h: Include <asm/unistd.h> instead of <sys/syscall.h>. * test/seccomp.c: Likewise. * test/threaded_execve.c: Likewise. * test/x32_lseek.c: Likewise. * test/x32_mmap.c: Likewise. * tests/_newselect.c: Likewise. * tests/access.c: Likewise. * tests/acct.c: Likewise. * tests/aio.c: Likewise. * tests/alarm.c: Likewise. * tests/attach-f-p.c: Likewise. * tests/bpf.c: Likewise. * tests/brk.c: Likewise. * tests/chmod.c: Likewise. * tests/chown.c: Likewise. * tests/chown32.c: Likewise. * tests/chroot.c: Likewise. * tests/clock_adjtime.c: Likewise. * tests/clock_nanosleep.c: Likewise. * tests/clock_xettime.c: Likewise. * tests/copy_file_range.c: Likewise. * tests/creat.c: Likewise. * tests/dup2.c: Likewise. * tests/dup3.c: Likewise. * tests/epoll_create.c: Likewise. * tests/epoll_create1.c: Likewise. * tests/epoll_ctl.c: Likewise. * tests/epoll_pwait.c: Likewise. * tests/epoll_wait.c: Likewise. * tests/eventfd.c: Likewise. * tests/execveat.c: Likewise. * tests/faccessat.c: Likewise. * tests/fchdir.c: Likewise. * tests/fchmod.c: Likewise. * tests/fchmodat.c: Likewise. * tests/fchown.c: Likewise. * tests/fchown32.c: Likewise. * tests/fchownat.c: Likewise. * tests/fcntl.c: Likewise. * tests/fcntl64.c: Likewise. * tests/fdatasync.c: Likewise. * tests/flock.c: Likewise. * tests/fstat.c: Likewise. * tests/fstat64.c: Likewise. * tests/fstatat64.c: Likewise. * tests/fstatfs.c: Likewise. * tests/fstatfs64.c: Likewise. * tests/fsync.c: Likewise. * tests/ftruncate.c: Likewise. * tests/ftruncate64.c: Likewise. * tests/futimesat.c: Likewise. * tests/get_mempolicy.c: Likewise. * tests/getcwd.c: Likewise. * tests/getdents.c: Likewise. * tests/getdents64.c: Likewise. * tests/getegid.c: Likewise. * tests/getegid32.c: Likewise. * tests/geteuid.c: Likewise. * tests/geteuid32.c: Likewise. * tests/getgid.c: Likewise. * tests/getgid32.c: Likewise. * tests/getgroups.c: Likewise. * tests/getgroups32.c: Likewise. * tests/getpgrp.c: Likewise. * tests/getrandom.c: Likewise. * tests/getresgid.c: Likewise. * tests/getresgid32.c: Likewise. * tests/getresuid.c: Likewise. * tests/getresuid32.c: Likewise. * tests/getrlimit.c: Likewise. * tests/getrusage.c: Likewise. * tests/getuid.c: Likewise. * tests/getuid32.c: Likewise. * tests/getxxid.c: Likewise. * tests/ioctl_uffdio.c: Likewise. * tests/ioperm.c: Likewise. * tests/iopl.c: Likewise. * tests/ipc.c: Likewise. * tests/kill.c: Likewise. * tests/lchown.c: Likewise. * tests/lchown32.c: Likewise. * tests/libmmsg.c: Likewise. * tests/libsocketcall.c: Likewise. * tests/link.c: Likewise. * tests/linkat.c: Likewise. * tests/llseek.c: Likewise. * tests/lseek.c: Likewise. * tests/lstat.c: Likewise. * tests/lstat64.c: Likewise. * tests/mbind.c: Likewise. * tests/membarrier.c: Likewise. * tests/memfd_create.c: Likewise. * tests/migrate_pages.c: Likewise. * tests/mkdir.c: Likewise. * tests/mkdirat.c: Likewise. * tests/mknod.c: Likewise. * tests/mknodat.c: Likewise. * tests/mlock.c: Likewise. * tests/mlock2.c: Likewise. * tests/move_pages.c: Likewise. * tests/newfstatat.c: Likewise. * tests/nsyscalls.c: Likewise. * tests/old_mmap.c: Likewise. * tests/oldselect.c: Likewise. * tests/open.c: Likewise. * tests/openat.c: Likewise. * tests/pause.c: Likewise. * tests/poll.c: Likewise. * tests/prctl-seccomp-filter-v.c: Likewise. * tests/prctl-seccomp-strict.c: Likewise. * tests/preadv2-pwritev2.c: Likewise. * tests/prlimit64.c: Likewise. * tests/pselect6.c: Likewise. * tests/ptrace.c: Likewise. * tests/readdir.c: Likewise. * tests/readlink.c: Likewise. * tests/readlinkat.c: Likewise. * tests/reboot.c: Likewise. * tests/remap_file_pages.c: Likewise. * tests/rename.c: Likewise. * tests/renameat.c: Likewise. * tests/renameat2.c: Likewise. * tests/rmdir.c: Likewise. * tests/rt_sigpending.c: Likewise. * tests/rt_sigprocmask.c: Likewise. * tests/rt_sigsuspend.c: Likewise. * tests/rt_sigtimedwait.c: Likewise. * tests/rt_tgsigqueueinfo.c: Likewise. * tests/sched_get_priority_mxx.c: Likewise. * tests/sched_rr_get_interval.c: Likewise. * tests/sched_xetaffinity.c: Likewise. * tests/sched_xetattr.c: Likewise. * tests/sched_xetparam.c: Likewise. * tests/sched_xetscheduler.c: Likewise. * tests/sched_yield.c: Likewise. * tests/seccomp-filter-v.c: Likewise. * tests/seccomp-filter.c: Likewise. * tests/seccomp-strict.c: Likewise. * tests/select.c: Likewise. * tests/sendfile.c: Likewise. * tests/sendfile64.c: Likewise. * tests/set_mempolicy.c: Likewise. * tests/setdomainname.c: Likewise. * tests/setfsgid.c: Likewise. * tests/setfsgid32.c: Likewise. * tests/setfsuid.c: Likewise. * tests/setfsuid32.c: Likewise. * tests/setgid.c: Likewise. * tests/setgid32.c: Likewise. * tests/setgroups.c: Likewise. * tests/setgroups32.c: Likewise. * tests/sethostname.c: Likewise. * tests/setregid.c: Likewise. * tests/setregid32.c: Likewise. * tests/setresgid.c: Likewise. * tests/setresgid32.c: Likewise. * tests/setresuid.c: Likewise. * tests/setresuid32.c: Likewise. * tests/setreuid.c: Likewise. * tests/setreuid32.c: Likewise. * tests/setrlimit.c: Likewise. * tests/setuid.c: Likewise. * tests/setuid32.c: Likewise. * tests/signalfd4.c: Likewise. * tests/socketcall.c: Likewise. * tests/splice.c: Likewise. * tests/stat.c: Likewise. * tests/stat64.c: Likewise. * tests/statfs.c: Likewise. * tests/statfs64.c: Likewise. * tests/swap.c: Likewise. * tests/symlink.c: Likewise. * tests/symlinkat.c: Likewise. * tests/sync.c: Likewise. * tests/sync_file_range.c: Likewise. * tests/sync_file_range2.c: Likewise. * tests/syslog.c: Likewise. * tests/tee.c: Likewise. * tests/time.c: Likewise. * tests/timer_create.c: Likewise. * tests/timer_xettime.c: Likewise. * tests/timerfd_xettime.c: Likewise. * tests/times-fail.c: Likewise. * tests/times.c: Likewise. * tests/truncate.c: Likewise. * tests/truncate64.c: Likewise. * tests/ugetrlimit.c: Likewise. * tests/umount.c: Likewise. * tests/umount2.c: Likewise. * tests/uname.c: Likewise. * tests/unix-pair-send-recv.c: Likewise. * tests/unlink.c: Likewise. * tests/unlinkat.c: Likewise. * tests/userfaultfd.c: Likewise. * tests/utimes.c: Likewise. * tests/vhangup.c: Likewise. * tests/vmsplice.c: Likewise. * tests/waitid.c: Likewise. * tests/waitpid.c: Likewise. * tests/xet_robust_list.c: Likewise. * tests/xetpgid.c: Likewise. * tests/xetpriority.c: Likewise. * tests/xettimeofday.c: Likewise.
2016-01-12tests: fix TEST_SYSCALL_{NR,STR} and STRUCT_STAT_STR macros for muslDmitry V. Levin
The contents of TEST_SYSCALL_NAME and STRUCT_STAT macros was subject to macro expansion when used in definitions of TEST_SYSCALL_NR, TEST_SYSCALL_STR, and STRUCT_STAT_STR macros. As some libcs, e.g. musl libc, define lfs64 names as macros (stat64 as stat, lstat64 as lstat, etc.), this might result to incorrect expansion of TEST_SYSCALL_NR, TEST_SYSCALL_STR, and STRUCT_STAT_STR macros. To avoid this problem, define these macros directly and remove TEST_SYSCALL_NAME macro. * tests/_newselect.c (TEST_SYSCALL_NAME): Remove. (TEST_SYSCALL_NR, TEST_SYSCALL_STR): New macros. * tests/fcntl.c: Likewise. * tests/fcntl64.c: Likewise. * tests/fstat.c: Likewise. * tests/fstatat64.c: Likewise. * tests/lstat.c: Likewise. * tests/newfstatat.c: Likewise. * tests/select.c: Likewise. * tests/stat.c: Likewise. * tests/fstat64.c (TEST_SYSCALL_NAME): Remove. (TEST_SYSCALL_NR, TEST_SYSCALL_STR, STRUCT_STAT_STR): New macros. * tests/lstat64.c: Likewise. * tests/stat64.c: Likewise. * tests/fstatx.c (TEST_SYSCALL_NR, nrify, nrify_): Remove. * tests/lstatx.c: Likewise. * tests/struct_flock.c (TEST_SYSCALL_NR, TEST_SYSCALL_STR, nrify, nrify_, stringify, stringify_): Remove. * tests/xselect.c: Likewise. * tests/xstatx.c: Check TEST_SYSCALL_STR instead of TEST_SYSCALL_NAME. (STRUCT_STAT_STR, TEST_SYSCALL_STR, stringify, stringify_): Remove. [!STRUCT_STAT] (STRUCT_STAT_STR): New macro.
2016-01-05tests/fstatat64.c: use libtestsDmitry V. Levin
* tests/fstatat64.c: Use SKIP_MAIN_UNDEFINED.
2016-01-05tests: include tests.h instead of config.hDmitry V. Levin
Automatically edit tests/*.c files using the following perl one-liner: perl -0777 -pi -e \ 's/#ifdef HAVE_CONFIG_H\n# include "config\.h"\n#endif\n*/#include "tests.h"\n/' \ tests/*.c
2015-12-05tests: prepare for detailed testing of stat family syscallsDmitry V. Levin
Parametrize code from fstatat.c to support <asm/stat.h> as an alternative to <sys/stat.h> and move it to a separate file. * tests/statx.sh: New file, based on fstatat64.test. * tests/fstatat64.test: Use it. * tests/newfstatat.test: Likewise. * tests/xstatx.c: New file, based on fstatat.c. * tests/fstatat.c: Use it. * tests/Makefile.am (EXTRA_DIST): Add statx.sh and xstatx.c. * tests/fstatat64.c (FSTATAT_NAME): Change to TEST_SYSCALL_NAME. * tests/newfstatat.c: Likewise.
2015-12-02tests: add fstatat64.test and newfstatat.testDmitry V. Levin
* configure.ac (AC_CHECK_FUNCS): Add fstatat, ftruncate, and futimens. * tests/fstatat.c: New file. * tests/fstatat64.c: Likewise. * tests/newfstatat.c: Likewise. * tests/fstatat64.test: New test. * tests/newfstatat.test: Likewise. * tests/Makefile.am (check_PROGRAMS): Add fstatat64 and newfstatat. (fstatat64_CFLAGS, newstatat_CFLAGS): Define. (TESTS): Add fstatat64.test and newfstatat.test. (EXTRA_DIST): Add fstatat.c. * tests/.gitignore: Add fstatat64 and newfstatat.