zfs: add ztest to the kyua test suite.

This program is currently failing, and has been for >6 months on HEAD.
Ideally, this should be run 24x7 in CI, to discover hard-to-find bugs that
only manifest with concurrent i/o.

Requested by:	lwhsu, mmacy
This commit is contained in:
Will Andrews 2018-08-15 13:05:04 +00:00
parent 559cb76c51
commit 450e5a4378
4 changed files with 64 additions and 0 deletions

View File

@ -25,4 +25,7 @@ CSTD= c99
# it without debugging.
CFLAGS+= -g -DDEBUG=1 -Wno-format
HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View File

@ -0,0 +1,7 @@
# $FreeBSD$
.include <bsd.own.mk>
ATF_TESTS_SH+= ztest
.include <bsd.test.mk>

View File

@ -0,0 +1,52 @@
#
# Test Case: ztest
# $FreeBSD$
#
atf_test_case ztest
ztest_head()
{
atf_set "descr" "Run ztest"
atf_set "timeout" 900
atf_set "require.config" "rt_long"
}
ztest_body()
{
ARGS="-VVVVV -f ${TMPDIR:-/tmp}"
if atf_config_has ztest_extra_args; then
ARGS="${ARGS} $(atf_config_get ztest_extra_args)"
fi
ztest ${ARGS}
if [ $? != 0 ]; then
echo "failing"
save_ztest_artifacts
atf_fail "Testcase failed"
else
echo "passing"
atf_pass
fi
}
#
# ATF Test Program Init Function
#
atf_init_test_cases()
{
atf_add_test_case ztest
}
save_ztest_artifacts()
{
# If artifacts_dir is defined, save test artifacts for
# post-mortem analysis
if atf_config_has artifacts_dir; then
TC_ARTIFACTS_DIR=`atf_config_get artifacts_dir`/cddl/usr.bin/ztest/$(atf_get ident)
mkdir -p $TC_ARTIFACTS_DIR
TC_CORE_DIR=/var/crash
if atf_config_has core_dir; then
TC_CORE_DIR=`atf_config_get core_dir`
fi
mv *ztest*.core* $TC_ARTIFACTS_DIR || true
mv ${TC_CORE_DIR}/*ztest*.core* $TC_ARTIFACTS_DIR || true
fi
}

View File

@ -67,6 +67,8 @@
usr.bin
ctfconvert
..
ztest
..
..
usr.sbin
dtrace