* src/ltltest/defs.in (run): New function, run valgrind.

* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/parse.test,
src/ltltest/parseerr.test, src/ltltest/tostring.test,
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
Automake 1.8 find them automatically.
* configure.ac: Require Automake 1.8, in gnits mode, and check
for valgrind.
* THANKS: New empty file.
This commit is contained in:
Alexandre Duret-Lutz 2003-12-29 17:30:51 +00:00
parent c2892a8275
commit 6f88e518a9
14 changed files with 167 additions and 160 deletions

View file

@ -1,5 +1,16 @@
2003-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr> 2003-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
* src/ltltest/defs.in (run): New function, run valgrind.
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/parse.test,
src/ltltest/parseerr.test, src/ltltest/tostring.test,
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
Automake 1.8 find them automatically.
* configure.ac: Require Automake 1.8, in gnits mode, and check
for valgrind.
* THANKS: New empty file.
* doc/Doxyfile.in: Upgrade to Doxygen 1.3.5. Build * doc/Doxyfile.in: Upgrade to Doxygen 1.3.5. Build
documentation for iface/. documentation for iface/.
* dox/mainpage.dox: Fix reference to ltl_to_tgba. * dox/mainpage.dox: Fix reference to ltl_to_tgba.

View file

@ -10,11 +10,11 @@ Here are the tools you need to bootstrap the CVS tree, or more
generally if you plan to regenerate some of the generated files. generally if you plan to regenerate some of the generated files.
GNU Autoconf 2.57 GNU Autoconf 2.57
GNU Automake 1.7.8 GNU Automake 1.8
GNU Flex (the version probably doesn't matter much, we used 2.5.4) GNU Flex (the version probably doesn't matter much, we used 2.5.4)
The CVS version of GNU Bison (called 1.875b at the time of writing) The CVS version of GNU Bison (called 1.875b at the time of writing)
SWIG 1.3.19 SWIG 1.3.19
Doxygen 1.3.4 Doxygen 1.3.5
Bootstrap the CVS tree by running Bootstrap the CVS tree by running

View file

@ -29,14 +29,4 @@ endif WITH_INCLUDED_LBTT
SUBDIRS = $(MAYBE_BUDDY) $(MAYBE_LBTT) doc src wrap iface SUBDIRS = $(MAYBE_BUDDY) $(MAYBE_LBTT) doc src wrap iface
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \ EXTRA_DIST = HACKING
m4/buddy.m4 \
m4/debug.m4 \
m4/devel.m4 \
m4/gccoptim.m4 \
m4/gccwarn.m4 \
m4/gspnlib.m4 \
m4/lbtt.m4 \
m4/ndebug.m4 \
m4/pypath.m4 \
HACKING

0
THANKS Normal file
View file

View file

@ -22,7 +22,7 @@
AC_PREREQ([2.57]) AC_PREREQ([2.57])
AC_INIT([spot], [0.0m]) AC_INIT([spot], [0.0m])
AC_CONFIG_AUX_DIR([tools]) AC_CONFIG_AUX_DIR([tools])
AM_INIT_AUTOMAKE([nostdinc check-news 1.7.3]) AM_INIT_AUTOMAKE([gnits nostdinc 1.8])
adl_ENABLE_DEVEL adl_ENABLE_DEVEL
adl_CHECK_PYTHON adl_CHECK_PYTHON
@ -46,6 +46,7 @@ ad_GCC_OPTIM
adl_NDEBUG adl_NDEBUG
AC_CHECK_PROG([DOT], [dot], [dot]) AC_CHECK_PROG([DOT], [dot], [dot])
AC_CHECK_PROG([VALGRIND], [valgrind], [valgrind])
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile

View file

@ -46,6 +46,26 @@ test -z "$VERBOSE" && exec >/dev/null 2>&1
echo "== Running test $0" echo "== Running test $0"
DOT='@DOT@' DOT='@DOT@'
VALGRIND='@VALGRIND@'
run()
{
expected_exitcode=$1
shift
exitcode=0
if test -n "$VALGRIND"; then
exec 6>valgrind.err
# No --leak-check=yes for now, as it causes parserr.test to fail.
GLIBCPP_FORCE_NEW=1 \
$VALGRIND --logfile-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. # Turn on shell traces when VERBOSE=x.
if test "x$VERBOSE" = xx; then if test "x$VERBOSE" = xx; then

View file

@ -25,42 +25,33 @@
. ./defs || exit 1 . ./defs || exit 1
check()
{
./equals "$2" "$3"
test $? != $1 && exit 1;
}
# A few things which are equal # A few things which are equal
check 0 'a' 'a' run 0 ./equals 'a' 'a'
check 0 '1' '1' run 0 ./equals '1' '1'
check 0 '0' '0' run 0 ./equals '0' '0'
check 0 'a => b' 'a => b' run 0 ./equals 'a => b' 'a => b'
check 0 'G a ' ' G a' run 0 ./equals 'G a ' ' G a'
check 0 'a U b' 'a U b' run 0 ./equals 'a U b' 'a U b'
check 0 'a & b' 'a & b' run 0 ./equals 'a & b' 'a & b'
check 0 'a & b' 'b & a' run 0 ./equals 'a & b' 'b & a'
check 0 'a & b & c' 'c & a && b' run 0 ./equals 'a & b & c' 'c & a && b'
check 0 'a & b & c' 'b & c & a' run 0 ./equals 'a & b & c' 'b & c & a'
check 0 'a && b & a' 'b & a & b' run 0 ./equals 'a && b & a' 'b & a & b'
check 0 'a & b' 'b & a & b' run 0 ./equals 'a & b' 'b & a & b'
check 0 'a & b' 'b & a & a' run 0 ./equals 'a & b' 'b & a & a'
check 0 'a & b & (c |(f U g)|| e)' 'b & a & a & (c | e |(f U g)| e | c) & b' run 0 ./equals 'a & b & (c |(f U g)|| e)' 'b & a & a & (c | e |(f U g)| e | c) & b'
check 0 'a & a' 'a' run 0 ./equals 'a & a' 'a'
# other formulae which are not # other formulae which are not
check 1 'a' 'b' run 1 ./equals 'a' 'b'
check 1 '1' '0' run 1 ./equals '1' '0'
check 1 'a => b' 'b => a' run 1 ./equals 'a => b' 'b => a'
check 1 'a => b' 'a <=> b' run 1 ./equals 'a => b' 'a <=> b'
check 1 'a => b' 'a U b' run 1 ./equals 'a => b' 'a U b'
check 1 'a R b' 'a U b' run 1 ./equals 'a R b' 'a U b'
check 1 'a & b & c' 'c & a' run 1 ./equals 'a & b & c' 'c & a'
check 1 'b & c' 'c & a & b' run 1 ./equals 'b & c' 'c & a & b'
check 1 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(g U g)| e | c) & b' run 1 ./equals 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(g U g)| e | c) & b'
# Precedence # Precedence
check 0 'a & b ^ c | d' 'd | c ^ b & a' run 0 ./equals 'a & b ^ c | d' 'd | c ^ b & a'
# Success.
:

View file

@ -28,22 +28,22 @@
set -e set -e
# A few things that do not change # A few things that do not change
./lunabbrev 'a' 'a' run 0 ./lunabbrev 'a' 'a'
./lunabbrev '1' '1' run 0 ./lunabbrev '1' '1'
./lunabbrev '0' '0' run 0 ./lunabbrev '0' '0'
./lunabbrev 'G a ' ' G a' run 0 ./lunabbrev 'G a ' ' G a'
./lunabbrev 'a U b' 'a U b' run 0 ./lunabbrev 'a U b' 'a U b'
./lunabbrev 'a & b' 'a & b' run 0 ./lunabbrev 'a & b' 'a & b'
./lunabbrev 'a & b' 'b & a' run 0 ./lunabbrev 'a & b' 'b & a'
./lunabbrev 'a & b & c' 'c & a & b' run 0 ./lunabbrev 'a & b & c' 'c & a & b'
./lunabbrev 'a & b & c' 'b & c & a' run 0 ./lunabbrev 'a & b & c' 'b & c & a'
./lunabbrev 'a & b & a' 'b & a & b' run 0 ./lunabbrev 'a & b & a' 'b & a & b'
./lunabbrev 'a & b' 'b & a & b' run 0 ./lunabbrev 'a & b' 'b & a & b'
./lunabbrev 'a & b' 'b & a & a' run 0 ./lunabbrev 'a & b' 'b & a & a'
./lunabbrev 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(f U g)| e | c) & b' run 0 ./lunabbrev 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(f U g)| e | c) & b'
# other formulae that do change # other formulae that do change
./lunabbrev 'a ^ b' '(a & !b) | (!a & b)' run 0 ./lunabbrev 'a ^ b' '(a & !b) | (!a & b)'
./lunabbrev 'a ^ Xb' '(!Xb & a) | (!a & Xb) | (Xb & !a)' run 0 ./lunabbrev 'a ^ Xb' '(!Xb & a) | (!a & Xb) | (Xb & !a)'
./lunabbrev 'GF a => F G(b)' '!GFa | F Gb' run 0 ./lunabbrev 'GF a => F G(b)' '!GFa | F Gb'
./lunabbrev '!a <-> Xb' '(Xb & !a) | (!!a & !Xb)' run 0 ./lunabbrev '!a <-> Xb' '(Xb & !a) | (!!a & !Xb)'
./lunabbrev '(a ^ b) | (b ^ c)' '(c & !b) | (!c & b) | (a & !b) | (!a & b)' run 0 ./lunabbrev '(a ^ b) | (b ^ c)' '(c & !b) | (!c & b) | (a & !b) | (!a & b)'

View file

@ -28,37 +28,37 @@
set -e set -e
# A few things that do not change # A few things that do not change
./nenoform 'a' 'a' run 0 ./nenoform 'a' 'a'
./nenoform '1' '1' run 0 ./nenoform '1' '1'
./nenoform '0' '0' run 0 ./nenoform '0' '0'
./nenoform '!a' '!a' run 0 ./nenoform '!a' '!a'
./nenoform 'a U b' 'a U b' run 0 ./nenoform 'a U b' 'a U b'
./nenoform 'a & b' 'a & b' run 0 ./nenoform 'a & b' 'a & b'
./nenoform 'a & b' 'b & a' run 0 ./nenoform 'a & b' 'b & a'
./nenoform 'a & !b & c' 'c & a & !b' run 0 ./nenoform 'a & !b & c' 'c & a & !b'
./nenoform 'a & b & c' 'b & c & a' run 0 ./nenoform 'a & b & c' 'b & c & a'
./nenoform 'Xa & b & Xa' 'b & Xa & b' run 0 ./nenoform 'Xa & b & Xa' 'b & Xa & b'
./nenoform 'a & b' 'b & a & b' run 0 ./nenoform 'a & b' 'b & a & b'
./nenoform 'a & !b' '!b & a & a' run 0 ./nenoform 'a & !b' '!b & a & a'
./nenoform 'a & b & (Xc |(f U !g)| e)' 'b & a & a & (Xc | e |(f U !g)| e | Xc) & b' run 0 ./nenoform 'a & b & (Xc |(f U !g)| e)' 'b & a & a & (Xc | e |(f U !g)| e | Xc) & b'
./nenoform 'GFa => FGb' 'GFa => FGb' run 0 ./nenoform 'GFa => FGb' 'GFa => FGb'
# Basic rewritings # Basic rewritings
./nenoform '!!a' 'a' run 0 ./nenoform '!!a' 'a'
./nenoform '!!!!!a' '!a' run 0 ./nenoform '!!!!!a' '!a'
./nenoform '!Xa' 'X!a' run 0 ./nenoform '!Xa' 'X!a'
./nenoform '!Fa' 'G!a' run 0 ./nenoform '!Fa' 'G!a'
./nenoform '!Ga' 'F!a' run 0 ./nenoform '!Ga' 'F!a'
./nenoform '!(a ^ b)' 'a <=> b' run 0 ./nenoform '!(a ^ b)' 'a <=> b'
./nenoform '!(a <=> b)' '(((a) ^ (b)))' run 0 ./nenoform '!(a <=> b)' '(((a) ^ (b)))'
./nenoform '!(a => b)' 'a&!b' run 0 ./nenoform '!(a => b)' 'a&!b'
./nenoform '!(!a => !b)' '!a&b' run 0 ./nenoform '!(!a => !b)' '!a&b'
./nenoform '!(a U b)' '!a R !b' run 0 ./nenoform '!(a U b)' '!a R !b'
./nenoform '!(a R b)' '!a U !b' run 0 ./nenoform '!(a R b)' '!a U !b'
./nenoform '!(!a R !b)' 'a U b' run 0 ./nenoform '!(!a R !b)' 'a U b'
./nenoform '!(a & b & c & d & b)' '!a | !b | !c | !d' run 0 ./nenoform '!(a & b & c & d & b)' '!a | !b | !c | !d'
./nenoform '!(a | b | c | d)' '!a & !b & !c & !d' run 0 ./nenoform '!(a | b | c | d)' '!a & !b & !c & !d'
# Nested rewritings # Nested rewritings
./nenoform '!(a U (!b U ((a & b & c) R d)))' '!a R (b R ((!a | !b | !c) U !d))' run 0 ./nenoform '!(a U (!b U ((a & b & c) R d)))' '!a R (b R ((!a | !b | !c) U !d))'
./nenoform '!(GF a => FG b)' 'GFa & GF!b' run 0 ./nenoform '!(GF a => FG b)' 'GFa & GF!b'

View file

@ -80,7 +80,7 @@ do
fi fi
if test -n "$DOT"; then if test -n "$DOT"; then
./ltl2dot "$f" > parse.dot run 0 ./ltl2dot "$f" > parse.dot
if $DOT -o /dev/null parse.dot; then if $DOT -o /dev/null parse.dot; then
rm -f parse.dot rm -f parse.dot
else else

View file

@ -28,11 +28,7 @@
check() check()
{ {
if ./ltl2text "$1" >stdout; then run 1 ./ltl2text "$1" >stdout
echo "ltl2text unexpectedly parsed '$1' successfully"
rm -f stdout
exit 1
else
if test -n "$2"; then if test -n "$2"; then
echo "$2" >expect echo "$2" >expect
else else
@ -48,7 +44,6 @@ check()
rm -f stdout expect rm -f stdout expect
exit 1 exit 1
fi fi
fi
} }
# Empty or unparsable strings # Empty or unparsable strings

View file

@ -27,19 +27,18 @@
set -e set -e
./tostring 'a' run 0 ./tostring 'a'
./tostring '1' run 0 ./tostring '1'
./tostring '0' run 0 ./tostring '0'
./tostring 'a => b' run 0 ./tostring 'a => b'
./tostring 'G a ' run 0 ./tostring 'G a '
./tostring 'a U b' run 0 ./tostring 'a U b'
./tostring 'a & b' run 0 ./tostring 'a & b'
./tostring 'a & b & c' run 0 ./tostring 'a & b & c'
./tostring 'b & a & b' run 0 ./tostring 'b & a & b'
./tostring 'b & a & a' run 0 ./tostring 'b & a & a'
./tostring 'a & b & (c |(f U g)| e)' run 0 ./tostring 'a & b & (c |(f U g)| e)'
./tostring 'b & a & a & (c | e |(f U g)| e | c) & b' run 0 ./tostring 'b & a & a & (c | e |(f U g)| e | c) & b'
./tostring 'a <=> b' run 0 ./tostring 'a <=> b'
./tostring 'a & b & (c |(f U g)| e)' run 0 ./tostring 'a & b & (c |(f U g)| e)'
./tostring 'b & a & a & (c | e |(g U g)| e | c) & b' run 0 ./tostring 'b & a & a & (c | e |(g U g)| e | c) & b'

View file

