diff --git a/iface/nips/nipstest/Makefile.am b/iface/nips/nipstest/Makefile.am new file mode 100644 index 000000000..937e6d9e6 --- /dev/null +++ b/iface/nips/nipstest/Makefile.am @@ -0,0 +1,34 @@ +## Copyright (C) 2003, 2004, 2005, 2006, 2008 Laboratoire +## d'Informatique de Paris 6 (LIP6), département Systèmes Répartis +## Coopératifs (SRC), Université Pierre et Marie Curie. +## +## This file is part of Spot, a model checking library. +## +## Spot is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## Spot is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +## License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Spot; see the file COPYING. If not, write to the Free +## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + + +check_SCRIPTS = defs + +BYTECODES = dinner.pr.nips.b never.pr.b peterson.pm.b regbit.b +EXTRA_DIST = $(TESTS) $(BYTECODES) + +# Ordered by strength of the test. Test basic features first. +TESTS = \ +dotty.test \ +emptiness.test + +CLEANFILES = \ + dotty diff --git a/iface/nips/nipstest/defs.in b/iface/nips/nipstest/defs.in new file mode 100644 index 000000000..fde4a3574 --- /dev/null +++ b/iface/nips/nipstest/defs.in @@ -0,0 +1,76 @@ +# -*- shell-script -*- +# Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6), +# département Systèmes Répartis Coopératifs (SRC), Université Pierre +# et Marie Curie. +# +# This file is part of Spot, a model checking library. +# +# Spot is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# Spot is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +# License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Spot; see the file COPYING. If not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# Ensure we are running from the right directory. +test -f ./defs || { + echo "defs: not found in current directory" 1>&2 + exit 1 +} + +# If srcdir is not set, then we are not running from `make check', be verbose. +if test -z "$srcdir"; then + test -z "$VERBOSE" && VERBOSE=x + # compute $srcdir. + srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'` + test $srcdir = $0 && srcdir=. +fi + +# Ensure $srcdir is set correctly. +test -f $srcdir/defs.in || { + echo "$srcdir/defs.in not found, check \$srcdir" 1>&2 + exit 1 +} + +# User can set VERBOSE to see all output. +test -z "$VERBOSE" && exec >/dev/null 2>&1 + +echo "== Running test $0" + +DOT='@DOT@' +top_builddir='@builddir@/..' +VALGRIND='@VALGRIND@' + +run() +{ + expected_exitcode=$1 + shift + exitcode=0 + if test -n "$VALGRIND"; then + exec 6>valgrind.err + GLIBCPP_FORCE_NEW=1 \ + $VALGRIND --tool=memcheck --leak-check=yes --log-fd=6 -q "$@" || + exitcode=$? + cat valgrind.err 1>&2 + test -z "`sed 1q valgrind.err`" || exit 50 + rm -f valgrind.err + else + "$@" || exitcode=$? + fi + test $exitcode = $expected_exitcode || exit 1 +} + +# Turn on shell traces when VERBOSE=x. +if test "x$VERBOSE" = xx; then + set -x +else + : +fi diff --git a/iface/nips/nipstest/dinner.pr.nips.b b/iface/nips/nipstest/dinner.pr.nips.b new file mode 100644 index 000000000..ddef781be Binary files /dev/null and b/iface/nips/nipstest/dinner.pr.nips.b differ diff --git a/iface/nips/nipstest/dotty.test b/iface/nips/nipstest/dotty.test new file mode 100755 index 000000000..2bb180628 --- /dev/null +++ b/iface/nips/nipstest/dotty.test @@ -0,0 +1,13 @@ +#!/bin/sh + +. ./defs || exit 1 + +set -e + + +BYTECODE="never.pr.b regbit.b" +for bytecode in $BYTECODE; do + run 0 ${top_builddir}/dottynips ${bytecode} > dotty || exit 1 + ${DOT} -Tps dotty > /dev/null || exit 1 + rm -f dotty +done diff --git a/iface/nips/nipstest/emptiness.test b/iface/nips/nipstest/emptiness.test new file mode 100755 index 000000000..d92b2e5de --- /dev/null +++ b/iface/nips/nipstest/emptiness.test @@ -0,0 +1,25 @@ +#!/bin/sh + +. ./defs || exit 1 + +set -e + +ALGO="Cou99 CVWY90 GV04 SE05 Tau03 Tau03" + +# Non empty. +BYTECODE="dinner.pr.nips.b never.pr.b" +for algo in $ALGO; do + for bytecode in $BYTECODE; do + run 0 ${top_builddir}/empt_check -c -e${algo} ${bytecode} | + grep '^non empty$' > /dev/null || exit 1 + done +done + +# Empty +BYTECODE="peterson.pm.b" +for algo in $ALGO; do + for bytecode in $BYTECODE; do + run 0 ${top_builddir}/empt_check -c -e${algo} ${bytecode} | + grep '^empty$' > /dev/null || exit 1 + done +done diff --git a/iface/nips/nipstest/never.pr.b b/iface/nips/nipstest/never.pr.b new file mode 100644 index 000000000..42ae5e0e2 Binary files /dev/null and b/iface/nips/nipstest/never.pr.b differ diff --git a/iface/nips/nipstest/peterson.pm.b b/iface/nips/nipstest/peterson.pm.b new file mode 100644 index 000000000..1ed3b911c Binary files /dev/null and b/iface/nips/nipstest/peterson.pm.b differ diff --git a/iface/nips/nipstest/regbit.b b/iface/nips/nipstest/regbit.b new file mode 100644 index 000000000..b2e58333f Binary files /dev/null and b/iface/nips/nipstest/regbit.b differ