[Bug 1055] State machine signalling on an operation causes multiple transitions

Peter Soetens <[email protected]> Thu, 13 Mar 2014 15:51:25 +0100
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <[email protected]>
http://bugs.orocos.org/show_bug.cgi?id=1055

Peter Soetens <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |[email protected]

--- Comment #1 from Peter Soetens <[email protected]> 2014-03-13 15:51:25 CET ---
(In reply to comment #0)
> Created attachment 868 [details]
> Expands state machine unit test
> 
> Emitting v_event() in the following, while in STATE1, causes a transition to
> FINI. So v_event() has been taken in both STATE1 and STATE2, even though only
> one signal occurred.
> 
>     string prog = string("StateMachine X {\n")
>     + " initial state INIT {\n"
>     + "    transitions { select STATE1 }\n"
>     + " }\n"
>     + " state STATE1 {\n"
>     + "    transition v_event() select STATE2\n" // test signal transition
>     + " }\n"
>     + " state STATE2 {\n"
>     + "    transition v_event() select FINI\n"   // test signal transition
>     + " }\n"
>     + " final state FINI {} \n"
>     + "}\n"
>     + "RootMachine X x()\n";
> 
> Patch containing failing unit test attached.
> 
> Linking CXX executable state_test
> Running 16 test cases...
> ~/orocos_ws/src/orocos_toolchain/rtt/tests/state_test.cpp(822): error in
> "testStateOperationSignalTransition2": check "STATE2" ==
> sm->getCurrentStateName() failed [STATE2 != FINI]
> ~/orocos_ws/src/orocos_toolchain/rtt/tests/state_test.cpp(826): error in
> "testStateOperationSignalTransition2": check "STATE2" ==
> sm->getCurrentStateName() failed [STATE2 != FINI]
> 
> Demonstrated in Linux Mint 15.

Thanks for the unit test, I'm looking into it.

Peter

-- 
Configure bugmail: http://bugs.orocos.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
You are the assignee for the bug.
-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev