From 464df1d5e5ab1322e2dd0a7796939fff1aeefa9a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:49:25 +0200 Subject: Adding upstream version 1.47.0. Signed-off-by: Daniel Baumann --- tests/r_move_itable_realloc/expect | 60 ++++++++++++++++++++++++++++++++++++++ tests/r_move_itable_realloc/name | 1 + tests/r_move_itable_realloc/script | 58 ++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 tests/r_move_itable_realloc/expect create mode 100644 tests/r_move_itable_realloc/name create mode 100644 tests/r_move_itable_realloc/script (limited to 'tests/r_move_itable_realloc') diff --git a/tests/r_move_itable_realloc/expect b/tests/r_move_itable_realloc/expect new file mode 100644 index 0000000..67f2fe4 --- /dev/null +++ b/tests/r_move_itable_realloc/expect @@ -0,0 +1,60 @@ +mke2fs -q -F -o Linux -b 1024 -i 1024 -O ^resize_inode -t ext4 test.img 1024000 +resize2fs -p test.img 100000000 +Resizing the filesystem on test.img to 100000000 (1k) blocks. +Begin pass 2 (max = 2061) +Relocating blocks ----------------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +Begin pass 3 (max = 125) +Scanning inode table ----------------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +Begin pass 5 (max = 5) +Moving inode table ----------------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +The filesystem on test.img is now 99999745 (1k) blocks long. + +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: 11/99999744 files (0.0% non-contiguous), 25048025/99999745 blocks +Exit status is 0 +dumpe2fs -h test.img +Filesystem volume name: +Last mounted on: +Filesystem magic number: 0xEF53 +Filesystem revision #: 1 (dynamic) +Filesystem features: has_journal ext_attr dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize +Default mount options: (none) +Filesystem state: clean +Errors behavior: Continue +Filesystem OS type: Linux +Inode count: 99999744 +Block count: 99999745 +Reserved block count: 4999987 +Free blocks: 74951720 +Free inodes: 99999733 +First block: 1 +Block size: 1024 +Fragment size: 1024 +Blocks per group: 8192 +Fragments per group: 8192 +Inodes per group: 8192 +Inode blocks per group: 2048 +Flex block group size: 16 +Mount count: 0 +Check interval: 15552000 (6 months) +Reserved blocks uid: 0 +Reserved blocks gid: 0 +First inode: 11 +Inode size: 256 +Required extra isize: 32 +Desired extra isize: 32 +Journal inode: 8 +Default directory hash: half_md4 +Journal backup: inode blocks +Journal features: (none) +Total journal size: 16M +Total journal blocks: 16384 +Max transaction length: 16384 +Fast commit length: 0 +Journal sequence: 0x00000001 +Journal start: 0 + diff --git a/tests/r_move_itable_realloc/name b/tests/r_move_itable_realloc/name new file mode 100644 index 0000000..c265317 --- /dev/null +++ b/tests/r_move_itable_realloc/name @@ -0,0 +1 @@ +don't allocate inode table from in-use blocks diff --git a/tests/r_move_itable_realloc/script b/tests/r_move_itable_realloc/script new file mode 100644 index 0000000..20c26db --- /dev/null +++ b/tests/r_move_itable_realloc/script @@ -0,0 +1,58 @@ +os=$(uname -s) +if [ "$os" = "Darwin" -o "$os" = "GNU" -o "FreeBSD" ]; then + # creates a 96GB filesystem + echo "$test_name: $test_description: skipped: skipped for $os" + return 0 +fi + +if ! test -x $RESIZE2FS_EXE -o ! -x $DEBUGFS_EXE; then + echo "$test_name: $test_description: skipped (no debugfs/resize2fs)" + return 0 +fi + +FSCK_OPT=-yf +OUT=$test_name.log +if [ -f $test_dir/expect.gz ]; then + EXP=$test_name.tmp + gunzip < $test_dir/expect.gz > $EXP1 +else + EXP=$test_dir/expect +fi + +dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1 + +echo mke2fs -q -F -o Linux -b 1024 -i 1024 -O ^resize_inode -t ext4 test.img 1024000 > $OUT +$MKE2FS -q -F -o Linux -b 1024 -i 1024 -O ^resize_inode -t ext4 \ + $TMPFILE 1024000 >> $OUT 2>&1 + +echo resize2fs -p test.img 100000000 >> $OUT +$RESIZE2FS -p $TMPFILE 100000000 >> $OUT 2>&1 + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1 +status=$? +echo Exit status is $status >> $OUT + +$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1 +$DEBUGFS -R "set_super_value hash_seed null" -w $TMPFILE >/dev/null 2>&1 +$DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1 +$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1 + +echo dumpe2fs -h test.img >> $OUT +$DUMPE2FS -h $TMPFILE >> $OUT 2>&1 +sed -f $cmd_dir/filter.sed -e '/Block bitmap.*$/N;s/\n Inode bitmap/, Inode bitmap/g' < $OUT > $OUT.new +mv $OUT.new $OUT +rm -f $TMPFILE + +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 + rm -f $test_name.tmp +fi + +unset IMAGE FSCK_OPT OUT EXP -- cgit v1.2.3