nsenter,unshare: work around older header
[oweals/busybox.git] / util-linux / mkfs_ext2_test.sh
index 4bc5f1ea928e72ff266f684a9630733ee30112dd..f5347cc04dd0b2168081f08e323ca9133fd0cbce 100755 (executable)
@@ -1,15 +1,13 @@
 #!/bin/sh
 
-system_mke2fs='/sbin/mke2fs'
+# Disabling features we do not match exactly:
+system_mke2fs='/sbin/mke2fs -O ^resize_inode'
 bbox_mke2fs='./busybox mke2fs'
 
 gen_image() { # params: mke2fs_invocation image_name
     >$2
     dd seek=$((kilobytes-1)) bs=1K count=1 </dev/zero of=$2 >/dev/null 2>&1 || exit 1
     $1 -F $2 $kilobytes >$2.raw_out 2>&1 || return 1
-
-#off    | sed 's/inodes, [0-9]* blocks/inodes, N blocks/' \
-
     cat $2.raw_out \
     | grep -v '^mke2fs [0-9]*\.[0-9]*\.[0-9]* ' \
     | grep -v '^Maximum filesystem' \
@@ -45,66 +43,62 @@ test_mke2fs() {
 
 # -:bbox +:standard
 
-# kilobytes=60 is the minimal allowed size.
-#
-# kilobytes=8378 is the first value where we differ from std:
-# +warning: 185 blocks unused
-#  Filesystem label=
-#  OS type: Linux
-#  Block size=1024 (log=0)
-#  Fragment size=1024 (log=0)
-# -2096 inodes, 8378 blocks
-# +2096 inodes, 8193 blocks
-#  418 blocks reserved for the super user
-#  First data block=1
-# -2 block groups
-# +1 block groups
-#  8192 blocks per group, 8192 fragments per group
-# -1048 inodes per group
-# -Superblock backups stored on blocks:
-# -8193
-# +2096 inodes per group
-#
+# kilobytes=60 is the minimal allowed size
 kilobytes=60
 while true; do
     test_mke2fs || exit 1
     : $((kilobytes++))
-    test $kilobytes = 300000 && break
+    test $kilobytes = 200 && break
 done
-exit
-
-# Specific sizes with known differences:
 
-# -6240 inodes, 24908 blocks
-# +6240 inodes, 24577 blocks
-# -4 block group
-# +3 block group
-# -1560 inodes per group
-# +2080 inodes per group
-kilobytes=24908 test_mke2fs
+# Transition from one block group to two
+# fails in [8378..8410] range unless -O ^resize_inode
+kilobytes=$((1 * 8*1024 - 50))
+while true; do
+    test_mke2fs || exit 1
+    : $((kilobytes++))
+    test $kilobytes = $((1 * 8*1024 + 300)) && break
+done
 
-# -304 inodes, N blocks
-# +152 inodes, N blocks
-# -304 inodes per group
-# +152 inodes per group
-kilobytes=1218 test_mke2fs
+# Transition from 2 block groups to 3
+# works
+kilobytes=$((2 * 8*1024 - 50))
+while true; do
+    test_mke2fs || exit 1
+    : $((kilobytes++))
+    test $kilobytes = $((2 * 8*1024 + 400)) && break
+done
 
-# -14464 inodes, N blocks
-# +14448 inodes, N blocks
-# -8 block group
-# +7 block group
-# -1808 inodes per group
-# +2064 inodes per group
-kilobytes=57696 test_mke2fs
+# Transition from 3 block groups to 4
+# fails in [24825..24922] range unless -O ^resize_inode
+kilobytes=$((3 * 8*1024 - 50))
+while true; do
+    test_mke2fs || exit 1
+    : $((kilobytes++))
+    test $kilobytes = $((3 * 8*1024 + 500)) && break
+done
 
-# -warning: 239 blocks unused.
-# +warning: 242 blocks unused.
-kilobytes=49395 test_mke2fs
+# Transition from 4 block groups to 5
+# works
+kilobytes=$((4 * 8*1024 - 50))
+while true; do
+    test_mke2fs || exit 1
+    : $((kilobytes++))
+    test $kilobytes = $((4 * 8*1024 + 600)) && break
+done
 
-## This size results in "warning: 75 blocks unused"
-#kilobytes=98380 test_mke2fs
+# Transition from 5 block groups to 6
+# fails in [41230..41391] range unless -O ^resize_inode
+kilobytes=$((5 * 8*1024 - 50))
+while true; do
+    test_mke2fs || exit 1
+    : $((kilobytes++))
+    test $kilobytes = $((5 * 8*1024 + 700)) && break
+done
+exit
 
+# Random sizes
 while true; do
-    kilobytes=$(( (RANDOM*RANDOM) % 1000000 + 60))
+    kilobytes=$(( (RANDOM*RANDOM) % 5000000 + 60))
     test_mke2fs || exit 1
 done