resize_test.sh revision 328811
1293436Sngie#!/bin/sh 2212934Sbrian# $FreeBSD: stable/11/tests/sys/geom/class/eli/resize_test.sh 328811 2018-02-02 21:57:00Z asomers $ 3212934Sbrian 4328811Sasomersatf_test_case resize cleanup 5328811Sasomersresize_head() 6324691Sngie{ 7328811Sasomers atf_set "descr" "geli resize will resize a geli provider" 8328811Sasomers atf_set "require.user" "root" 9324691Sngie} 10328811Sasomersresize_body() 11328811Sasomers{ 12328811Sasomers . $(atf_get_srcdir)/conf.sh 13328811Sasomers BLK=512 14328811Sasomers BLKS_PER_MB=2048 15324691Sngie 16328811Sasomers md=$(attach_md -t malloc -s40m) 17212934Sbrian 18328811Sasomers # Initialise 19328811Sasomers atf_check -s exit:0 -o ignore gpart create -s BSD ${md} 20328811Sasomers atf_check -s exit:0 -o ignore gpart add -t freebsd-ufs -s 10m ${md} 21212934Sbrian 22328811Sasomers echo secret >tmp.key 23328811Sasomers atf_check geli init -Bnone -PKtmp.key ${md}a 24328811Sasomers atf_check geli attach -pk tmp.key ${md}a 25212934Sbrian 26328811Sasomers atf_check -s exit:0 -o ignore newfs -U ${md}a.eli 27328811Sasomers atf_check -s exit:7 -o ignore fsck_ffs -Ffy ${md}a.eli 28212934Sbrian 29328811Sasomers # Doing a backup, resize & restore must be forced (with -f) as geli 30328811Sasomers # verifies that the provider size in the metadata matches the consumer. 31212934Sbrian 32328811Sasomers atf_check geli backup ${md}a tmp.meta 33328811Sasomers atf_check geli detach ${md}a.eli 34328811Sasomers atf_check -s exit:0 -o match:resized gpart resize -i1 -s 20m ${md} 35328811Sasomers atf_check -s not-exit:0 -e ignore geli attach -pktmp.key ${md}a 36328811Sasomers atf_check -s not-exit:0 -e ignore geli restore tmp.meta ${md}a 37328811Sasomers atf_check geli restore -f tmp.meta ${md}a 38328811Sasomers atf_check geli attach -pktmp.key ${md}a 39328811Sasomers atf_check -s exit:0 -o ignore growfs -y ${md}a.eli 40328811Sasomers atf_check -s exit:7 -o ignore fsck_ffs -Ffy ${md}a.eli 41212934Sbrian 42328811Sasomers # Now do the resize properly 43212934Sbrian 44328811Sasomers atf_check geli detach ${md}a.eli 45328811Sasomers atf_check -s exit:0 -o match:resized gpart resize -i1 -s 30m ${md} 46328811Sasomers atf_check geli resize -s20m ${md}a 47328811Sasomers atf_check -s not-exit:0 -e match:"Inconsistent provider.*metadata" \ 48328811Sasomers geli resize -s20m ${md}a 49328811Sasomers atf_check geli attach -pktmp.key ${md}a 50328811Sasomers atf_check -s exit:0 -o ignore growfs -y ${md}a.eli 51328811Sasomers atf_check -s exit:7 -o ignore fsck_ffs -Ffy ${md}a.eli 52212934Sbrian 53328811Sasomers atf_check geli detach ${md}a.eli 54328811Sasomers atf_check -s exit:0 -o ignore gpart destroy -F $md 55212934Sbrian 56212934Sbrian 57328811Sasomers # Verify that the man page example works, changing ada0 to $md, 58328811Sasomers # 1g to 20m, 2g to 30m and keyfile to tmp.key, and adding -B none 59328811Sasomers # to geli init. 60212934Sbrian 61328811Sasomers atf_check -s exit:0 -o ignore gpart create -s GPT $md 62328811Sasomers atf_check -s exit:0 -o ignore gpart add -s 20m -t freebsd-ufs -i 1 $md 63328811Sasomers atf_check geli init -B none -K tmp.key -P ${md}p1 64328811Sasomers atf_check -s exit:0 -o match:resized gpart resize -s 30m -i 1 $md 65328811Sasomers atf_check geli resize -s 20m ${md}p1 66328811Sasomers atf_check geli attach -k tmp.key -p ${md}p1 67328811Sasomers} 68328811Sasomersresize_cleanup() 69328811Sasomers{ 70328811Sasomers . $(atf_get_srcdir)/conf.sh 71212934Sbrian 72328811Sasomers if [ -f "$TEST_MDS_FILE" ]; then 73328811Sasomers while read md; do 74328811Sasomers [ -c /dev/${md}a.eli ] && \ 75328811Sasomers geli detach ${md}a.eli 2>/dev/null 76328811Sasomers [ -c /dev/${md}p1.eli ] && \ 77328811Sasomers geli detach ${md}p1.eli 78328811Sasomers [ -c /dev/${md}.eli ] && \ 79328811Sasomers geli detach ${md}.eli 2>/dev/null 80328811Sasomers mdconfig -d -u $md 2>/dev/null 81328811Sasomers done < $TEST_MDS_FILE 82328811Sasomers fi 83328811Sasomers} 84212934Sbrian 85328811Sasomersatf_init_test_cases() 86328811Sasomers{ 87328811Sasomers atf_add_test_case resize 88328811Sasomers} 89