blob: 3e1790a4f60f55f6230ad295b1504e1328f7feac [file] [log] [blame]
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +00001#!/bin/sh
2
3# Check how ftruncate, lseek and stat family syscalls are traced.
4
5. "${srcdir=.}/init.sh"
6
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +00007check_prog dd
8check_prog find
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +00009
Dmitry V. Levin8f546642015-03-17 17:07:57 +000010EXPECTED="$LOG.expected"
Dmitry V. Levin655633e2015-01-08 00:32:35 +000011size=46118400000
12sample=stat_sample
13
14rm -f $sample
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +000015umask 022
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +000016
Dmitry V. Levin8f546642015-03-17 17:07:57 +000017run_prog_skip_if_failed \
18 dd seek=$size bs=1 count=0 if=/dev/null of=$sample
19run_strace -edesc $args
Dmitry V. Levin655633e2015-01-08 00:32:35 +000020
21r_ftruncate="ftruncate(64)?\\(1, $size\\) += 0"
Dmitry V. Levin655633e2015-01-08 00:32:35 +000022r_lseek="lseek\\(1, $size, SEEK_CUR\\) += $size"
23r_llseek="_llseek\\(1, $size, \\[$size\\], SEEK_CUR\\) += 0"
Dmitry V. Levin655633e2015-01-08 00:32:35 +000024
Dmitry V. Levin8f546642015-03-17 17:07:57 +000025cat > "$EXPECTED" << __EOF__
26$r_ftruncate
27$r_lseek|$r_llseek
28__EOF__
29
30match_grep "$LOG" "$EXPECTED"
31
32run_prog_skip_if_failed \
33 find -L $sample -quit
34run_strace -efile $args
Dmitry V. Levin655633e2015-01-08 00:32:35 +000035
36stat="\\{st_mode=S_IFREG\\|0644, st_size=$size, \\.\\.\\.\\}"
37r_stat="stat(64)?\\(\"$sample\", $stat\\) += 0"
38r_fstatat="(new)?fstatat(64)?\\(AT_FDCWD, \"$sample\", $stat, 0\\) += 0"
Dmitry V. Levin655633e2015-01-08 00:32:35 +000039
Dmitry V. Levin8f546642015-03-17 17:07:57 +000040cat > "$EXPECTED" << __EOF__
41$r_stat|$r_fstatat
42__EOF__
43
44match_grep "$LOG" "$EXPECTED"
45
46run_prog_skip_if_failed \
47 find $sample -quit
48run_strace -efile $args
Dmitry V. Levin655633e2015-01-08 00:32:35 +000049
50r_lstat="lstat(64)?\\(\"$sample\", $stat\\) += 0"
51r_lfstatat="(new)?fstatat(64)?\\(AT_FDCWD, \"$sample\", $stat, AT_SYMLINK_NOFOLLOW\\) += 0"
Dmitry V. Levin655633e2015-01-08 00:32:35 +000052
Dmitry V. Levin8f546642015-03-17 17:07:57 +000053cat > "$EXPECTED" << __EOF__
54$r_lstat|$r_lfstatat
55__EOF__
56
57match_grep "$LOG" "$EXPECTED"
58
59rm -f "$EXPECTED" $sample
Mike Frysinger1970da02013-05-02 15:35:40 -040060
Dmitry V. Levin318b0dd2013-05-02 00:44:57 +000061exit 0