File: verify.sh

package info (click to toggle)
f2fs-tools 1.16.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,568 kB
  • sloc: ansic: 27,550; sh: 283; makefile: 95
file content (137 lines) | stat: -rwxr-xr-x 2,059 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash

IMG=../test.img
TMP=/tmp/res
XFSTESTS=~/xfstests
TESTS="4 5 8 11 16 25 32 55 64"

TARGET=./testdir
MNT=/mnt/resize

mkdir $TARGET 2>/dev/null
mkdir $MNT 2>/dev/null

umount $TARGET
umount $MNT

_check_out()
{
	if [ $1 -ne 0 ]; then
		grep ASSERT $TMP
		echo FAIL RETURN $1
		exit
	fi
}

_get_sec()
{
	echo $(($1*1024*1024*1024/512))
}

_mkfs()
{
	echo "========== Initialize $1 GB ============"
	mkfs.f2fs $IMG `_get_sec $1` | grep sectors
}

_mount()
{
	echo "========== mount to $1 ================="
	mount -t f2fs -o loop,discard,inline_data,inline_xattr $IMG $1 2>&1
	_check_out $?
}

_fsck()
{
	echo "========== fsck.f2fs ==================="
	fsck.f2fs $IMG -t 2>&1 >$TMP
	_check_out $?
	grep FSCK $TMP
}

_fsstress()
{
	echo "========== fsstress $1 ================="
	$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
}

_resize()
{
	echo "========== resize.f2fs $1 GB ==========="
	resize.f2fs -t `_get_sec $1` $IMG 2>&1 >$TMP
	_check_out $?
	_fsck
}

_resize_tests()
{
	for i in $TESTS
	do
		if [ $i -ge $1 ]; then
			_resize $i
		fi
	done
}

_sload()
{
	echo "========== sload $1 ===================="
	sload.f2fs -f $1 $IMG 2>&1
	_check_out $?
}

from_mount()
{
	echo ""
	echo " ****  $1 GB to $2 GB with $3 *** "
	_mkfs $1
	_mount $3
	_fsstress $3 10000
	umount $3
	_fsck
	_resize_tests $2
}

from_sload()
{
	echo ""
	echo " ****  $1 GB to $2 GB with $3 *** "

	_mkfs $1
	_sload $3
	_fsck

	_mount $MNT
	_fsstress $MNT 10000
	umount $MNT
	_fsck

	_resize_tests $2

	_mount $MNT
	_fsstress $MNT 10000
	umount $MNT
	_fsck
}

test_all()
{
	for i in $TESTS
	do
		for j in $TESTS
		do
			if [ $i -lt $j ]; then
				$1 $i $j $2
			fi
		done
	done
}

test_all from_sload ~/grub

rm -rf $TARGET/*
_fsstress $TARGET 5000
test_all from_sload $TARGET
rm -rf $TARGET 2>/dev/null

test_all from_mount $MNT