1# $NetBSD: ffs_common.sh,v 1.3 2016/10/08 13:23:53 gson Exp $ 2 3create_ffs() 4{ 5 local endian=$1; shift 6 local vers=$1; shift 7 local type=$1; shift 8 local op; 9 if [ ${type} = "both" ]; then 10 op="-q user -q group" 11 else 12 op="-q ${type}" 13 fi 14 atf_check -o ignore -e ignore newfs ${op} \ 15 -B ${endian} -O ${vers} -s 4000 -F ${IMG} 16} 17 18create_ffs_server() 19{ 20 local sarg=$1; shift 21 create_ffs $* 22 atf_check -o ignore -e ignore $(atf_get_srcdir)/h_ffs_server \ 23 ${sarg} ${IMG} ${RUMP_SERVER} 24} 25 26rump_shutdown() 27{ 28 for s in ${RUMP_SOCKETS_LIST}; do 29 atf_check -s exit:0 env RUMP_SERVER=unix://${s} rump.halt; 30 done 31# check that the quota inode creation didn't corrupt the filesystem 32 atf_check -s exit:0 -o "match:already clean" \ 33 -o "match:Phase 6 - Check Quotas" \ 34 fsck_ffs -nf -F ${IMG} 35} 36 37# from tests/ipf/h_common.sh via tests/sbin/resize_ffs 38test_case() 39{ 40 local name="${1}"; shift 41 local check_function="${1}"; shift 42 local descr="${1}"; shift 43 44 atf_test_case "${name}" cleanup 45 46 eval "${name}_head() { \ 47 atf_set "descr" "${descr}" 48 atf_set "timeout" "120" 49 }" 50 eval "${name}_body() { \ 51 RUMP_SOCKETS_LIST=\${RUMP_SOCKET}; \ 52 export RUMP_SERVER=unix://\${RUMP_SOCKET}; \ 53 ${check_function} " "${@}" "; \ 54 }" 55 eval "${name}_cleanup() { \ 56 for s in \${RUMP_SOCKETS_LIST}; do \ 57 export RUMP_SERVER=unix://\${s}; \ 58 atf_check -s exit:1 -o ignore -e ignore rump.halt; \ 59 done; \ 60 }" 61 tests="${tests} ${name}" 62} 63 64test_case_root() 65{ 66 local name="${1}"; shift 67 local check_function="${1}"; shift 68 local descr="${1}"; shift 69 70 atf_test_case "${name}" cleanup 71 72 eval "${name}_head() { \ 73 atf_set "descr" "${descr}" 74 atf_set "require.user" "root" 75 atf_set "timeout" "360" 76 }" 77 eval "${name}_body() { \ 78 RUMP_SOCKETS_LIST=\${RUMP_SOCKET}; \ 79 export RUMP_SERVER=unix://\${RUMP_SOCKET}; \ 80 ${check_function} " "${@}" "; \ 81 }" 82 eval "${name}_cleanup() { \ 83 for s in \${RUMP_SOCKETS_LIST}; do \ 84 export RUMP_SERVER=unix://\${s}; \ 85 atf_check -s exit:1 -o ignore -e ignore rump.halt; \ 86 done; \ 87 }" 88 tests="${tests} ${name}" 89} 90 91atf_init_test_cases() 92{ 93 IMG=fsimage 94 DIR=target 95 RUMP_SOCKET=test; 96 for i in ${tests}; do 97 atf_add_test_case $i 98 done 99} 100