blob: 8a22a2d153b349abd477bc976a9f8f7dbccc1391 [file] [log] [blame]
Jaegeuk Kime52321f2015-12-16 16:47:23 -08001#!/bin/bash
2
3IMG=../test.img
4TMP=/tmp/res
5XFSTESTS=~/xfstests
6TESTS="4 5 8 11 16 25 32 55 64"
7
8TARGET=./testdir
9MNT=/mnt/resize
10
11mkdir $TARGET 2>/dev/null
12mkdir $MNT 2>/dev/null
13
14umount $TARGET
15umount $MNT
16
17_check_out()
18{
19 if [ $1 -ne 0 ]; then
20 grep ASSERT $TMP
21 echo FAIL RETURN $1
22 exit
23 fi
24}
25
26_get_sec()
27{
28 echo $(($1*1024*1024*1024/512))
29}
30
31_mkfs()
32{
33 echo "========== Initialize $1 GB ============"
34 mkfs.f2fs $IMG `_get_sec $1` | grep sectors
35}
36
37_mount()
38{
39 echo "========== mount to $1 ================="
40 mount -t f2fs -o loop,discard,inline_data,inline_xattr $IMG $1 2>&1
41 _check_out $?
42}
43
44_fsck()
45{
46 echo "========== fsck.f2fs ==================="
47 fsck.f2fs $IMG -t 2>&1 >$TMP
48 _check_out $?
49 grep FSCK $TMP
50}
51
52_fsstress()
53{
54 echo "========== fsstress $1 ================="
55 $XFSTESTS/ltp/fsstress -x "echo 3 > /proc/sys/vm/drop_caches && sleep 1" -X 1 -r -f fsync=8 -f sync=0 -f write=8 -f dwrite=2 -f truncate=6 -f allocsp=0 -f bulkstat=0 -f bulkstat1=0 -f freesp=0 -f zero=1 -f collapse=1 -f insert=1 -f resvsp=0 -f unresvsp=0 -S t -p 10 -n $2 -d $1 >/dev/null
56}
57
58_resize()
59{
60 echo "========== resize.f2fs $1 GB ==========="
61 resize.f2fs -t `_get_sec $1` $IMG 2>&1 >$TMP
62 _check_out $?
63 _fsck
64}
65
66_resize_tests()
67{
68 for i in $TESTS
69 do
70 if [ $i -ge $1 ]; then
71 _resize $i
72 fi
73 done
74}
75
76_sload()
77{
78 echo "========== sload $1 ===================="
79 sload.f2fs -f $1 $IMG 2>&1
80 _check_out $?
81}
82
83from_mount()
84{
85 echo ""
86 echo " **** $1 GB to $2 GB with $3 *** "
87 _mkfs $1
88 _mount $3
89 _fsstress $3 10000
90 umount $3
91 _fsck
92 _resize_tests $2
93}
94
95from_sload()
96{
97 echo ""
98 echo " **** $1 GB to $2 GB with $3 *** "
99
100 _mkfs $1
101 _sload $3
102 _fsck
103
104 _mount $MNT
105 _fsstress $MNT 10000
106 umount $MNT
107 _fsck
108
109 _resize_tests $2
110
111 _mount $MNT
112 _fsstress $MNT 10000
113 umount $MNT
114 _fsck
115}
116
117test_all()
118{
119 for i in $TESTS
120 do
121 for j in $TESTS
122 do
123 if [ $i -lt $j ]; then
124 $1 $i $j $2
125 fi
126 done
127 done
128}
129
130test_all from_sload ~/grub
131
132rm -rf $TARGET/*
133_fsstress $TARGET 5000
134test_all from_sload $TARGET
135rm -rf $TARGET 2>/dev/null
136
137test_all from_mount $MNT