blob: 5200c0bece6baafa420cb2c80da70c9a0522330a [file] [log] [blame]
#!/bin/sh
# Check that getdents/getdents64 syscalls are traced properly.
. "${srcdir=.}/init.sh"
check_prog awk
awk -f "$srcdir"/getdents.awk "$srcdir"/getdents.out ||
framework_skip_ 'awk does not work properly'
check_prog ls
check_prog mkdir
check_prog rm
check_prog seq
check_prog touch
dir="$LOG.dir"
mkdir -- "$dir" ||
framework_skip_ 'failed to create a directory'
touch -- "$dir/$(for i in $(seq 1 127); do echo A; done; echo Z)" ||
framework_skip_ 'failed to create a file'
ls -- "$dir" > /dev/null || {
rm -rf -- "$dir"
framework_skip_ 'failed to list a directory'
}
args='-vegetdents,getdents64'
$STRACE -o "$LOG" $args ls -- "$dir" > /dev/null
rc=$?
rm -rf -- "$dir"
[ $rc -eq 0 ] || {
cat "$LOG"
fail_ "strace $args failed"
}
awk -f "$srcdir"/getdents.awk "$LOG" || {
cat "$LOG"
fail_ "strace $args failed to trace getdents/getdents64 properly"
}
exit 0