| #!/bin/sh |
| |
| # Check verbose decoding of 64-bit stat syscall. |
| |
| . "${srcdir=.}/init.sh" |
| |
| check_prog dd |
| check_prog grep |
| check_prog touch |
| |
| OUT="$LOG.out" |
| size=46118400000 |
| sample=stat64_sample |
| |
| umask 022 |
| truncate_cmd="dd seek=$size bs=1 count=0 if=/dev/null of=$sample" |
| $truncate_cmd > "$OUT" 2>&1 || { |
| cat "$OUT" |
| framework_skip_ 'failed to create a large sparse file' |
| } |
| |
| ./stat $sample > /dev/null || |
| fail_ 'stat failed' |
| |
| touch -d '1970-01-01 36028797018963968 seconds' $sample || |
| touch -t 0102030405 $sample |
| |
| for f in $sample . /dev/null; do |
| args="-v -efile ./stat $f" |
| $STRACE -o "$LOG" $args > "$OUT" && |
| LC_ALL=C grep -E -x -f "$OUT" "$LOG" > /dev/null || { |
| cat "$OUT" "$LOG" |
| fail_ "$STRACE $args output mismatch" |
| } |
| done |
| |
| rm -f $sample "$OUT" |
| |
| exit 0 |