From 10b17bb5822e9e7ecf945172c570ec79edc1916c Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sun, 17 May 2015 00:14:51 -0400 Subject: [PATCH] tests: test creating a single huge file using mke2fs -T hugefile Signed-off-by: Theodore Ts'o --- tests/m_hugefile/expect | 36 +++++++++++++++++++++++++++++ tests/m_hugefile/name | 1 + tests/m_hugefile/script | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 tests/m_hugefile/expect create mode 100644 tests/m_hugefile/name create mode 100644 tests/m_hugefile/script diff --git a/tests/m_hugefile/expect b/tests/m_hugefile/expect new file mode 100644 index 0000000..82a6031 --- /dev/null +++ b/tests/m_hugefile/expect @@ -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: done +Creating 1 huge file(s) : done +Writing superblocks and filesystem accounting information: done + +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 index 0000000..0a28399 --- /dev/null +++ b/tests/m_hugefile/name @@ -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 index 0000000..72af8b8 --- /dev/null +++ b/tests/m_hugefile/script @@ -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 -- 1.8.3.1