ltlgrind: fix two bugs related to PSL formulas
* src/ltlvisit/mutation.cc: Do not bindly rewrite e[]->f and
e<>->f as e, since e is not a valid PSL formula. Use !{e}
and {e} instead. Also fix a memory leak in the handling of
bunops, discovered while testing the previous change.
* src/tests/ltlgrind.test: Add a test case.
This commit is contained in:
parent
011a56846f
commit
f55211336e
2 changed files with 52 additions and 21 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2014 Laboratoire de Recherche et Dévelopement to
|
||||
# Copyright (C) 2014, 2015 Laboratoire de Recherche et Dévelopement to
|
||||
# l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
|
|
@ -26,6 +26,8 @@ checkopt()
|
|||
{
|
||||
cat >exp
|
||||
run 0 ../../bin/ltlgrind "$@" > out
|
||||
# The result must be parsable
|
||||
../../bin/ltlfilt out
|
||||
diff exp out
|
||||
}
|
||||
|
||||
|
|
@ -165,3 +167,17 @@ p3 & p4
|
|||
1 U (p3 & !p4)
|
||||
1 U (!p3 & p4)
|
||||
EOF
|
||||
|
||||
checkopt -f 'F({{p2;p0}[:*]}[]-> Xp0)' <<EOF
|
||||
1
|
||||
{{p2;p0}[:*]}[]-> Xp0
|
||||
F!{{p2;p0}[:*]}
|
||||
FXp0
|
||||
F({{p2;p0}[:*]}[]-> p0)
|
||||
F({{p2;p0}[:*]}[]-> 0)
|
||||
F({p2;p0}[]-> Xp0)
|
||||
F({{1;p0}[:*]}[]-> Xp0)
|
||||
F({{p2;1}[:*]}[]-> Xp0)
|
||||
F({p0[*2][:*]}[]-> Xp0)
|
||||
F({p2[*2][:*]}[]-> Xp2)
|
||||
EOF
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue