xref: /freebsd/contrib/netbsd-tests/fs/ffs/ffs_common.sh (revision d370fd1cd8fc69e87dc63f4f4a82e5a8b4956c93)
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