...
However the suite definition describes the static structure, it its not until it the definition is loaded in the server, that we see its dynamic behaviour.
The python api allows the simulation of the dynamic behaviour of the suite, ( i.e. in the same manner as the server).
...
Code Block | ||||
---|---|---|---|---|
| ||||
suite year # use real clock otherwise the date wont change clock real 1.1.2017 # define a start date for deterministic simulation endclock 1.1.2018 # When to finish. A endclock is *ONLY* for use with the simulator. family cronFamily task t cron -d 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 -m 1,2,3,4,5,6,7,8,9,10,11,12 10:00 # run every day at 10am for a year verify complete:365 # verify that this task completes 365 times endfamily endsuite suite leap_year # use real clock otherwise the date wont change clock real 1.1.2016 # define a start date for deterministic simulation endclock 1.1.2017 # When to finish. A endclock is *ONLY* for use with the simulator. family cronFamily task t cron -d 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 -m 1,2,3,4,5,6,7,8,9,10,11,12 10:00 # run every day at 10am for a year verify complete:366 # verify that this task completes 366 times in a leap year endfamily endsuite |
This python segment show shows how to load a text based suite definition(cron.def) and simulate it in python.
...
Both files will show which nodes are holding, and include the state of the holding trigger expressions.
def simulate_deadlock():
This simulation is expected to fail, since we have a deadlock/ race condition
...