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

S Roderick <[email protected]> Thu, 13 Mar 2014 11:50:06 +0100
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <[email protected]/>
http://bugs.orocos.org/show_bug.cgi?id=1055

           Summary: State machine signalling on an operation causes
                    multiple transitions
           Product: Toolchain
           Version: master
          Platform: All
        OS/Version: GNU/Linux
            Status: NEW
          Severity: major
          Priority: P3
         Component: RTT
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
   Estimated Hours: 0.0


Created attachment 868
  --> http://bugs.orocos.org/attachment.cgi?id=868
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.

-- 
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