88 lines
2.0 KiB
Bash
88 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
#--------------------------------------------------------------------------#
|
|
|
|
die () {
|
|
cecho "${HIDE}test/icnf/run.sh:${NORMAL} ${BAD}error:${NORMAL} $*"
|
|
exit 1
|
|
}
|
|
|
|
msg () {
|
|
cecho "${HIDE}test/icnf/run.sh:${NORMAL} $*"
|
|
}
|
|
|
|
for dir in . .. ../..
|
|
do
|
|
[ -f $dir/scripts/colors.sh ] || continue
|
|
. $dir/scripts/colors.sh || exit 1
|
|
break
|
|
done
|
|
|
|
#--------------------------------------------------------------------------#
|
|
|
|
[ -d ../test -a -d ../test/icnf ] || \
|
|
die "needs to be called from a top-level sub-directory of CaDiCaL"
|
|
|
|
[ x"$CADICALBUILD" = x ] && CADICALBUILD="../build"
|
|
|
|
[ -x "$CADICALBUILD/cadical" ] || \
|
|
die "can not find '$CADICALBUILD/cadical' (run 'make' first)"
|
|
|
|
cecho -n "$HILITE"
|
|
cecho "---------------------------------------------------------"
|
|
cecho "ICNF testing in '$CADICALBUILD'"
|
|
cecho "---------------------------------------------------------"
|
|
cecho -n "$NORMAL"
|
|
|
|
make -C $CADICALBUILD
|
|
res=$?
|
|
[ $res = 0 ] || exit $res
|
|
|
|
#--------------------------------------------------------------------------#
|
|
|
|
solver="$CADICALBUILD/cadical"
|
|
|
|
#--------------------------------------------------------------------------#
|
|
|
|
ok=0
|
|
failed=0
|
|
|
|
run () {
|
|
msg "running ICNF tests ${HILITE}'$1'${NORMAL}"
|
|
prefix=$CADICALBUILD/test-icnf
|
|
icnf=../test/icnf/$1.icnf
|
|
log=$prefix-$1.log
|
|
err=$prefix-$1.err
|
|
opts="$icnf --check"
|
|
opts="$icnf"
|
|
cecho "$solver \\"
|
|
cecho "$opts"
|
|
cecho -n "# $2 ..."
|
|
"$solver" $opts 1>$log 2>$err
|
|
res=$?
|
|
if [ ! $res = $2 ]
|
|
then
|
|
cecho " ${BAD}FAILED${NORMAL} (actual exit code $res)"
|
|
failed=`expr $failed + 1`
|
|
else
|
|
cecho " ${GOOD}ok${NORMAL} (exit code '$res' as expected)"
|
|
ok=`expr $ok + 1`
|
|
fi
|
|
}
|
|
|
|
run empty 10
|
|
run false 20
|
|
run unit1 20
|
|
run unit2 10
|
|
run two1 20
|
|
run two2 10
|
|
|
|
#--------------------------------------------------------------------------#
|
|
|
|
[ $ok -gt 0 ] && OK="$GOOD"
|
|
[ $failed -gt 0 ] && FAILED="$BAD"
|
|
|
|
msg "${HILITE}ICNF testing results:${NORMAL} ${OK}$ok ok${NORMAL}, ${FAILED}$failed failed${NORMAL}"
|
|
|
|
exit $failed
|