blob: 3fa1c8db50d7ec11377817b7d61890f2e6289f19 [file] [log] [blame]
Dmitry V. Levin68d64242014-09-10 00:07:32 +00001#!/bin/sh
2
3# Check that getdents/getdents64 syscalls are traced properly.
4
5. "${srcdir=.}/init.sh"
6
Dmitry V. Levin226bf1c2015-03-18 19:14:02 +00007check_prog gawk
8AWKPATH="$srcdir" gawk -f "$srcdir"/getdents.awk "$srcdir"/getdents.out ||
9 framework_skip_ 'gawk does not work properly'
Dmitry V. Levin7e79a8b2015-02-23 21:42:16 +000010
Dmitry V. Levin68d64242014-09-10 00:07:32 +000011check_prog ls
12check_prog mkdir
Dmitry V. Levinc9297712015-01-25 00:04:20 +000013check_prog rm
14check_prog seq
15check_prog touch
Dmitry V. Levin68d64242014-09-10 00:07:32 +000016
Dmitry V. Levinc9297712015-01-25 00:04:20 +000017dir="$LOG.dir"
Dmitry V. Levin8f546642015-03-17 17:07:57 +000018rm -rf -- "$dir"
Dmitry V. Levinc9297712015-01-25 00:04:20 +000019mkdir -- "$dir" ||
20 framework_skip_ 'failed to create a directory'
Dmitry V. Levin68d64242014-09-10 00:07:32 +000021
Dmitry V. Levinc9297712015-01-25 00:04:20 +000022touch -- "$dir/$(for i in $(seq 1 127); do echo A; done; echo Z)" ||
23 framework_skip_ 'failed to create a file'
24
Dmitry V. Levin8f546642015-03-17 17:07:57 +000025ls -- "$dir" > /dev/null ||
Dmitry V. Levinc9297712015-01-25 00:04:20 +000026 framework_skip_ 'failed to list a directory'
Dmitry V. Levin68d64242014-09-10 00:07:32 +000027
Dmitry V. Levin8f546642015-03-17 17:07:57 +000028run_strace -vegetdents,getdents64 ls -- "$dir" > /dev/null
29match_awk
30
Dmitry V. Levinc9297712015-01-25 00:04:20 +000031rm -rf -- "$dir"
Dmitry V. Levin68d64242014-09-10 00:07:32 +000032
33exit 0