strace/tests/getdents.test
Dmitry V. Levin 7e79a8b485 tests: workaround broken awk
* tests/getdents.out: New file.
* tests/Makefile.am (EXTRA_DIST): Add it.
* tests/getdents.test: Check whether awk is capable of matching long
regular expressions.
2015-02-23 22:26:06 +00:00

44 lines
885 B
Bash
Executable File

#!/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