Skip to content

Instantly share code, notes, and snippets.

@Phrogz
Created June 29, 2014 04:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Phrogz/170da0e41632de9771f7 to your computer and use it in GitHub Desktop.
Save Phrogz/170da0e41632de9771f7 to your computer and use it in GitHub Desktop.
-- $ ./autotest.lua test579.scxml
enterStates( enabledTransitions:{ <transition target='s0' external> } )
computeEntrySet( transitions:{ <transition target='s0' external> }, ... )
addDescendantStatesToEnter( state:<state id=s0>, ... )
statesToEnter:add( <state id=s0> )
getEffectiveTargetStates( transition:<transition target='sh1' external> )
getEffectiveTargetStates( transition:<transition target='s01' external> )
-- getEffectiveTargetStates result: { <state id=s01> }
-- getEffectiveTargetStates result: { <state id=s01> }
addDescendantStatesToEnter( state:<state id=s01>, ... )
statesToEnter:add( <state id=s01> )
addAncestorStatesToEnter( state:<state id=s01>, ancestor:<state id=s0>, ... )
getTransitionDomain( t:<transition target='s0' external> )
getEffectiveTargetStates( transition:<transition target='s0' external> )
-- getEffectiveTargetStates result: { <state id=s0> }
-- getTransitionDomain result: scxml-000021ac-c16f-4756-a886-380db50c0b1d
getEffectiveTargetStates( transition:<transition target='s0' external> )
-- getEffectiveTargetStates result: { <state id=s0> }
addAncestorStatesToEnter( state:<state id=s0>, ancestor:<scxml id=scxml-000021ac-c16f-4756-a886-380db50c0b1d>, ... )
-- computeEntrySet result statesToEnter: { <state id=s0>, <state id=s01> }
-- computeEntrySet result statesForDefaultEntry: { <state id=s0> }
-- added state 's0' to the configuration; config is now <s0>
-- queued internal event 'event1'
-- queued internal event 'event2'
-- added state 's01' to the configuration; config is now <s0, s01>
selectEventlessTransitions()
removeConflictingTransitions( enabledTransitions:{} )
-- removeConflictingTransitions result: {}
-- selectEventlessTransitions result: {}
-- Internal Queue: { <event 'event1' type=internal>, <event 'event2' type=internal> }
selectTransitions( <event 'event1' type=internal> )
removeConflictingTransitions( enabledTransitions:{ <transition event='event1' target='s02' external> } )
-- removeConflictingTransitions result: { <transition event='event1' target='s02' external> }
-- selectTransitions result: { <transition event='event1' target='s02' external> }
microstep( enabledTransitions:{ <transition event='event1' target='s02' external> } )
exitStates( enabledTransitions:{ <transition event='event1' target='s02' external> } )
computeExitSet( transitions:{ <transition event='event1' target='s02' external> } )
getTransitionDomain( t:<transition event='event1' target='s02' external> )
getEffectiveTargetStates( transition:<transition event='event1' target='s02' external> )
-- getEffectiveTargetStates result: { <state id=s02> }
-- getTransitionDomain result: s0
-- computeExitSet result { <state id=s01> }
-- removed <state id=s01> from the configuration; config is now {s0}
executeTransitionContent( enabledTransitions:{ <transition event='event1' target='s02' external> } )
enterStates( enabledTransitions:{ <transition event='event1' target='s02' external> } )
computeEntrySet( transitions:{ <transition event='event1' target='s02' external> }, ... )
addDescendantStatesToEnter( state:<state id=s02>, ... )
statesToEnter:add( <state id=s02> )
getTransitionDomain( t:<transition event='event1' target='s02' external> )
getEffectiveTargetStates( transition:<transition event='event1' target='s02' external> )
-- getEffectiveTargetStates result: { <state id=s02> }
-- getTransitionDomain result: s0
getEffectiveTargetStates( transition:<transition event='event1' target='s02' external> )
-- getEffectiveTargetStates result: { <state id=s02> }
addAncestorStatesToEnter( state:<state id=s02>, ancestor:<state id=s0>, ... )
-- computeEntrySet result statesToEnter: { <state id=s02> }
-- computeEntrySet result statesForDefaultEntry: {}
-- added state 's02' to the configuration; config is now <s0, s02>
selectEventlessTransitions()
removeConflictingTransitions( enabledTransitions:{} )
-- removeConflictingTransitions result: {}
-- selectEventlessTransitions result: {}
-- Internal Queue: { <event 'event2' type=internal> }
selectTransitions( <event 'event2' type=internal> )
removeConflictingTransitions( enabledTransitions:{ <transition event='event2' target='s03' external> } )
-- removeConflictingTransitions result: { <transition event='event2' target='s03' external> }
-- selectTransitions result: { <transition event='event2' target='s03' external> }
microstep( enabledTransitions:{ <transition event='event2' target='s03' external> } )
exitStates( enabledTransitions:{ <transition event='event2' target='s03' external> } )
computeExitSet( transitions:{ <transition event='event2' target='s03' external> } )
getTransitionDomain( t:<transition event='event2' target='s03' external> )
getEffectiveTargetStates( transition:<transition event='event2' target='s03' external> )
-- getEffectiveTargetStates result: { <state id=s03> }
-- getTransitionDomain result: s0
-- computeExitSet result { <state id=s02> }
-- removed <state id=s02> from the configuration; config is now {s0}
executeTransitionContent( enabledTransitions:{ <transition event='event2' target='s03' external> } )
enterStates( enabledTransitions:{ <transition event='event2' target='s03' external> } )
computeEntrySet( transitions:{ <transition event='event2' target='s03' external> }, ... )
addDescendantStatesToEnter( state:<state id=s03>, ... )
statesToEnter:add( <state id=s03> )
getTransitionDomain( t:<transition event='event2' target='s03' external> )
getEffectiveTargetStates( transition:<transition event='event2' target='s03' external> )
-- getEffectiveTargetStates result: { <state id=s03> }
-- getTransitionDomain result: s0
getEffectiveTargetStates( transition:<transition event='event2' target='s03' external> )
-- getEffectiveTargetStates result: { <state id=s03> }
addAncestorStatesToEnter( state:<state id=s03>, ancestor:<state id=s0>, ... )
-- computeEntrySet result statesToEnter: { <state id=s03> }
-- computeEntrySet result statesForDefaultEntry: {}
-- added state 's03' to the configuration; config is now <s0, s03>
selectEventlessTransitions()
removeConflictingTransitions( enabledTransitions:{} )
-- removeConflictingTransitions result: {}
-- selectEventlessTransitions result: {}
-- External Queue: {}
selectEventlessTransitions()
removeConflictingTransitions( enabledTransitions:{} )
-- removeConflictingTransitions result: {}
-- selectEventlessTransitions result: {}
-- External Queue: {}
-- queued external event 'timeout'
selectEventlessTransitions()
removeConflictingTransitions( enabledTransitions:{} )
-- removeConflictingTransitions result: {}
-- selectEventlessTransitions result: {}
-- External Queue: { <event 'timeout' type=external> }
selectTransitions( <event 'timeout' type=external> )
removeConflictingTransitions( enabledTransitions:{ <transition event='*' target='fail' external> } )
-- removeConflictingTransitions result: { <transition event='*' target='fail' external> }
-- selectTransitions result: { <transition event='*' target='fail' external> }
microstep( enabledTransitions:{ <transition event='*' target='fail' external> } )
exitStates( enabledTransitions:{ <transition event='*' target='fail' external> } )
computeExitSet( transitions:{ <transition event='*' target='fail' external> } )
getTransitionDomain( t:<transition event='*' target='fail' external> )
getEffectiveTargetStates( transition:<transition event='*' target='fail' external> )
-- getEffectiveTargetStates result: { <final id=fail> }
-- getTransitionDomain result: scxml-000021ac-c16f-4756-a886-380db50c0b1d
-- computeExitSet result { <state id=s0>, <state id=s03> }
-- removed <state id=s03> from the configuration; config is now {s0}
-- removed <state id=s0> from the configuration; config is now {}
executeTransitionContent( enabledTransitions:{ <transition event='*' target='fail' external> } )
enterStates( enabledTransitions:{ <transition event='*' target='fail' external> } )
computeEntrySet( transitions:{ <transition event='*' target='fail' external> }, ... )
addDescendantStatesToEnter( state:<final id=fail>, ... )
statesToEnter:add( <final id=fail> )
getTransitionDomain( t:<transition event='*' target='fail' external> )
getEffectiveTargetStates( transition:<transition event='*' target='fail' external> )
-- getEffectiveTargetStates result: { <final id=fail> }
-- getTransitionDomain result: scxml-000021ac-c16f-4756-a886-380db50c0b1d
getEffectiveTargetStates( transition:<transition event='*' target='fail' external> )
-- getEffectiveTargetStates result: { <final id=fail> }
addAncestorStatesToEnter( state:<final id=fail>, ancestor:<scxml id=scxml-000021ac-c16f-4756-a886-380db50c0b1d>, ... )
-- computeEntrySet result statesToEnter: { <final id=fail> }
-- computeEntrySet result statesForDefaultEntry: {}
-- added final 'fail' to the configuration; config is now <fail>
Failed running test579.scxml:
…setdata _sessionid=de45a129-bc79-4b9b-affd-e379773bb2a8
…setdata _name=(lxsc)
…setdata _ioprocessors=table: 0x7fe2ebc8f4d0
…setdata testvar1=0
…fireevt <event 'event1' type=internal sendid= origin= origintype= invokeid= data=nil>
…entered state 's0'
…fireevt <event 'event2' type=internal sendid= origin= origintype= invokeid= data=nil>
…entered state 's01'
…setdata _event=<event 'event1' type=internal>
…exiting state 's01'
…running <transition in 's01' on 'event1' target='s02' type=external>
…entered state 's02'
…setdata _event=<event 'event2' type=internal>
…exiting state 's02'
…running <transition in 's02' on 'event2' target='s03' type=external>
…entered state 's03'
…fireevt <event 'timeout' type=external sendid= origin= origintype=http://www.w3.org/TR/scxml/#SCXMLEventProcessor invokeid= data=nil>
…setdata _event=<event 'timeout' type=external>
…exiting state 's03'
…exiting state 's0'
…setdata testvar1=1
…running <transition in 's03' on '*' target='fail' type=external>
…entered final 'fail'
…finished in state(s): fail
…state machine was no longer running
…datamodel: {
_event = "<event 'timeout' type=external>",
_ioprocessors = {},
_name = "(lxsc)",
_sessionid = "de45a129-bc79-4b9b-affd-e379773bb2a8",
testvar1 = 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment