Source-Changes-HG archive

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

[src/trunk]: src/tests/sbin/resize_ffs Update existing test cases and add a c...



details:   https://anonhg.NetBSD.org/src/rev/40f6fadff647
branches:  trunk
changeset: 759233:40f6fadff647
user:      riz <riz%NetBSD.org@localhost>
date:      Thu Dec 02 22:03:23 2010 +0000

description:
Update existing test cases and add a couple more:

- PR bin/44177 is fixed
- test grow/shrink on a ffsv1 with 64k blocksize, which was broken until
  recently
- make sure the partial cylinder left over is big enough so it doesn't
  get thrown away now that resize_ffs properly uses the last cyl.

XXX TODO:  add tests which ensure data integrity.

diffstat:

 tests/sbin/resize_ffs/t_resize_ffs.sh |  105 ++++++++++++++++++++++++++++-----
 1 files changed, 87 insertions(+), 18 deletions(-)

diffs (162 lines):

diff -r 3c53dee33b12 -r 40f6fadff647 tests/sbin/resize_ffs/t_resize_ffs.sh
--- a/tests/sbin/resize_ffs/t_resize_ffs.sh     Thu Dec 02 22:00:27 2010 +0000
+++ b/tests/sbin/resize_ffs/t_resize_ffs.sh     Thu Dec 02 22:03:23 2010 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: t_resize_ffs.sh,v 1.1 2010/11/30 23:17:27 riz Exp $
+# $NetBSD: t_resize_ffs.sh,v 1.2 2010/12/02 22:03:23 riz Exp $
 #
 # Copyright (c) 2010 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -33,13 +33,14 @@
 
 # misc routines
 
-atf_test_case grow cleanup
-grow_head()
+atf_test_case grow_ffsv1_partial_cg cleanup
+grow_ffsv1_partial_cg_head()
 {
-       atf_set "descr" "Checks successful fs growth"
+       atf_set "descr" "Checks successful ffsv1 growth by less" \
+                       "than a cylinder group"
        atf_set "require.user"  "root"
 }
-grow_body()
+grow_ffsv1_partial_cg_body()
 {
        cat >disktab <<EOF
 floppy288|2.88MB 3.5in Extra High Density Floppy:\
@@ -55,24 +56,92 @@
        atf_check -o ignore -e ignore vnconfig -v ${VND} ${IMG}
        atf_check -o ignore -e ignore disklabel -f disktab -rw ${VND} floppy288
        # resize_ffs only supports ffsv1 at the moment
-       atf_check -o ignore -e ignore newfs -V1 -s 3000 /dev/r${VND}a
+       atf_check -o ignore -e ignore newfs -V1 -s 4000 /dev/r${VND}a
 
        # grow the fs to the full partition size (5760)
        atf_check -s exit:0 resize_ffs -y /dev/r${VND}a
        atf_check -s exit:0 -o ignore fsck -f -n /dev/r${VND}a
 }
-grow_cleanup()
+grow_ffsv1_partial_cg_cleanup()
+{
+       vnconfig -u ${VND}
+}
+
+atf_test_case grow_ffsv1_64k cleanup
+grow_ffsv1_64k()
+{
+       atf_set "descr" "Checks successful ffsv1 growth with 64k blocksize"
+       atf_set "require.user"  "root"
+}
+grow_ffsv1_64k_body()
+{
+       cat >disktab <<EOF
+disk64M|64MB test disk:\
+       :ty=test:se#512:nt#64:ns#32:nc#64:\
+       :pa#131072:oa#0:ba#65536:fa#8192:ta=4.2BSD:\
+       :pc#131072:oc#0:\
+       :pd#131072:od#0:
+EOF
+
+       echo "***resize_ffs grow 64k block test"
+
+       atf_check -o ignore -e ignore dd if=/dev/zero of=${IMG} count=131072
+       atf_check -o ignore -e ignore vnconfig -v ${VND} ${IMG}
+       atf_check -o ignore -e ignore disklabel -f disktab -rw ${VND} disk64M
+       atf_check -o ignore -e ignore newfs -V1 -b 65536 -f 8192 \
+               -s 32768 /dev/r${VND}a
+
+       # grow the fs to the full partition size (131072)
+       atf_check -s exit:0 resize_ffs -y /dev/r${VND}a
+       atf_check -s exit:0 -o ignore fsck -f -n /dev/r${VND}a
+       atf_check -o match:'size[[:space:]]*8192' dumpfs /dev/r${VND}a
+}
+grow_ffsv1_64k_cleanup()
 {
        vnconfig -u ${VND}
 }
 
-atf_test_case shrink cleanup
-shrink_head()
+atf_test_case shrink_ffsv1_64k cleanup
+shrink_ffsv1_64k()
 {
-       atf_set "descr" "Checks successful fs shrinkage"
+       atf_set "descr" "Checks successful ffsv1 shrinkage with 64k blocksize"
        atf_set "require.user"  "root"
 }
-shrink_body()
+shrink_ffsv1_64k_body()
+{
+       cat >disktab <<EOF
+disk64M|64MB test disk:\
+       :ty=test:se#512:nt#64:ns#32:nc#64:\
+       :pa#131072:oa#0:ba#65536:fa#8192:ta=4.2BSD:\
+       :pc#131072:oc#0:\
+       :pd#131072:od#0:
+EOF
+
+       echo "***resize_ffs shrink 64k block test"
+
+       atf_check -o ignore -e ignore dd if=/dev/zero of=${IMG} count=131072
+       atf_check -o ignore -e ignore vnconfig -v ${VND} ${IMG}
+       atf_check -o ignore -e ignore disklabel -f disktab -rw ${VND} disk64M
+       atf_check -o ignore -e ignore newfs -V1 -b 65536 -f 8192 /dev/r${VND}a
+
+       # shrink it to half size
+       atf_check -s exit:0 resize_ffs -y -s 65536 /dev/r${VND}a
+       atf_check -s exit:0 -o ignore fsck -f -n /dev/r${VND}a
+       atf_check -o match:'size[[:space:]]*4096' dumpfs /dev/r${VND}a
+}
+shrink_ffsv1_64k_cleanup()
+{
+       vnconfig -u ${VND}
+}
+
+atf_test_case shrink_ffsv1_partial_cg cleanup
+shrink_ffsv1_partial_cg_head()
+{
+       atf_set "descr" "Checks successful shrinkage of ffsv1 by" \
+                       "less than a cylinder group"
+       atf_set "require.user"  "root"
+}
+shrink_ffsv1_partial_cg_body()
 {
        cat >disktab <<EOF
 floppy288|2.88MB 3.5in Extra High Density Floppy:\
@@ -82,27 +151,27 @@
        :pc#5760:oc#0:
 EOF
 
-       echo "*** resize_ffs shrinkage test"
+       echo "*** resize_ffs shrinkage partial cg test"
 
        atf_check -o ignore -e ignore dd if=/dev/zero of=${IMG} count=5860
        atf_check -o ignore -e ignore vnconfig -v ${VND} ${IMG}
        atf_check -o ignore -e ignore disklabel -f disktab -rw ${VND} floppy288
-       # resize_ffs only supports ffsv1 at the moment
        atf_check -o ignore -e ignore newfs -V1 /dev/r${VND}a
 
        # shrink the fs to something smaller.  Would be better to have
        # data in there, but one step at a time
-       atf_check -s exit:0 resize_ffs -s 3000 -y /dev/r${VND}a
-       atf_expect_fail "PR bin/44177"
+       atf_check -s exit:0 resize_ffs -s 4000 -y /dev/r${VND}a
        atf_check -s exit:0 -o ignore fsck -f -n /dev/r${VND}a
 }
-shrink_cleanup()
+shrink_ffsv1_partial_cg_cleanup()
 {
        vnconfig -u ${VND}
 }
 
 atf_init_test_cases()
 {
-       atf_add_test_case grow
-       atf_add_test_case shrink
+       atf_add_test_case grow_ffsv1_partial_cg
+       atf_add_test_case grow_ffsv1_64k
+       atf_add_test_case shrink_ffsv1_partial_cg
+       atf_add_test_case shrink_ffsv1_64k
 }



Home | Main Index | Thread Index | Old Index