1#!/bin/sh 2 3TEST_MDS_FILE="${TMPDIR}/test_mds.$(basename $0)" 4 5devwait() 6{ 7 while :; do 8 if [ -c /dev/${class}/${name} ]; then 9 return 10 fi 11 sleep 0.2 12 done 13} 14 15attach_md() 16{ 17 local test_md 18 19 test_md=$(mdconfig -a "$@") || exit 20 echo $test_md >> $TEST_MDS_FILE || exit 21 echo $test_md 22} 23 24detach_md() 25{ 26 local test_md unit 27 28 test_md=$1 29 unit=${test_md#md} 30 mdconfig -d -u $unit || exit 31 sed -i '' "/^${test_md}$/d" $TEST_MDS_FILE || exit 32} 33 34geom_test_cleanup() 35{ 36 local test_md 37 38 if [ -f "$TEST_MDS_FILE" ]; then 39 while read test_md; do 40 # The "#" tells the TAP parser this is a comment 41 echo "# Removing test memory disk: $test_md" 42 mdconfig -d -u $test_md 43 done < $TEST_MDS_FILE 44 rm -f "$TEST_MDS_FILE" 45 fi 46} 47 48geom_load_class_if_needed() 49{ 50 local class=$1 51 52 # If the geom class isn't already loaded, try loading it. 53 if ! kldstat -q -m g_${class}; then 54 if ! geom ${class} load; then 55 echo "could not load module for geom class=${class}" 56 return 1 57 fi 58 fi 59 return 0 60} 61 62geom_atf_test_setup() 63{ 64 if ! error_message=$(geom_load_class_if_needed $class); then 65 atf_skip "$error_message" 66 fi 67} 68 69geom_tap_test_setup() 70{ 71 if ! error_message=$(geom_load_class_if_needed $class); then 72 echo "1..0 # SKIP $error_message" 73 exit 0 74 fi 75} 76 77: ${ATF_TEST=false} 78if ! $ATF_TEST; then 79 geom_tap_test_setup 80fi 81