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..c00f5db5 --- /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), 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 index 00000000..c00f5db5 --- /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), 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 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..34caa672 --- /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=$(mktemp ${TMPDIR:-/tmp}/e2fsprogs-zerodata.XXXXXX) +dd if=$TEST_BITS 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