#!/bin/sh # Check how ftruncate, lseek and stat family syscalls are traced. . "${srcdir=.}/init.sh" check_prog dd check_prog find EXPECTED="$LOG.expected" size=46118400000 sample=stat_sample rm -f $sample umask 022 run_prog_skip_if_failed \ dd seek=$size bs=1 count=0 if=/dev/null of=$sample run_strace -edesc $args r_ftruncate="ftruncate(64)?\\(1, $size\\) += 0" r_lseek="lseek\\(1, $size, SEEK_CUR\\) += $size" r_llseek="_llseek\\(1, $size, \\[$size\\], SEEK_CUR\\) += 0" cat > "$EXPECTED" << __EOF__ $r_ftruncate $r_lseek|$r_llseek __EOF__ match_grep "$LOG" "$EXPECTED" run_prog_skip_if_failed \ find -L $sample -quit run_strace -efile $args stat="\\{st_mode=S_IFREG\\|0644, st_size=$size, \\.\\.\\.\\}" r_stat="stat(64)?\\(\"$sample\", $stat\\) += 0" r_fstatat="(new)?fstatat(64)?\\(AT_FDCWD, \"$sample\", $stat, 0\\) += 0" cat > "$EXPECTED" << __EOF__ $r_stat|$r_fstatat __EOF__ match_grep "$LOG" "$EXPECTED" run_prog_skip_if_failed \ find $sample -quit run_strace -efile $args r_lstat="lstat(64)?\\(\"$sample\", $stat\\) += 0" r_lfstatat="(new)?fstatat(64)?\\(AT_FDCWD, \"$sample\", $stat, AT_SYMLINK_NOFOLLOW\\) += 0" cat > "$EXPECTED" << __EOF__ $r_lstat|$r_lfstatat __EOF__ match_grep "$LOG" "$EXPECTED" rm -f "$EXPECTED" $sample exit 0