Open mechatheo opened 1 year ago
Reminds me a bit of this issue I was working on a while ago: https://github.com/boost-ext/sml/pull/385
After some digging I think it was introduced with #331 . It can be fixed by removing: transitions_sub<sm<TSM>>::execute
specialization for anonymous
events. This however restores the guards-call-multiplication behaviour. I'm not sure how to fix it yet.
Today I wanted to update the Boost::SML library in our codebase, we used version 1.1.0 and I wanted to switch to 1.1.6. We have an extensive unit test suite and one of the tests failed.
We have the following state machine:
With a nested
Playing
machine:All transitions are automatic, no events are needed. So in the unit test, you typically would set the result of the dice throw up front and when the state machine is instantiated, the test expected it to get into one of the final states immediately. So
X
orSuccess
This used to be the case with version 1.1.0, now that I'm trying to upgrade to 1.1.6 the endstate is
Playing.Initial
. This is especially weird to me, as the initial should always auto-transition.We generate our state machines from the UML, here is the corresponding amalgamated code:
the now-failing test then goes like this:
@krzysztof-jusiak any ideas on that?
Specifications