@ -28,27 +28,27 @@
set -e set -e
# A few things that do not change # A few things that do not change
./tunabbrev 'a' 'a' run 0 ./tunabbrev 'a' 'a'
./tunabbrev '1' '1' run 0 ./tunabbrev '1' '1'
./tunabbrev '0' '0' run 0 ./tunabbrev '0' '0'
./tunabbrev 'a U b' 'a U b' run 0 ./tunabbrev 'a U b' 'a U b'
./tunabbrev 'a & b' 'a & b' run 0 ./tunabbrev 'a & b' 'a & b'
./tunabbrev 'a & b' 'b & a' run 0 ./tunabbrev 'a & b' 'b & a'
./tunabbrev 'a & b & c' 'c & a & b' run 0 ./tunabbrev 'a & b & c' 'c & a & b'
./tunabbrev 'a & b & c' 'b & c & a' run 0 ./tunabbrev 'a & b & c' 'b & c & a'
./tunabbrev 'a & b & a' 'b & a & b' run 0 ./tunabbrev 'a & b & a' 'b & a & b'
./tunabbrev 'a & b' 'b & a & b' run 0 ./tunabbrev 'a & b' 'b & a & b'
./tunabbrev 'a & b' 'b & a & a' run 0 ./tunabbrev 'a & b' 'b & a & a'
./tunabbrev 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(f U g)| e | c) & b' run 0 ./tunabbrev 'a & b & (c |(f U g)| e)' 'b & a & a & (c | e |(f U g)| e | c) & b'
# same as in lunabbrev.test: # same as in lunabbrev.test:
./tunabbrev 'a ^ b' '(a & !b) | (!a & b)' run 0 ./tunabbrev 'a ^ b' '(a & !b) | (!a & b)'
./tunabbrev 'a ^ Xb' '(!Xb & a) | (!a & Xb) | (Xb & !a)' run 0 ./tunabbrev 'a ^ Xb' '(!Xb & a) | (!a & Xb) | (Xb & !a)'
./tunabbrev '!a <-> Xb' '(Xb & !a) | (!!a & !Xb)' run 0 ./tunabbrev '!a <-> Xb' '(Xb & !a) | (!!a & !Xb)'
./tunabbrev '(a ^ b) | (b ^ c)' '(c & !b) | (!c & b) | (a & !b) | (!a & b)' run 0 ./tunabbrev '(a ^ b) | (b ^ c)' '(c & !b) | (!c & b) | (a & !b) | (!a & b)'
# LTL unabbreviations: # LTL unabbreviations:
./tunabbrev 'G a ' 'false R a' run 0 ./tunabbrev 'G a ' 'false R a'
./tunabbrev 'GF a => F G(b)' '!(false R (true U a)) | (true U (false V b))' run 0 ./tunabbrev 'GF a => F G(b)' '!(false R (true U a)) | (true U (false V b))'
./tunabbrev 'GGGGa' 'false V (false V (false V (false V a)))' run 0 ./tunabbrev 'GGGGa' 'false V (false V (false V (false V a)))'
./tunabbrev 'FFFfalse' 'true U ((true) U (true U (false)))' run 0 ./tunabbrev 'FFFfalse' 'true U ((true) U (true U (false)))'

View file

@ -27,10 +27,10 @@
set -e set -e
./tunenoform '!(a ^ b)' '(a|!b) & (!a|b)' run 0 ./tunenoform '!(a ^ b)' '(a|!b) & (!a|b)'
./tunenoform '!(a <=> b)' '(a|b) & (!a|!b)' run 0 ./tunenoform '!(a <=> b)' '(a|b) & (!a|!b)'
./tunenoform '!(a => b)' 'a&!b' run 0 ./tunenoform '!(a => b)' 'a&!b'
./tunenoform '!(!a => !b)' '!a&b' run 0 ./tunenoform '!(!a => !b)' '!a&b'
./tunenoform '!Fa' 'false R !a' run 0 ./tunenoform '!Fa' 'false R !a'
./tunenoform '!G!a' 'true U a' run 0 ./tunenoform '!G!a' 'true U a'
./tunenoform '!(GF a => FG b)' '(0 R (1 U a)) & (0 R (1 U !b))' run 0 ./tunenoform '!(GF a => FG b)' '(0 R (1 U a)) & (0 R (1 U !b))'