-kilobytes=24908 test_mke2fs
-kilobytes=81940 test_mke2fs
-kilobytes=98392 test_mke2fs
+# -:bbox +:standard
+
+# kilobytes=60 is the minimal allowed size
+kilobytes=60
+while true; do
+ test_mke2fs || exit 1
+ : $((kilobytes++))
+ test $kilobytes = 200 && break
+done
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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