-
Notifications
You must be signed in to change notification settings - Fork 1
/
ConTestProperties.txt
256 lines (198 loc) · 10.2 KB
/
ConTestProperties.txt
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
#######################################################
# (c) IBM corporation (1999, 2008), ALL RIGHTS RESERVED
#######################################################
#Following is a sample ConTest property file. The format of the file must
#conform to the rules described in API of
#java.util.Proprties.load(InputStream).
#TARGET SPECIFICATION PROPERTIES
#================================
#Put here which classes you want ConTest to work on. Put a prefix of the fully-
#qualified class name, with slahses instead of dots:
# targetClasses = com/ibm/myproject/
#You can also put a list of such prefixes separated by commas:
# targetClasses = com/ibm/myproject/foo/,com/ibm/myproject/bar
#For command-line instrumentation you can leave the asterisk, and then the
#target classes will be all those you specify in the instrumentation commmand.
#See "Guidelines on how to select target classes" help page if you are not sure
#which classes to target.
targetClasses = com/jtanks/model/
#Specify files which list locations. These locations will not be targeted
#even if they are in target classes. If you have more than one file, separate
#the files with semicolons.
excludeTasks =
#Don't target locations that appear in current coverage trace files. (in
#addition to the files specified in 'excludeTasks', if any).
excludeCoveredTasks = false
#Specify a file which lists locations. Only these locations (provided they are
#within target classes) will be targeted. It's illegal to give a value here and
#in either of the two exclude options.
includeTasks =
#GENERAL PROPERTIES
#===================
#By default all output files are written to the current working directory.
#Otherwise, the output property can specify the output directory location and
#all output files will be written to that directory. In Windows, double the
#backslash (\\) to separate directories. Takes effect during both
#instrumentation and test runtime - if you do them from different working
#directories, specify an absolute directory here.
output = .
#See "Running tests" help page for more details.
#Possible values are "class", "method" and "off". If it is not "off", noise
#will begin only when a program location that corresponds to some condition is
#seen. The condition is that either the class name (if the value is "class") or
#the method name ("method") contain the string of the property beginAtValue.
beginAtType = off
#See beginAtType. Ignored if beginAtType does not exist, is "off", or is
#illegal. Must not be empty or contain spaces.
beginAtValue = someString
#INSTRUMENTATION RELATED PROPERTIES
#===================================
#See "Instrumentation" help page for more details.
#Set to false to prevent the command-line instrumentation from doing backup
keepBackup = true
#Make instrumentation output to a file all locations.
writeAllTasks = false
#HEURISTIC AND NOISE RELATED PROPERTIES
#=======================================
#See "Heuristics" help page for more details.
#With this parameter (and with the 'strength') you can control the amount of
#noise ConTest does. The number gives probability to do noise at each concurrent
#event, out of 1000. 0 means never to do noise. 1000 means to do noise at all
#concurrent events. 500 - around half of the concurrent events.
#If set to 0 then noiseType, strength and haltOneThread are ignored.
noiseFrequency = 70
#If true, the various bug-finding heuristics are chosen randomly.
#The following properties are ignored in this file: noiseType, haltOneThread,
#timeoutTampering, sharedVarNoise, shared, collectShared, nonVarNoise.
#Set to false to cause this properties to be taken from this file.
#If this property is missing, it is taken to be true! Therefore, to enable
#setting heuristics manually, set it explicitly to "false".
#If replay points to a URL (next run should be a replay of a previous run),
#this property is ignored.
random = true
#Determines the type of noise primitive ConTest uses. Possible values
#are: "yields", "sleeps", "waits", "synchYields" and "mixed".
#Ignored (and randomly chosen) if random = true
noiseType = yields
#When noise is done (see 'noiseFrequency'), this property controls HOW MUCH is
#done - the strength of one "noise unit". The exact meaning of the number
#depends on the mode (see property "noiseType"). Should be 0 and above, or -1 to
#tell ConTest to choose the default value for the chosen noiseType.
strength = -1
#This is a heuristic that occasionally stops one thread for as long as possible.
#Set to true to activate it.
#Ignored (and randomly chosen) if random = true. Ignored (and disabled) if
#frequency is 0. Can work with strength 0.
haltOneThread = false
#If this property is true, ConTest randomly reduces the timeout parameter given
#to the methods Thread.sleep, Thread.join and Object.wait. See "heuristic" help
#page for explanation why this is good. To cancel this behavior, set to false.
#Ignored (and randomly chosen) if random = true
timeoutTampering = true
#If true, noise is concentrated on accesses to shared variables. Dependant
#properties: shared, collectShared, nonVarNoise.
#Ignored (and randomly chosen) if random = true
sharedVarNoise = true
#This property is relevant if and only if sharedVarNoise is true and random
#is false. Possible values: "all", "one". If "all", the noise will be made on
#all detected shared variables. If "one", only one variable will be selected.
#It will be randomly selected from the initial contents of the shared vars
#file. If the file is initially empty or does not exist, noise will be made
#on all detected shared vars (as if it was "all").
shared = all
#This property is relevant if and only if sharedVarNoise is true and random
#is false. If true, new shared vars are identified and added to the set. If
#false, only those originally in the file are taken. However, if the file
#initially does not exist or is empty, it is taken to be true regardless of
#the value written here.
collectShared = true
#This property is relevant if and only if sharedVarNoise is true and random
#is false. It involves concurrent events that are not read/write to variables
#(e.g., synchronization primitives). If it is true, noise will be done on
#such events (in addition to shared variables).
nonVarNoise = true
#DEBUGGING AID PROPERTIES
#=========================
#See "Debugging Aids" help page for more details.
#Set to true to enable lock status report.
lockStatus = false
#Set to true to enable thread-last-location report.
threadLocation = false
#Set to true to enable "orange-box" reports.
orange_box = false
#Set the number of desired values per variable in "orange-box" report.
last_values_size = 2
#Set to false to make the orange box keep info for objects which may already
#be reclaimed by the garabage collector, and prevent their reclaiming.
forgetting_orange_box = true
#Controls the Partial Replay feature - see "Debugging Aids" help page. Possible
#values: false (no replay), true (record next run), or the ID of the run to be
#replayed.
replay = false
#Set to true to enable the lock actions trace.
lockHistory = false
#FAULT DETECTION PROPERTIES
#===========================
#See "Lock Discipline" help page for more details.
#Set to true to enable lock discipline trace.
lockDiscipline = false
#COVERAGE PROPERTIES
#====================
#See "Coverage" help page for more details.
#Coverage of program locations of method entry. It effectively gives coverage
#of methods. To use it, set it to true, and make sure the appropriate flag was
#set in instrumentation.
methodCoverage = false
#Coverage of bytecode basic blocks. Effectively gives coverage of statements.
#To use it, set it to true, and make sure the appropriate flag was set in
#instrumentation.
basicBlockCoverage = false
#Concurrent coverage, which checks that each synchronization block indeed
#blocked at least once waiting for the lock.
synchronizationCoverage = false
#Coverage of the shared variables detected in this run.
sharedVarCoverage = false
#Lists pairs of concurrent event program locations that appeared consecutively
#in a run, and whether or not they were performed by the same thread (i.e
#whether there was context switch).
concurrentEventPairsCoverage = false
#A directory, or a list of directories separated by semicolons, under which
#source files are searched (recursively). By default, current working directory
#is searched. Leave empty to not include source directory at all in locations.
#Takes effect during instrumentation.
sourceDirs = .
#Buffer size of the coverage output streams. Applies to method, basic block
#and pairs coverage. Value smaller than 256 is ignored; the buffer is flushed
#after each task.
buffer_size = 0
#CALLBACK PROPERTIES
#====================
#See "Callback thread" help page for more details.
#If true, starts a callback thread that gets input from standard input
#(keyboard). See "Callback Thread" help page.
enable_keyboard_callback = false
#If true, starts a callback thread that gets input from network port. Related
#property: callback_port_number. See "Callback Thread" help page.
enable_port_callback = false
#if enable_port_callback is true, this property determines the port number on
#which the server (contest) will listen for connection requests. If it is
#left 0, the operating system will choose an available port. It will be
#announced as a contest verbose print (so you'll probably want to have
#verbose on in this case).
callback_port_number = 0
#DATAGRAM FAULT INJECTION PROPERTIES
#====================================
#See "Datagram Fault Injection" help page for more details.
#Possible values are: "disabled", "no-noise", "delay", "block",
#"random-conservative" and "random-radical". See "fault injection: datagram"
#help page.
datagramFaultInjectionMode = random-conservative
#Possible values are: "incoming", "outgoing", "both" (default). See "fault
#injection: datagram" help page.
datagramFaultInjectionDirection = both
#A number between 0 and 1000: Probability (out of 1000) to interfere with each
#package. See "fault injection: datagram" help page.
datagramFaultInjectionFrequency = 100
#An upper bound on the buffer length of packets that may take part in reordering
#of datagram fault injection. See "fault injection: datagram" help page.
datagramLengthBound = 10000