attach_test.sh revision 328811
1327662Sasomers# $FreeBSD: stable/11/tests/sys/geom/class/eli/attach_test.sh 328811 2018-02-02 21:57:00Z asomers $ 2327662Sasomers 3327662Sasomersatf_test_case attach_d cleanup 4327662Sasomersattach_d_head() 5327662Sasomers{ 6327662Sasomers atf_set "descr" "geli attach -d will cause the provider to detach on last close" 7327662Sasomers atf_set "require.user" "root" 8327662Sasomers} 9327662Sasomersattach_d_body() 10327662Sasomers{ 11327662Sasomers . $(atf_get_srcdir)/conf.sh 12327662Sasomers 13327662Sasomers sectors=100 14327662Sasomers md=$(attach_md -t malloc -s `expr $sectors + 1`) 15327662Sasomers 16327662Sasomers atf_check dd if=/dev/random of=keyfile bs=512 count=16 status=none 17327662Sasomers 18327662Sasomers atf_check geli init -B none -P -K keyfile ${md} 19327662Sasomers atf_check geli attach -d -p -k keyfile ${md} 20327662Sasomers 21327662Sasomers # Be sure it doesn't detach on read. 22327662Sasomers atf_check dd if=/dev/${md}.eli of=/dev/null status=none 23327662Sasomers sleep 1 24327662Sasomers if [ ! -c /dev/${md}.eli ]; then 25327662Sasomers atf_fail "Detached on last close of a reader" 26327662Sasomers fi 27327662Sasomers 28327662Sasomers # It should detach on last close of a writer 29327662Sasomers true > /dev/${md}.eli 30327662Sasomers sleep 1 31327662Sasomers if [ -c /dev/${md}.eli ]; then 32327662Sasomers atf_fail "Did not detach on last close of a writer" 33327662Sasomers fi 34327662Sasomers 35327662Sasomers} 36327662Sasomersattach_d_cleanup() 37327662Sasomers{ 38327662Sasomers . $(atf_get_srcdir)/conf.sh 39327662Sasomers geli_test_cleanup 40327662Sasomers} 41327662Sasomers 42328811Sasomersatf_test_case attach_r cleanup 43328811Sasomersattach_r_head() 44328811Sasomers{ 45328811Sasomers atf_set "descr" "geli attach -r will create a readonly provider" 46328811Sasomers atf_set "require.user" "root" 47328811Sasomers} 48328811Sasomersattach_r_body() 49328811Sasomers{ 50328811Sasomers . $(atf_get_srcdir)/conf.sh 51328811Sasomers 52328811Sasomers sectors=100 53328811Sasomers md=$(attach_md -t malloc -s `expr $sectors + 1`) 54328811Sasomers atf_check dd if=/dev/random of=keyfile bs=512 count=16 status=none 55328811Sasomers 56328811Sasomers atf_check geli init -B none -P -K keyfile ${md} 57328811Sasomers atf_check geli attach -r -p -k keyfile ${md} 58328811Sasomers 59328811Sasomers atf_check -o match:"^Flags: .*READ-ONLY" geli list ${md}.eli 60328811Sasomers 61328811Sasomers # Verify that writes are verbotten 62328811Sasomers atf_check -s not-exit:0 -e match:"Read-only" \ 63328811Sasomers dd if=/dev/zero of=/dev/${md}.eli count=1 64328811Sasomers} 65328811Sasomersattach_r_cleanup() 66328811Sasomers{ 67328811Sasomers . $(atf_get_srcdir)/conf.sh 68328811Sasomers geli_test_cleanup 69328811Sasomers} 70328811Sasomers 71328811Sasomersatf_test_case nokey cleanup 72328811Sasomersnokey_head() 73328811Sasomers{ 74328811Sasomers atf_set "descr" "geli attach fails if called with no key component" 75328811Sasomers atf_set "require.user" "root" 76328811Sasomers} 77328811Sasomersnokey_body() 78328811Sasomers{ 79328811Sasomers . $(atf_get_srcdir)/conf.sh 80328811Sasomers 81328811Sasomers sectors=100 82328811Sasomers md=$(attach_md -t malloc -s `expr $sectors + 1`) 83328811Sasomers atf_check dd if=/dev/random of=keyfile bs=512 count=16 status=none 84328811Sasomers 85328811Sasomers atf_check geli init -B none -P -K keyfile ${md} 86328811Sasomers atf_check -s not-exit:0 -e match:"No key components given" \ 87328811Sasomers geli attach -p ${md} 2>/dev/null 88328811Sasomers} 89328811Sasomersnokey_cleanup() 90328811Sasomers{ 91328811Sasomers . $(atf_get_srcdir)/conf.sh 92328811Sasomers geli_test_cleanup 93328811Sasomers} 94328811Sasomers 95327662Sasomersatf_init_test_cases() 96327662Sasomers{ 97327662Sasomers atf_add_test_case attach_d 98328811Sasomers atf_add_test_case attach_r 99328811Sasomers atf_add_test_case nokey 100327662Sasomers} 101