Whamcloud - gitweb
tests: PAGE_SIZE larger than blocksize with hole
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 9 Aug 2012 05:23:22 +0000 (23:23 -0600)
committerAndreas Dilger <andreas.dilger@intel.com>
Wed, 24 Apr 2013 04:49:58 +0000 (22:49 -0600)
Verify correct operation in the case of writing files with allocated
blocks at the end of the file beyond i_size.  This can happen for
PAGE_SIZE > blocksize, or through fallocate().

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
tests/f_pgsize_gt_blksize/expect.1 [new file with mode: 0644]
tests/f_pgsize_gt_blksize/expect.2 [new file with mode: 0644]
tests/f_pgsize_gt_blksize/name [new file with mode: 0644]
tests/f_pgsize_gt_blksize/script [new file with mode: 0644]

diff --git a/tests/f_pgsize_gt_blksize/expect.1 b/tests/f_pgsize_gt_blksize/expect.1
new file mode 100644 (file)
index 0000000..c00f5db
--- /dev/null
@@ -0,0 +1,7 @@
+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
+test_filesys: 12/32 files (0.0% non-contiguous), 40/100 blocks
+Exit status is 0
diff --git a/tests/f_pgsize_gt_blksize/expect.2 b/tests/f_pgsize_gt_blksize/expect.2
new file mode 100644 (file)
index 0000000..c00f5db
--- /dev/null
@@ -0,0 +1,7 @@
+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
+test_filesys: 12/32 files (0.0% non-contiguous), 40/100 blocks
+Exit status is 0
diff --git a/tests/f_pgsize_gt_blksize/name b/tests/f_pgsize_gt_blksize/name
new file mode 100644 (file)
index 0000000..3aa0202
--- /dev/null
@@ -0,0 +1 @@
+PAGE_SIZE larger than blocksize with hole at end
diff --git a/tests/f_pgsize_gt_blksize/script b/tests/f_pgsize_gt_blksize/script
new file mode 100644 (file)
index 0000000..84c1a9f
--- /dev/null
@@ -0,0 +1,18 @@
+SKIP_GUNZIP="true"
+
+touch $TMPFILE
+$MKE2FS -N 32 -F -o Linux -b 1024 $TMPFILE 100 > /dev/null 2>&1 
+
+DATA_FILE=$RANDOM
+dd if=/dev/zero of=$DATA_FILE bs=1k count=16 > /dev/null 2>&1
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
+write $DATA_FILE foo
+set_inode_field foo size 13000
+q
+EOF
+
+. $cmd_dir/run_e2fsck
+
+rm -f $DATA_FILE
+
+unset DATA_FILE