]> mj.ucw.cz Git - eval.git/blob - t/doc/timeline.rst
37a2f5e65ce63c23a0f6d60d0fec40c41211b6d4
[eval.git] / t / doc / timeline.rst
1 Evaluation timeline
2 ====================
3
4 Eval.init
5 ---------
6
7 `Eval.init` is run before the main pipeline, does the following:
8
9 ======= ==========
10 Time    Action
11 ======= ==========
12 \       Set builtins `HOME`, `CONFIG`, `LOG`, `DEBUG_LEVEL`, `VERBOSE`, also (temp?) `TDIR`, `USER_LOG`
13 \       Apply command-line overrides
14 \       Fix `CONFIG` and load the config file `CONFIG`
15 \       Fix `LOG`, `USER_LOG`, `VERBOSE`, `HOME`, `DEBUG_LEVEL`, `TDIR`
16 \       Start logging system (to `LOG` and `USER_LOG`)
17 \       Check basic settings, directories and rights (currently checking only `TDIR`)
18 \       Insert predefined hooks ([m]) and `HOOKS` to main pipeline
19 ======= ==========
20
21 Main pipeline
22 -------------
23
24 Ran by `Eval.run`.
25
26 ======= ==========
27 Time    Action
28 ======= ==========
29 10      [m] Task **must** be ready (rsynced, pulled). Locate and fix `PDIR`
30 15      [m] Load `TASK_CONFIG_FILE` (dep. on `PDIR`)
31 20      [m] Check `TASK_TYPE` and depending on that, initialize the module and insert future actions
32 **For 'standard':**
33 ------------------
34 25      [tt] Locate the source
35 30      [tt] Initialize sandbox module
36 35      [tt] Initialize compiler module, insert its hooks 
37 50      [cpl] Compile the source, perhaps using the sandbox
38 60      [tt] Run test pipeline for each `TEST` of `TESTS`
39 **For 'opendata':**
40 ------------------
41 25      [tt] Locate the data files (as a dir)
42 30      [tt] Initialize sandbox module (if needed)
43 40      [tt] Initialize judge module, insert its hooks 
44 60      [tt] Run test pipeline for each `TEST` of `TESTS` 
45 **Recovery**
46 ------------------
47 70      Any failure jumps to this time
48 80      [*] Cleanup must be finished
49 \       Write metafile
50 ======= ==========
51
52 Test pipeline
53 -------------
54
55 ======= ========================
56 Time    Action
57 ======= ========================
58 \       Tee logging to test log file
59 **For 'standard':**
60 --------------------------------
61 10      [tt] Copy test data to `TDIR` and to `BOXDIR`
62 30      [tt] Run testee (inside sandbox)
63 40      [tt] Run judge (inside sandbox)
64 50      [tt] Read/parse judge result
65 60      [tt] Copy program output to `TDIR`
66 **For 'opendata':**
67 --------------------------------
68 10      [tt] Copy test data to `TDIR` and to `BOXDIR`
69 20      [tt] Locate the data file, copy to 
70 40      [tt] Run judge (inside sandbox)
71 50      [tt] Read/parse judge result
72 **Recovery**
73 --------------------------------
74 70      Any failure jumps to this time
75 80      [*] Cleanup must be finished
76 \       Write metafile
77 ======= ========================