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.
This commit is contained in:
parent
9f2c8ccc2b
commit
07bc982d01
|
@ -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 @@ VND=vnd0
|
|||
|
||||
# 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 @@ EOF
|
|||
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 shrink cleanup
|
||||
shrink_head()
|
||||
atf_test_case grow_ffsv1_64k cleanup
|
||||
grow_ffsv1_64k()
|
||||
{
|
||||
atf_set "descr" "Checks successful fs shrinkage"
|
||||
atf_set "descr" "Checks successful ffsv1 growth with 64k blocksize"
|
||||
atf_set "require.user" "root"
|
||||
}
|
||||
shrink_body()
|
||||
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_ffsv1_64k cleanup
|
||||
shrink_ffsv1_64k()
|
||||
{
|
||||
atf_set "descr" "Checks successful ffsv1 shrinkage with 64k blocksize"
|
||||
atf_set "require.user" "root"
|
||||
}
|
||||
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 @@ floppy288|2.88MB 3.5in Extra High Density Floppy:\
|
|||
: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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue