freebsd-skq/tools/regression/fstest/tests/misc.sh
pjd 2f68acd7f7 Add 3436 file system regression tests in 184 files.
Almost all regression tests are based on very flexible fstest tool.
They verify correctness (POSIX conformance) of almost all file
system-related system calls.

The motivation behind this work is my ZFS port and POSIX, who doesn't
provide free test suites.

Runs on:	FreeBSD/UFS, FreeBSD/ZFS, Solaris/UFS, Solaris/ZFS

To try it out:

	# cd fstest
	# make
	# find tests/* -type d | xargs prove
2007-01-17 01:42:12 +00:00

97 lines
1.6 KiB
Bash

# $FreeBSD$
ntest=1
name253="_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_12"
name255="${name253}34"
name256="${name255}5"
path1021="${name255}/${name255}/${name255}/${name253}"
path1023="${path1021}/x"
path1024="${path1023}x"
echo ${dir} | egrep '^/' >/dev/null 2>&1
if [ $? -eq 0 ]; then
maindir="${dir}/../.."
else
maindir="`pwd`/${dir}/../.."
fi
fstest="${maindir}/fstest"
. ${maindir}/tests/conf
expect()
{
e="${1}"
shift
r=`${fstest} $* 2>/dev/null | tail -1`
echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "ok ${ntest}"
else
echo "not ok ${ntest}"
fi
ntest=`expr $ntest + 1`
}
jexpect()
{
s="${1}"
d="${2}"
e="${3}"
shift 3
r=`jail -s ${s} / fstest 127.0.0.1 /bin/sh -c "cd ${d} && ${fstest} $* 2>/dev/null" | tail -1`
echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "ok ${ntest}"
else
echo "not ok ${ntest}"
fi
ntest=`expr $ntest + 1`
}
test_check()
{
if [ $* ]; then
echo "ok ${ntest}"
else
echo "not ok ${ntest}"
fi
ntest=`expr $ntest + 1`
}
namegen()
{
echo "fstest_`dd if=/dev/random bs=1k count=1 2>/dev/null | openssl md5`"
}
quick_exit()
{
echo "1..1"
echo "ok 1"
exit 0
}
supported()
{
case "${1}" in
chflags)
if [ ${os} != "FreeBSD" -o ${fs} != "UFS" ]; then
return 1
fi
;;
lchmod)
if [ ${os} != "FreeBSD" ]; then
return 1
fi
;;
esac
return 0
}
require()
{
if supported ${1}; then
return
fi
quick_exit
}