• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
2
3if [ $(uname -s) = "Darwin" ]; then
4	# creates a 3GB filesystem
5	echo "$test_name: $DESCRIPTION: skipped for HFS+ (no sparse files)"
6	return 0
7fi
8
9FSCK_OPT=-fn
10OUT=$test_name.log
11EXP=$test_dir/expect
12CONF=$TMPFILE.conf
13
14#gzip -d < $EXP.gz > $EXP
15
16cat > $CONF << ENDL
17[fs_types]
18	ext4h = {
19		features = has_journal,extent,huge_file,uninit_bg,dir_nlink,extra_isize,sparse_super,filetype,dir_index,ext_attr,^resize_inode,^meta_bg,^flex_bg,metadata_csum,64bit
20		blocksize = 1024
21		inode_size = 256
22		make_hugefiles = true
23		hugefiles_dir = /
24		hugefiles_slack = 12000K
25		hugefiles_name = aaaaa
26		hugefiles_digits = 4
27		hugefiles_size = 117K
28		zero_hugefiles = false
29	}
30ENDL
31
32echo "tune2fs test" > $OUT
33
34MKE2FS_CONFIG=$CONF $MKE2FS -F -T ext4h -I 128 $TMPFILE 786432 >> $OUT 2>&1
35rm -rf $CONF
36
37# dump and check
38($DUMPE2FS -h $TMPFILE; $DUMPE2FS -g $TMPFILE) 2>&1 | sed -f $cmd_dir/filter.sed -e '/^Checksum:.*/d' >> $OUT.before 2> /dev/null
39$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
40status=$?
41echo Exit status is $status >> $OUT
42
43# convert it
44echo "tune2fs -I 256 test.img" >> $OUT
45dd if=/dev/zero of=$TMPFILE conv=notrunc bs=1 count=1 seek=3221225471 2> /dev/null
46$TUNE2FS -I 256 $TMPFILE >> $OUT 2>&1
47status=$?
48echo Exit status is $status >> $OUT
49
50# dump and check
51($DUMPE2FS -h $TMPFILE; $DUMPE2FS -g $TMPFILE) 2>&1 | sed -f $cmd_dir/filter.sed -e '/^Checksum:.*/d' >> $OUT.after 2> /dev/null
52echo "Change in FS metadata:" >> $OUT
53diff -U 0 $OUT.before $OUT.after | sed -e '/^---.*/d' -e '/^+++.*/d' >> $OUT
54$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
55status=$?
56echo Exit status is $status >> $OUT
57
58rm $TMPFILE
59
60#
61# Do the verification
62#
63
64sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" -e 's/test_filesys:.*//g' < $OUT > $OUT.new
65mv $OUT.new $OUT
66
67cmp -s $OUT $EXP
68status=$?
69
70if [ "$status" = 0 ] ; then
71	echo "$test_name: $test_description: ok"
72	touch $test_name.ok
73else
74	echo "$test_name: $test_description: failed"
75	diff $DIFF_OPTS $EXP $OUT > $test_name.failed
76fi
77
78rm $OUT.before $OUT.after
79
80unset IMAGE FSCK_OPT OUT EXP CONF
81
82else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
83	echo "$test_name: $test_description: skipped"
84fi
85
86