Versions Compared

Key

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

...

  • a master definition file may provide the suite structure (multi1.def), with the right setting of inlimits, limits, triggers,
  • a developer in charge of adding test task to the suite may update it with a task test2, below an agreed family (/multi/main/00/test),
  • another tester may add some other tests as a different suite, triggered from 'multi' suite.

Code Block
themeEmacs
languagebash
titleclient commands to load and replace
ecflow_client --load multi1.def
ecflow_client --replace /multi/main/00/test/fc_complete/test2 multi2.def
ecflow_client --replace /test20121123 multi3.def
python TestBench.py multi1.def
python TestBench.py  multi3.def
Code Block
themeEmacs
titlemulti1.def: suite structure definition
collapsetrue
suite limits
  defstatus complete
  limit power6 120
  limit power7 120
  limit prod   10
  limit diss   10
  limit test   10
endsuite

suite multi

  family main
    inlimit /limits:power6
    repeat date YMD 20120101 20301212

  family 00
    family obs; 
      task get; 
    endfamily
    
    family ana
      trigger obs eq complete
      task ifs
    endfamily

    family fc
      trigger ana eq complete
      task model
        meter step -1 120
    endfamily

    family prod
    inlimit /limits:prod
      family 000; 
    trigger /multi/main/00/fc/model:step gt  0 or /multi/main/00/fc/model eq complete
      task gen; endfamily
      family 012;
    trigger /multi/main/00/fc/model:step gt 12 or /multi/main/00/fc/model eq complete
      task gen; endfamily
      family 024; 
    trigger /multi/main/00/fc/model:step gt 24 or /multi/main/00/fc/model eq complete
      task gen; endfamily
      family 048;
    trigger /multi/main/00/fc/model:step gt 48 or /multi/main/00/fc/model eq complete
      task gen; endfamily
      family 096; 
    trigger /multi/main/00/fc/model:step gt 96 or /multi/main/00/fc/model eq complete
      task gen; endfamily
      family 120; 
    trigger /multi/main/00/fc/model:step gt 120 or /multi/main/00/fc/model eq complete
      task gen; endfamily
    endfamily prod

    family diss
    inlimit /limits:diss
      family 000; 
    trigger /multi/main/00/prod/000 eq complete
      task gen; endfamily
      family 012;
    trigger /multi/main/00/prod/012 eq complete
      task gen; endfamily
      family 024; 
    trigger /multi/main/00/prod/024 eq complete
      task gen; endfamily
      family 048;
    trigger /multi/main/00/prod/048 eq complete
      task gen; endfamily
      family 096; 
    trigger /multi/main/00/prod/096 eq complete
      task gen; endfamily
      family 120; 
    trigger /multi/main/00/prod/120 eq complete
      task gen; endfamily
    endfamily diss

    family test
      inlimit /limits:test

      family fc_complete
    trigger /multi/main/00/fc eq complete
    task test1
      endfamily

      family prod_complete
    trigger /multi/main/00/prod eq complete
    task test1
      endfamily

      family diss
    trigger /multi/main/00/diss eq complete
    task test1
      endfamily
    endfamily 

endsuite
Code Block
themeEmacs
titlemulti2.def: task and family addition for intra-suite test
collapsetrue
extern /limits:test

suite multi
  defstatus suspended
  family main
  family 00
  family test
  family fc_complete
    task test2

      family fam_test
    trigger test2 eq complete
    task prepare

        task process
      trigger prepare eq complete

        task push
      trigger process eq complete

Code Block
themeEmacs
titlemulti3.def: standalone test triggered by 'multi' suite
collapsetrue
extern /limits:test
extern /multi/main/00/fc/model:step
extern /multi/main:YMD

suite test20121123
  defstatus suspended # so that it can be changed manually to queued
  repeat date YMD 20120101 20301212
  family test
    repeat integer STEP 0 120
  trigger /multi/main:YMD gt /test20121123:YMD or /multi/main:YMD eq /test20121123:YMD and /multi/main/00/fc/model:step ge /test20121123/test:STEP
    task run