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
94
95
96
|
1 - Remove the mention of the fwkJobReports destination from the .cfi file:
the affected lines are
untracked vstring fwkJobReports = {"FrameworkJobReport"}
untracked PSet FrameworkJobReport = {
untracked PSet default = { untracked int32 limit = 0 }
untracked PSet FwkJob = { untracked int32 limit = 10000000 }
}
2 - By default no fwkJobReports destinations are created.
3 - Check for the command-line option --jobreport or --jobreport=<name>
4 - Equivalent options are -j or -j=<name>
5 - If --jobreport=<name> appears, behave as if the .cfg file contained
untracked vstring --jobreport = {"name"} (supplying the extension .xml
if it is not already present), with the defaults currently set in the
.cfi file hardwired in to the code.
6 - If --jobreport (without specifying a name) appears, behave as if the
precise lines which were excised from the .cfi file were present, thus
creating FrameworkJobReport.xml.
7 - If --jobreport appears (with or without a name) AND the .cfg file
also has one or more fwkJobReports destinations, create all these
destinations plus the one caused by --jobreport. (But if the name
of the --jobreport destination matches one of the explicitly specified
names in the .cfg file, do not create the extra destination instigated
by the comand-line option.
8 - An additional command-line option, --nojobreport, causes the suppression
of all --jobreport destinations, both those mentioned in a .cfg file and
those mentioned in a --jobreport option.
As a development matter, we provide a symbol
#define DEFINE_THIS_TO_MAKE_REPORTS_THE_DEFAULT
to let the default behavior remain as before, which is helpful for testing.
The technique is to convey the contents of the --jobreport option to
make it avalable in configure_fwkJobReports. If there is no option
specified, the option will be the empty string; if there is one without
a name, the option will be transmitted as "*". Then there is a two-step
decision process. In the first step there are 5 possibilities for the option
and two possibilities for DEFINE_THIS_TO_MAKE_REPORTS_THE_DEFAULT
(a) option = ""
Job reports are disabled or enabled according to
whether DEFINE_THIS_TO_MAKE_REPORTS_THE_DEFAULT is defined.
option is left as "".
(b) option = "~"
Job reports are disabled no matter what.
(c) option = "*" indicating --jobreports without a specific name.
Job reports are enabled.
(d) option = name (without an extension):
Job reports are enabled.
The extension .xml is tacked on to option.
(e) option = name.extension:
Job reports are enabled.
Then if job reports are now enabled, each job report destination mentioned in
the .cfg file is configured. We note whether after this jobReportExists.
The second decision step then step happens (if job reports are enabled):
(a) option = ""(which can only occur if DEFINE_THIS_TO_MAKE_REPORTS_THE_DEFAULT)
Since no job report was requested on the command line, no job report
is made, and we can return.
(b) option = "~" -- cannot be the case at this point, since reports are enabled
(c) option = "*"
If jobReportExists we are in fact reporting, so nothing further needs
to be done. Otherwise, change option to FrameworkJobReport.xml
(d,e) option = name.extension
If that name matches a framework job report actual file name, we need
do nothing more. Otherwise, configure a framework job destination
by the name of FrameworkJobReport.xml
Finally, if we have not returned, we need to configure the destination, but
this is a special version because we don't have a PSet yet we want to act
as if we had
untracked PSet FrameworkJobReport = {
untracked PSet default = { untracked int32 limit = 0 }
untracked PSet FwkJob = { untracked int32 limit = 10000000 }
}
|