Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagebash
titlecron.def
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

...