sepsets: fix infinite loop
* tests/core/sepsets.test: New test case. * spot/twaalgos/sepsets.cc: Fix the code. * NEWS: Mention the problem.
This commit is contained in:
parent
13a3f6d72d
commit
48ecb903c5
3 changed files with 35 additions and 11 deletions
5
NEWS
5
NEWS
|
|
@ -46,6 +46,11 @@ New in spot 2.7.3.dev (not yet released)
|
||||||
acceptance condition. The output can be alternating only if the
|
acceptance condition. The output can be alternating only if the
|
||||||
input was alternating.
|
input was alternating.
|
||||||
|
|
||||||
|
Bugs fixed:
|
||||||
|
|
||||||
|
- separate_sets_here() (and therefore autfilt --separate-sets) could
|
||||||
|
loop infinitely on some inputs.
|
||||||
|
|
||||||
New in spot 2.7.3 (2019-04-19)
|
New in spot 2.7.3 (2019-04-19)
|
||||||
|
|
||||||
Bugs fixed:
|
Bugs fixed:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2015-2018 Laboratoire de Recherche et
|
// Copyright (C) 2015-2019 Laboratoire de Recherche et
|
||||||
// Développement de l'Epita.
|
// Développement de l'Epita.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -69,8 +69,7 @@ namespace spot
|
||||||
break;
|
break;
|
||||||
case acc_cond::acc_op::Fin:
|
case acc_cond::acc_op::Fin:
|
||||||
case acc_cond::acc_op::FinNeg:
|
case acc_cond::acc_op::FinNeg:
|
||||||
if (!(pos[-1].mark & common))
|
if (pos[-1].mark & common)
|
||||||
break;
|
|
||||||
for (auto p: map)
|
for (auto p: map)
|
||||||
if (pos[-1].mark & p.first)
|
if (pos[-1].mark & p.first)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (C) 2015 Laboratoire de Recherche et Développement de
|
# Copyright (C) 2015, 2019 Laboratoire de Recherche et Développement de
|
||||||
# l'Epita (LRDE).
|
# l'Epita (LRDE).
|
||||||
#
|
#
|
||||||
# This file is part of Spot, a model checking library.
|
# This file is part of Spot, a model checking library.
|
||||||
|
|
@ -39,6 +39,16 @@ State: 2
|
||||||
[!0&1&!2] 1
|
[!0&1&!2] 1
|
||||||
[0&!2] 2 {0 1}
|
[0&!2] 2 {0 1}
|
||||||
--END--
|
--END--
|
||||||
|
HOA: v1
|
||||||
|
States: 1
|
||||||
|
Start: 0
|
||||||
|
AP: 3 "p0" "p1" "p2"
|
||||||
|
Acceptance: 3 (Fin(1) | Inf(0)) & (Fin(2) | Inf(1))
|
||||||
|
properties: trans-labels explicit-labels state-acc deterministic
|
||||||
|
--BODY--
|
||||||
|
State: 0 {0 1 2}
|
||||||
|
[0&!1&!2] 0
|
||||||
|
--END--
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
|
|
@ -60,6 +70,16 @@ State: 2
|
||||||
[!0&1&!2] 1
|
[!0&1&!2] 1
|
||||||
[0&!2] 2 {0 1 2 3}
|
[0&!2] 2 {0 1 2 3}
|
||||||
--END--
|
--END--
|
||||||
|
HOA: v1
|
||||||
|
States: 1
|
||||||
|
Start: 0
|
||||||
|
AP: 3 "p0" "p1" "p2"
|
||||||
|
Acceptance: 4 (Fin(3) | Inf(0)) & (Fin(2) | Inf(1))
|
||||||
|
properties: trans-labels explicit-labels state-acc deterministic
|
||||||
|
--BODY--
|
||||||
|
State: 0 {0 1 2 3}
|
||||||
|
[0&!1&!2] 0
|
||||||
|
--END--
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
run 0 autfilt --separate-sets in -H > out
|
run 0 autfilt --separate-sets in -H > out
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue