Path: blob/main/tests/sys/geom/class/geom_subr.sh
107416 views
#!/bin/sh12TEST_MDS_FILE="${TMPDIR}/test_mds.$(basename $0)"34devwait()5{6while :; do7if [ -c /dev/${class}/${name} ]; then8return9fi10sleep 0.211done12}1314attach_md()15{16local _md17local rv=$118shift1920[ -c /dev/mdctl ] || atf_skip "no /dev/mdctl to create md devices"21_md=$(mdconfig -a "$@") || exit22echo $_md >> $TEST_MDS_FILE || exit23eval "${rv}='${_md}'"24}2526detach_md()27{28local test_md unit2930test_md=$131unit=${test_md#md}32mdconfig -d -u $unit || exit33sed -i '' "/^${test_md}$/d" $TEST_MDS_FILE || exit34}3536geom_test_cleanup()37{38local test_md3940if [ -f "$TEST_MDS_FILE" ]; then41while read test_md; do42# The "#" tells the TAP parser this is a comment43echo "# Removing test memory disk: $test_md"44mdconfig -d -u $test_md45done < $TEST_MDS_FILE46rm -f "$TEST_MDS_FILE"47fi48}4950geom_load_class_if_needed()51{52local class=$15354# If the geom class isn't already loaded, try loading it.55if ! kldstat -q -m g_${class}; then56if ! geom ${class} load; then57echo "could not load module for geom class=${class}"58return 159fi60fi61return 062}6364geom_atf_test_setup()65{66if ! error_message=$(geom_load_class_if_needed $class); then67atf_skip "$error_message"68fi69}7071geom_tap_test_setup()72{73if ! error_message=$(geom_load_class_if_needed $class); then74echo "1..0 # SKIP $error_message"75exit 076fi77}7879: ${ATF_TEST=false}80if ! $ATF_TEST; then81geom_tap_test_setup82fi838485