[PATCH] tests: PAGE_SIZE larger than blocksize with hole

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Andreas Dilger <andreas.dilger@xxxxxxxxx>

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().

The f_eofblocks thest checks quite the same situation, but for broken
file system. This test is about correct file.

Signed-off-by: Andreas Dilger <andreas.dilger@xxxxxxxxx>
Signed-off-by: Artem Blagodarenko <artem.blagodarenko@xxxxxxxxx>
---
 tests/f_pgsize_gt_blksize/expect.1 |  7 +++++++
 tests/f_pgsize_gt_blksize/expect.2 |  7 +++++++
 tests/f_pgsize_gt_blksize/name     |  1 +
 tests/f_pgsize_gt_blksize/script   | 18 ++++++++++++++++++
 4 files changed, 33 insertions(+)
 create mode 100644 tests/f_pgsize_gt_blksize/expect.1
 create mode 100644 tests/f_pgsize_gt_blksize/expect.2
 create mode 100644 tests/f_pgsize_gt_blksize/name
 create mode 100644 tests/f_pgsize_gt_blksize/script

diff --git a/tests/f_pgsize_gt_blksize/expect.1 b/tests/f_pgsize_gt_blksize/expect.1
new file mode 100644
index 00000000..628a376a
--- /dev/null
+++ b/tests/f_pgsize_gt_blksize/expect.1
@@ -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), 23/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
index 00000000..628a376a
--- /dev/null
+++ b/tests/f_pgsize_gt_blksize/expect.2
@@ -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), 23/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
index 00000000..3aa02027
--- /dev/null
+++ b/tests/f_pgsize_gt_blksize/name
@@ -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
index 00000000..84c1a9f8
--- /dev/null
+++ b/tests/f_pgsize_gt_blksize/script
@@ -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
-- 
2.14.3




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux