Whamcloud - gitweb
tests: test creating a single huge file using mke2fs -T hugefile
authorTheodore Ts'o <tytso@mit.edu>
Sun, 17 May 2015 04:14:51 +0000 (00:14 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 17 May 2015 04:14:51 +0000 (00:14 -0400)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
tests/m_hugefile/expect [new file with mode: 0644]
tests/m_hugefile/name [new file with mode: 0644]
tests/m_hugefile/script [new file with mode: 0644]

diff --git a/tests/m_hugefile/expect b/tests/m_hugefile/expect
new file mode 100644 (file)
index 0000000..82a6031
--- /dev/null
@@ -0,0 +1,36 @@
+mke2fs -F -T hugefile test.img 4T
+Creating filesystem with 1073741824 4k blocks and 1048576 inodes
+Superblock backups stored on blocks: 
+
+Allocating group tables: done                            
+Writing inode tables:            \b\b\b\b\b\b\b\b\b\b\bdone                            
+Creating 1 huge file(s) : done
+Writing superblocks and filesystem accounting information:            \b\b\b\b\b\b\b\b\b\b\bdone
+
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+Exit status is 0
+debugfs -R "extents /store/big-data" test.img | head
+Level Entries                 Logical                Physical Length Flags
+ 0/ 2   1/  1          0 - 1073610751     131070              1073610752
+ 1/ 2   1/ 97          0 -   11108351     131071              11108352
+ 2/ 2   1/339          0 -      32767     131072 -     163839  32768 
+ 2/ 2   2/339      32768 -      65535     163840 -     196607  32768 
+ 2/ 2   3/339      65536 -      98303     196608 -     229375  32768 
+ 2/ 2   4/339      98304 -     131071     229376 -     262143  32768 
+ 2/ 2   5/339     131072 -     163839     262144 -     294911  32768 
+ 2/ 2   6/339     163840 -     196607     294912 -     327679  32768 
+ 2/ 2   7/339     196608 -     229375     327680 -     360447  32768 
+ 2/ 2   8/339     229376 -     262143     360448 -     393215  32768 
+ 2/ 2   9/339     262144 -     294911     393216 -     425983  32768 
+ 2/ 2  10/339     294912 -     327679     425984 -     458751  32768 
+ 2/ 2  11/339     327680 -     360447     458752 -     491519  32768 
+ 2/ 2  12/339     360448 -     393215     491520 -     524287  32768 
+ 2/ 2  13/339     393216 -     425983     524288 -     557055  32768 
+ 2/ 2  14/339     425984 -     458751     557056 -     589823  32768 
+ 2/ 2  15/339     458752 -     491519     589824 -     622591  32768 
+ 2/ 2  16/339     491520 -     524287     622592 -     655359  32768 
diff --git a/tests/m_hugefile/name b/tests/m_hugefile/name
new file mode 100644 (file)
index 0000000..0a28399
--- /dev/null
@@ -0,0 +1 @@
+create a hugefile fs with a single huge file
diff --git a/tests/m_hugefile/script b/tests/m_hugefile/script
new file mode 100644 (file)
index 0000000..72af8b8
--- /dev/null
@@ -0,0 +1,61 @@
+FSCK_OPT=-fn
+OUT=$test_name.log
+EXP=$test_dir/expect
+CONF=$TMPFILE.conf
+
+#gzip -d < $EXP.gz > $EXP
+
+cat > $CONF << ENDL
+[fs_types]
+       hugefile = {
+               features = extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize,^resize_inode,sparse_super2
+               hash_alg = half_md4
+               num_backup_sb = 0
+               packed_meta_blocks = 1
+               make_hugefiles = 1
+               inode_ratio = 4194304
+               hugefiles_dir = /store
+               hugefiles_name = big-data
+               hugefiles_digits = 0
+               hugefiles_size = 0
+               hugefiles_align = 256M
+               num_hugefiles = 1
+               zero_hugefiles = false
+               flex_bg_size = 262144
+       }
+ENDL
+
+echo "mke2fs -F -T hugefile test.img 4T" > $OUT
+MKE2FS_CONFIG=$CONF $MKE2FS -F -T hugefile $TMPFILE 4T >> $OUT 2>&1
+rm -rf $CONF
+
+# check the file system if we get this far, we succeeded...
+$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
+status=$?
+echo Exit status is $status >> $OUT
+
+echo 'debugfs -R "extents /store/big-data" test.img | head' >> $OUT
+
+$DEBUGFS -R "extents /store/big-data" $TMPFILE 2>&1 | head -n 20 >> $OUT 2>&1
+
+rm $TMPFILE
+
+#
+# Do the verification
+#
+
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" -e 's/test_filesys:.*//g' < $OUT > $OUT.new
+mv $OUT.new $OUT
+
+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
+fi
+
+unset IMAGE FSCK_OPT OUT EXP CONF