tests: divide the run time of parse.test by 20
* tests/core/readltl.cc: Process many formulas from a file instead of one arg at a time. * tests/core/parse.test, tests/core/parseerr.test, tests/core/utf8.test: Adjust to supply a file as input.
This commit is contained in:
parent
ad51525608
commit
7e5b336f16
4 changed files with 160 additions and 170 deletions
|
|
@ -28,82 +28,72 @@
|
|||
|
||||
. ./defs || exit 1
|
||||
|
||||
for f in \
|
||||
'0' \
|
||||
'1' \
|
||||
'true' \
|
||||
'false' \
|
||||
'a' \
|
||||
'p11011' \
|
||||
'(p11011)' \
|
||||
'a & b' \
|
||||
'a * _b12' \
|
||||
'a && .b.' \
|
||||
'a + b' \
|
||||
'a3214 | b' \
|
||||
'a /\ b' \
|
||||
'a || b' \
|
||||
'a \/ b' \
|
||||
'a | b' \
|
||||
'_a_ U b' \
|
||||
'a R b' \
|
||||
'a <=> b' \
|
||||
'a <-> b' \
|
||||
'a ^ b' \
|
||||
'a xor b' \
|
||||
'a => b' \
|
||||
'a -> b' \
|
||||
'F b' \
|
||||
'Gb' \
|
||||
'G(b)' \
|
||||
'!G(!b)' \
|
||||
'!b' \
|
||||
'[]b' \
|
||||
'<>b' \
|
||||
'X b' \
|
||||
'()b' \
|
||||
'X"X"' \
|
||||
'X"F"' \
|
||||
'X"G"' \
|
||||
'X"U"' \
|
||||
'X"W"' \
|
||||
'X"R"' \
|
||||
'X"M"' \
|
||||
'long_atomic_proposition_1 U long_atomic_proposition_2' \
|
||||
' ab & ac | ad ^ af' \
|
||||
'((b & a) + a) & d' \
|
||||
'(ab & ac | ad ) <=> af ' \
|
||||
'a U b U c U d U e U f U g U h U i U j U k U l U m' \
|
||||
'(ab & !Xad + ad U ab) & FG p12 /\ GF p13' \
|
||||
'((([]<>()p12)) )' \
|
||||
'a R ome V anille' \
|
||||
'p=0Uq=1' \
|
||||
'((p=1Rq=1)+p=0)UXq=0' \
|
||||
'((p=1Rq=1)*p=0)UXq=0' \
|
||||
'(Gq=1*Fp=0)UXq=0' \
|
||||
'((p=1Mq=1)Wx+p=0)RXq=0' \
|
||||
'((p=1Vq=1)Rx+p=0)WXq=0' \
|
||||
'((X(p2=0))U(X(p2=0)))+((Xp1=0)UFALSE)'
|
||||
set -e
|
||||
|
||||
do
|
||||
if ../ltl2text "$f"; then
|
||||
:
|
||||
else
|
||||
echo "ltl2text failed to parse '$f'"
|
||||
exit 1
|
||||
fi
|
||||
cat >input <<EOF
|
||||
0
|
||||
1
|
||||
true
|
||||
false
|
||||
a
|
||||
p11011
|
||||
(p11011)
|
||||
a & b
|
||||
a * _b12
|
||||
a && .b.
|
||||
a + b
|
||||
a3214 | b
|
||||
a /\ b
|
||||
a || b
|
||||
a \/ b
|
||||
a | b
|
||||
_a_ U b
|
||||
a R b
|
||||
a <=> b
|
||||
a <-> b
|
||||
a ^ b
|
||||
a xor b
|
||||
a => b
|
||||
a -> b
|
||||
F b
|
||||
Gb
|
||||
G(b)
|
||||
!G(!b)
|
||||
!b
|
||||
[]b
|
||||
<>b
|
||||
X b
|
||||
()b
|
||||
X"X"
|
||||
X"F"
|
||||
X"G"
|
||||
X"U"
|
||||
X"W"
|
||||
X"R"
|
||||
X"M"
|
||||
long_atomic_proposition_1 U long_atomic_proposition_2
|
||||
ab & ac | ad ^ af
|
||||
((b & a) + a) & d
|
||||
(ab & ac | ad ) <=> af
|
||||
a U b U c U d U e U f U g U h U i U j U k U l U m
|
||||
(ab & !Xad + ad U ab) & FG p12 /\ GF p13
|
||||
((([]<>()p12)) )
|
||||
a R ome V anille
|
||||
p=0Uq=1
|
||||
((p=1Rq=1)+p=0)UXq=0
|
||||
((p=1Rq=1)*p=0)UXq=0
|
||||
(Gq=1*Fp=0)UXq=0
|
||||
((p=1Mq=1)Wx+p=0)RXq=0
|
||||
((p=1Vq=1)Rx+p=0)WXq=0
|
||||
((X(p2=0))U(X(p2=0)))+((Xp1=0)UFALSE)
|
||||
EOF
|
||||
|
||||
if test -n "$DOT"; then
|
||||
run 0 ../ltl2dot "$f" > parse.dot
|
||||
if $DOT -o /dev/null parse.dot; then
|
||||
rm -f parse.dot
|
||||
else
|
||||
rm -f parse.dot
|
||||
echo "dot failed to parse ltl2dot output for '$f'"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
run 0 ../ltl2text input
|
||||
|
||||
if test -n "$DOT"; then
|
||||
run 0 ../ltl2dot "input" > parse.dot
|
||||
$DOT -o /dev/null parse.dot
|
||||
fi
|
||||
|
||||
# Make sure running the parser in debug mode does not crash
|
||||
run 0 ../ikwiad -d 'a U b'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue