...
The following example shows that with ecflowecFlow
- 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 tasks 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.
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
multi1.def: suite structure definition¶
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 | 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
|
multi2.def: task and family addition for intra-suite test¶
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | 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
|
multi3.def: standalone test triggered by ‘multi’ suite¶
1
2
3
4
5
6
7
8
9
10
11 | 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 or /multi/main/00/fc/model eq complete))
task run
|
...