1*cdebaff8SEnji Cooper# $NetBSD: ffs_common.sh,v 1.3 2016/10/08 13:23:53 gson Exp $ 257718be8SEnji Cooper 357718be8SEnji Coopercreate_ffs() 457718be8SEnji Cooper{ 557718be8SEnji Cooper local endian=$1; shift 657718be8SEnji Cooper local vers=$1; shift 757718be8SEnji Cooper local type=$1; shift 857718be8SEnji Cooper local op; 957718be8SEnji Cooper if [ ${type} = "both" ]; then 1057718be8SEnji Cooper op="-q user -q group" 1157718be8SEnji Cooper else 1257718be8SEnji Cooper op="-q ${type}" 1357718be8SEnji Cooper fi 1457718be8SEnji Cooper atf_check -o ignore -e ignore newfs ${op} \ 1557718be8SEnji Cooper -B ${endian} -O ${vers} -s 4000 -F ${IMG} 1657718be8SEnji Cooper} 1757718be8SEnji Cooper 1857718be8SEnji Coopercreate_ffs_server() 1957718be8SEnji Cooper{ 2057718be8SEnji Cooper local sarg=$1; shift 2157718be8SEnji Cooper create_ffs $* 2257718be8SEnji Cooper atf_check -o ignore -e ignore $(atf_get_srcdir)/h_ffs_server \ 2357718be8SEnji Cooper ${sarg} ${IMG} ${RUMP_SERVER} 2457718be8SEnji Cooper} 2557718be8SEnji Cooper 2657718be8SEnji Cooperrump_shutdown() 2757718be8SEnji Cooper{ 2857718be8SEnji Cooper for s in ${RUMP_SOCKETS_LIST}; do 2957718be8SEnji Cooper atf_check -s exit:0 env RUMP_SERVER=unix://${s} rump.halt; 3057718be8SEnji Cooper done 3157718be8SEnji Cooper# check that the quota inode creation didn't corrupt the filesystem 3257718be8SEnji Cooper atf_check -s exit:0 -o "match:already clean" \ 3357718be8SEnji Cooper -o "match:Phase 6 - Check Quotas" \ 3457718be8SEnji Cooper fsck_ffs -nf -F ${IMG} 3557718be8SEnji Cooper} 3657718be8SEnji Cooper 3757718be8SEnji Cooper# from tests/ipf/h_common.sh via tests/sbin/resize_ffs 3857718be8SEnji Coopertest_case() 3957718be8SEnji Cooper{ 4057718be8SEnji Cooper local name="${1}"; shift 4157718be8SEnji Cooper local check_function="${1}"; shift 4257718be8SEnji Cooper local descr="${1}"; shift 4357718be8SEnji Cooper 4457718be8SEnji Cooper atf_test_case "${name}" cleanup 4557718be8SEnji Cooper 4657718be8SEnji Cooper eval "${name}_head() { \ 4757718be8SEnji Cooper atf_set "descr" "${descr}" 48*cdebaff8SEnji Cooper atf_set "timeout" "120" 4957718be8SEnji Cooper }" 5057718be8SEnji Cooper eval "${name}_body() { \ 5157718be8SEnji Cooper RUMP_SOCKETS_LIST=\${RUMP_SOCKET}; \ 5257718be8SEnji Cooper export RUMP_SERVER=unix://\${RUMP_SOCKET}; \ 5357718be8SEnji Cooper ${check_function} " "${@}" "; \ 5457718be8SEnji Cooper }" 5557718be8SEnji Cooper eval "${name}_cleanup() { \ 5657718be8SEnji Cooper for s in \${RUMP_SOCKETS_LIST}; do \ 5757718be8SEnji Cooper export RUMP_SERVER=unix://\${s}; \ 5857718be8SEnji Cooper atf_check -s exit:1 -o ignore -e ignore rump.halt; \ 5957718be8SEnji Cooper done; \ 6057718be8SEnji Cooper }" 6157718be8SEnji Cooper tests="${tests} ${name}" 6257718be8SEnji Cooper} 6357718be8SEnji Cooper 6457718be8SEnji Coopertest_case_root() 6557718be8SEnji Cooper{ 6657718be8SEnji Cooper local name="${1}"; shift 6757718be8SEnji Cooper local check_function="${1}"; shift 6857718be8SEnji Cooper local descr="${1}"; shift 6957718be8SEnji Cooper 7057718be8SEnji Cooper atf_test_case "${name}" cleanup 7157718be8SEnji Cooper 7257718be8SEnji Cooper eval "${name}_head() { \ 7357718be8SEnji Cooper atf_set "descr" "${descr}" 7457718be8SEnji Cooper atf_set "require.user" "root" 7557718be8SEnji Cooper atf_set "timeout" "360" 7657718be8SEnji Cooper }" 7757718be8SEnji Cooper eval "${name}_body() { \ 7857718be8SEnji Cooper RUMP_SOCKETS_LIST=\${RUMP_SOCKET}; \ 7957718be8SEnji Cooper export RUMP_SERVER=unix://\${RUMP_SOCKET}; \ 8057718be8SEnji Cooper ${check_function} " "${@}" "; \ 8157718be8SEnji Cooper }" 8257718be8SEnji Cooper eval "${name}_cleanup() { \ 8357718be8SEnji Cooper for s in \${RUMP_SOCKETS_LIST}; do \ 8457718be8SEnji Cooper export RUMP_SERVER=unix://\${s}; \ 8557718be8SEnji Cooper atf_check -s exit:1 -o ignore -e ignore rump.halt; \ 8657718be8SEnji Cooper done; \ 8757718be8SEnji Cooper }" 8857718be8SEnji Cooper tests="${tests} ${name}" 8957718be8SEnji Cooper} 9057718be8SEnji Cooper 9157718be8SEnji Cooperatf_init_test_cases() 9257718be8SEnji Cooper{ 9357718be8SEnji Cooper IMG=fsimage 9457718be8SEnji Cooper DIR=target 9557718be8SEnji Cooper RUMP_SOCKET=test; 9657718be8SEnji Cooper for i in ${tests}; do 9757718be8SEnji Cooper atf_add_test_case $i 9857718be8SEnji Cooper done 9957718be8SEnji Cooper} 100