summaryrefslogtreecommitdiffstats
path: root/tests/r_corrupt_fs/script
blob: f6d3a89d1cfc1dca706045c26248ee7da01c1321 (plain)
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
if ! test -x $RESIZE2FS_EXE -o ! -x $DEBUGFS_EXE; then
	echo "$test_name: $test_description: skipped (no debugfs/resize2fs)"
	return 0
fi

OUT=$test_name.log
if [ -f $test_dir/expect.gz ]; then
	EXP=$test_name.tmp
	gunzip < $test_dir/expect.gz > $EXP1
else
	EXP=$test_dir/expect
fi

echo mke2fs -q -F -t ext4 -o Linux -b 1024 test.img 32M > $OUT.new
$MKE2FS -q -F -t ext4 -o Linux -b 1024 $TMPFILE 32M >> $OUT.new 2>&1

echo debugfs -w -R \"set_bg 1 free_blocks_count 65536\" /tmp/foo.img >> $OUT.new
$DEBUGFS -w -R "set_bg 1 free_blocks_count 65536" $TMPFILE > /dev/null 2>&1

if timeout -v 1s true > /dev/null 2>&1 ; then
   TIMEOUT="timeout -v 30s"
else
   TIMEOUT=
fi

echo resize2fs -P /tmp/foo.img >> $OUT.new
$TIMEOUT $RESIZE2FS -P $TMPFILE  >> $OUT.new 2>&1

sed -f $cmd_dir/filter.sed < $OUT.new > $OUT

rm -f $TMPFILE $OUT.new

cmp -s $OUT $EXP
status=$?

if [ "$status" = 0 ] ; then
	echo "$test_name: $test_description: ok"
	touch $test_name.ok
else
	echo "$test_name: $test_description: failed"
	diff $DIFF_OPTS $EXP $OUT > $test_name.failed
	rm -f $test_name.tmp
fi

unset IMAGE OUT EXP TIMEOUT