Merge lp:~pbeaman/akiban-persistit/fix_nightly_stress_tests into lp:akiban-persistit
- fix_nightly_stress_tests
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Nathan Williams |
Approved revision: | 326 |
Merged at revision: | 322 |
Proposed branch: | lp:~pbeaman/akiban-persistit/fix_nightly_stress_tests |
Merge into: | lp:akiban-persistit |
Diff against target: |
1138 lines (+426/-63) 45 files modified
src/main/java/com/persistit/CLI.java (+4/-4) src/main/java/com/persistit/IOMeter.java (+1/-1) src/main/java/com/persistit/JournalTool.java (+1/-1) src/main/java/com/persistit/Persistit.java (+1/-1) src/main/java/com/persistit/RecoveryManager.java (+1/-1) src/main/java/com/persistit/util/ArgParser.java (+38/-5) src/test/java/com/persistit/StressRunner.java (+144/-0) src/test/java/com/persistit/stress/AbstractStressTest.java (+3/-1) src/test/java/com/persistit/stress/AbstractSuite.java (+55/-11) src/test/java/com/persistit/stress/InsertUUIDs.java (+1/-1) src/test/java/com/persistit/stress/IntentionalFailure.java (+67/-0) src/test/java/com/persistit/stress/Mixture1.java (+1/-1) src/test/java/com/persistit/stress/Mixture2.java (+1/-1) src/test/java/com/persistit/stress/Mixture3.java (+1/-1) src/test/java/com/persistit/stress/MixtureTxn1.java (+2/-1) src/test/java/com/persistit/stress/MixtureTxn2.java (+72/-0) src/test/java/com/persistit/stress/PersistitMap1.java (+1/-1) src/test/java/com/persistit/stress/Recovery1.java (+1/-1) src/test/java/com/persistit/stress/Recovery2.java (+1/-1) src/test/java/com/persistit/stress/Recovery2_StdIn.java (+1/-1) src/test/java/com/persistit/stress/StartStop.java (+1/-1) src/test/java/com/persistit/stress/Stress10Suite.java (+1/-1) src/test/java/com/persistit/stress/Stress12txnSuite.java (+1/-1) src/test/java/com/persistit/stress/Stress4Suite.java (+1/-1) src/test/java/com/persistit/stress/Stress8txnSuite.java (+1/-1) src/test/java/com/persistit/stress/unit/PersistitMapStress1.java (+5/-5) src/test/java/com/persistit/stress/unit/PersistitMapStress2.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress1.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress10.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress11.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress12txn.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress1txn.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress2.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress2txn.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress3.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress3txn.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress4Base.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress5.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress6.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress7.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress8txn.java (+1/-1) src/test/java/com/persistit/stress/unit/Stress9.java (+1/-1) src/test/java/com/persistit/stress/unit/StressInsert.java (+1/-1) src/test/java/com/persistit/stress/unit/StressRecovery.java (+1/-1) src/test/java/com/persistit/stress/unit/StressUUID.java (+1/-1) |
To merge this branch: | bzr merge lp:~pbeaman/akiban-persistit/fix_nightly_stress_tests |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Nathan Williams | Approve | ||
Review via email: mp+110148@code.launchpad.net |
Commit message
Description of the change
Add support for running a sequence of suites. Add support for saving failure information". Preparation for reinstantiating Jenkins job.
- 325. By Peter Beaman
-
Changes to permit list of tests, report name
Peter Beaman (pbeaman) wrote : | # |
Good suggestions. Did a bit more rework.
com.persistit.
1. Failure results in System.exit(1).
2. Argument "report=..." added = allows a file name in which a summary report is written. Default now has a name with a timestamp.
3. Argument "tests=..." allows a comma-separated list of test names, case insensitive. Allows wildcards, so "*" means all, "*txn*" means all tests with this substring.
Modified ArgParser to parse what it can and leave the rest on an unparsed list.
- 326. By Peter Beaman
-
Changes to permit list of tests, report name
Preview Diff
1 | === modified file 'src/main/java/com/persistit/CLI.java' |
2 | --- src/main/java/com/persistit/CLI.java 2012-05-25 18:50:59 +0000 |
3 | +++ src/main/java/com/persistit/CLI.java 2012-06-14 20:28:17 +0000 |
4 | @@ -357,7 +357,7 @@ |
5 | return null; |
6 | } |
7 | Task task = command.createTask(persistit, new ArgParser(commandName, pieces.toArray(new String[pieces.size()]), |
8 | - command.argTemplate)); |
9 | + command.argTemplate).strict()); |
10 | if (task != null) { |
11 | task.setPersistit(persistit); |
12 | } |
13 | @@ -532,7 +532,7 @@ |
14 | public String toString() { |
15 | StringBuilder sb = new StringBuilder(name); |
16 | sb.append(Util.NEW_LINE); |
17 | - sb.append(new ArgParser(name, new String[0], argTemplate)); |
18 | + sb.append(new ArgParser(name, new String[0], argTemplate).strict()); |
19 | return sb.toString(); |
20 | } |
21 | } |
22 | @@ -638,7 +638,7 @@ |
23 | list.remove(0); |
24 | try { |
25 | final String[] args = list.toArray(new String[list.size()]); |
26 | - final ArgParser ap = new ArgParser(commandName, args, command.argTemplate); |
27 | + final ArgParser ap = new ArgParser(commandName, args, command.argTemplate).strict(); |
28 | if (!ap.isUsageOnly()) { |
29 | String result = command.execute(this, ap); |
30 | if (result != null) { |
31 | @@ -922,7 +922,7 @@ |
32 | |
33 | _currentTree = null; |
34 | _currentVolume = null; |
35 | - |
36 | + |
37 | if (_persistit == null) { |
38 | postMessage("Persistit not loaded", LOG_NORMAL); |
39 | return; |
40 | |
41 | === modified file 'src/main/java/com/persistit/IOMeter.java' |
42 | --- src/main/java/com/persistit/IOMeter.java 2012-05-25 18:50:59 +0000 |
43 | +++ src/main/java/com/persistit/IOMeter.java 2012-06-14 20:28:17 +0000 |
44 | @@ -449,7 +449,7 @@ |
45 | public static void main(final String[] args) throws Exception { |
46 | final ArgParser ap = new ArgParser("com.persistit.IOMeter", args, new String[] { "file||log file name", |
47 | "skip|long:0:0:1000000000000|event skip count", "count|long:0:0:2000000000|event count nlimit", |
48 | - "_flag|a|Analyze page pattern" }); |
49 | + "_flag|a|Analyze page pattern" }).strict(); |
50 | final String fileName = ap.getStringValue("file"); |
51 | final long skip = ap.getLongValue("skip"); |
52 | final int count = ap.getIntValue("count"); |
53 | |
54 | === modified file 'src/main/java/com/persistit/JournalTool.java' |
55 | --- src/main/java/com/persistit/JournalTool.java 2012-05-25 18:50:59 +0000 |
56 | +++ src/main/java/com/persistit/JournalTool.java 2012-06-14 20:28:17 +0000 |
57 | @@ -305,7 +305,7 @@ |
58 | } |
59 | |
60 | public void init(final String[] args) { |
61 | - ArgParser ap = new ArgParser("com.persistit.JournalTool", args, ARGS_TEMPLATE); |
62 | + ArgParser ap = new ArgParser("com.persistit.JournalTool", args, ARGS_TEMPLATE).strict(); |
63 | if (ap.isUsageOnly()) { |
64 | return; |
65 | } |
66 | |
67 | === modified file 'src/main/java/com/persistit/Persistit.java' |
68 | --- src/main/java/com/persistit/Persistit.java 2012-05-29 20:59:11 +0000 |
69 | +++ src/main/java/com/persistit/Persistit.java 2012-06-14 20:28:17 +0000 |
70 | @@ -2478,7 +2478,7 @@ |
71 | * @throws Exception |
72 | */ |
73 | public static void main(String[] args) throws Exception { |
74 | - final ArgParser ap = new ArgParser("Persistit", args, ARG_TEMPLATE); |
75 | + final ArgParser ap = new ArgParser("Persistit", args, ARG_TEMPLATE).strict(); |
76 | if (ap.isUsageOnly()) { |
77 | return; |
78 | } |
79 | |
80 | === modified file 'src/main/java/com/persistit/RecoveryManager.java' |
81 | --- src/main/java/com/persistit/RecoveryManager.java 2012-05-25 18:50:59 +0000 |
82 | +++ src/main/java/com/persistit/RecoveryManager.java 2012-06-14 20:28:17 +0000 |
83 | @@ -1692,7 +1692,7 @@ |
84 | "path||pathname of journal, e.g., /xxx/yyy/zzz_journal " |
85 | + "for files such as /xxx/yyy/zzz_journal.0000000000000047", |
86 | "_flags|t|emit transaction details" }; |
87 | - final ArgParser argParser = new ArgParser("RecoveryManager", args, template); |
88 | + final ArgParser argParser = new ArgParser("RecoveryManager", args, template).strict(); |
89 | final Persistit persistit = new Persistit(); |
90 | persistit.initializeJournal(); |
91 | final RecoveryManager rman = new RecoveryManager(persistit); |
92 | |
93 | === modified file 'src/main/java/com/persistit/util/ArgParser.java' |
94 | --- src/main/java/com/persistit/util/ArgParser.java 2012-06-11 00:31:18 +0000 |
95 | +++ src/main/java/com/persistit/util/ArgParser.java 2012-06-14 20:28:17 +0000 |
96 | @@ -20,6 +20,10 @@ |
97 | |
98 | package com.persistit.util; |
99 | |
100 | +import java.util.ArrayList; |
101 | +import java.util.Collections; |
102 | +import java.util.List; |
103 | + |
104 | /** |
105 | * <p> |
106 | * A simple command line argument parser that provides primitive type conversion |
107 | @@ -46,6 +50,7 @@ |
108 | private final long[] _longArgs; |
109 | private final boolean[] _specified; |
110 | private boolean _usageOnly; |
111 | + private List<String> _unparsed = new ArrayList<String>(); |
112 | |
113 | /** |
114 | * <p> |
115 | @@ -123,18 +128,19 @@ |
116 | } else if (flagsTemplate.indexOf(ch) >= 0) { |
117 | flags.append(ch); |
118 | } else { |
119 | - throw new IllegalArgumentException("Invalid flag (" + ch + ") in " + arg); |
120 | + _unparsed.add(arg); |
121 | } |
122 | } |
123 | } else { |
124 | String fieldName = piece(args[i], '=', 0); |
125 | int position = lookupName(fieldName); |
126 | if (position < 0) { |
127 | - throw new IllegalArgumentException("No such parameter name " + fieldName + " in argument " + arg); |
128 | + _unparsed.add(args[i]); |
129 | + } else { |
130 | + String argValue = arg.substring(fieldName.length() + 1); |
131 | + _specified[position] = true; |
132 | + doField(argValue, position); |
133 | } |
134 | - String argValue = arg.substring(fieldName.length() + 1); |
135 | - _specified[position] = true; |
136 | - doField(argValue, position); |
137 | } |
138 | } |
139 | _flags = flags.toString(); |
140 | @@ -162,6 +168,33 @@ |
141 | return sb.toString(); |
142 | } |
143 | |
144 | + public ArgParser strict() { |
145 | + if (!_unparsed.isEmpty()) { |
146 | + throw new IllegalArgumentException("Unrecognized arguments: " + _unparsed); |
147 | + } |
148 | + return this; |
149 | + } |
150 | + |
151 | + /** |
152 | + * Array of arguments that were not parsed by this template. This array may |
153 | + * be passed into another ArgParser for further processing. |
154 | + * |
155 | + * @return array of argument strings |
156 | + */ |
157 | + public String[] getUnparsedArray() { |
158 | + return _unparsed.toArray(new String[_unparsed.size()]); |
159 | + } |
160 | + |
161 | + /** |
162 | + * List of the arguments that were not parsed by this template. The list is |
163 | + * modifiable. |
164 | + * |
165 | + * @return List of argument strings |
166 | + */ |
167 | + public List<String> getUnparsedList() { |
168 | + return _unparsed; |
169 | + } |
170 | + |
171 | /** |
172 | * Display a description of the permissible argument values to |
173 | * {@link java.lang.System#out}. |
174 | |
175 | === added file 'src/test/java/com/persistit/StressRunner.java' |
176 | --- src/test/java/com/persistit/StressRunner.java 1970-01-01 00:00:00 +0000 |
177 | +++ src/test/java/com/persistit/StressRunner.java 2012-06-14 20:28:17 +0000 |
178 | @@ -0,0 +1,144 @@ |
179 | +/** |
180 | + * Copyright © 2012 Akiban Technologies, Inc. All rights reserved. |
181 | + * |
182 | + * This program is free software: you can redistribute it and/or modify |
183 | + * it under the terms of the GNU Affero General Public License as |
184 | + * published by the Free Software Foundation, version 3 (only) of the |
185 | + * License. |
186 | + * |
187 | + * This program is distributed in the hope that it will be useful, |
188 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
189 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
190 | + * GNU Affero General Public License for more details. |
191 | + * |
192 | + * You should have received a copy of the GNU Affero General Public License |
193 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
194 | + * |
195 | + * This program may also be available under different license terms. For more |
196 | + * information, see www.akiban.com or contact licensing@akiban.com. |
197 | + */ |
198 | + |
199 | +package com.persistit; |
200 | + |
201 | +import java.io.FileWriter; |
202 | +import java.io.PrintWriter; |
203 | +import java.text.SimpleDateFormat; |
204 | +import java.util.ArrayList; |
205 | +import java.util.Date; |
206 | +import java.util.List; |
207 | +import java.util.regex.Pattern; |
208 | + |
209 | +import com.persistit.stress.AbstractSuite; |
210 | +import com.persistit.stress.InsertUUIDs; |
211 | +import com.persistit.stress.Mixture1; |
212 | +import com.persistit.stress.Mixture2; |
213 | +import com.persistit.stress.Mixture3; |
214 | +import com.persistit.stress.MixtureTxn1; |
215 | +import com.persistit.stress.MixtureTxn2; |
216 | +import com.persistit.stress.PersistitMap1; |
217 | +import com.persistit.stress.StartStop; |
218 | +import com.persistit.stress.Stress10Suite; |
219 | +import com.persistit.stress.Stress12txnSuite; |
220 | +import com.persistit.stress.Stress4Suite; |
221 | +import com.persistit.stress.Stress8txnSuite; |
222 | +import com.persistit.util.ArgParser; |
223 | + |
224 | +/** |
225 | + * Runs the stress test suites defined in the _classes list below. Arguments: |
226 | + * |
227 | + * <dl> |
228 | + * <dt>tests=testname,test*pattern</dt> |
229 | + * <dd>Comma-separated list of test class names; allows "*" and "?" as wildcards</dd> |
230 | + * <dt>duration=nnn</dt> |
231 | + * <dd>Duration of the entire run, in seconds. This number is divided by the |
232 | + * number of classes to determine the duration of each suite</dd> |
233 | + * <dt>datapath=/xxx/yyy/zzz</dt> |
234 | + * <dd>Directory path (no trailing '/') where Persistit will write journal and |
235 | + * volume files.</dd> |
236 | + * <dt>report=/xxx/yyy/zzz/reportname</dt> |
237 | + * <dd>Path to file in which summary report will be written</dd> |
238 | + * </dl> |
239 | + * |
240 | + * @author peter |
241 | + * |
242 | + */ |
243 | +public class StressRunner { |
244 | + |
245 | + private final static String[] ARGS_TEMPLATE = { |
246 | + "duration|int::10|Maximum duration in seconds", |
247 | + "_flag|S|Save on failure", |
248 | + "report|String:StressRunner_" + String.format("%1$tY%1$tm%1$td%1$tH%1$tM%1$tS", System.currentTimeMillis()), |
249 | + "tests|String:*|List of comma-separated patterns" }; |
250 | + |
251 | + private static List<Class<? extends AbstractSuite>> _classes = new ArrayList<Class<? extends AbstractSuite>>(); |
252 | + static { |
253 | + _classes.add(InsertUUIDs.class); |
254 | + _classes.add(Mixture1.class); |
255 | + _classes.add(Mixture2.class); |
256 | + _classes.add(Mixture3.class); |
257 | + _classes.add(MixtureTxn1.class); |
258 | + _classes.add(MixtureTxn2.class); |
259 | + _classes.add(PersistitMap1.class); |
260 | + _classes.add(StartStop.class); |
261 | + _classes.add(Stress10Suite.class); |
262 | + _classes.add(Stress12txnSuite.class); |
263 | + _classes.add(Stress4Suite.class); |
264 | + _classes.add(Stress8txnSuite.class); |
265 | + } |
266 | + |
267 | + private final static String DURATION_PARAM = "duration="; |
268 | + |
269 | + public static void main(final String[] args) throws Exception { |
270 | + |
271 | + ArgParser ap = new ArgParser(StressRunner.class.getSimpleName(), args, ARGS_TEMPLATE); |
272 | + |
273 | + List<Class<? extends AbstractSuite>> classes = new ArrayList<Class<? extends AbstractSuite>>(); |
274 | + for (final String s : ap.getStringValue("tests").split(",")) { |
275 | + String regex = s.replace("*", ".*").replace("?", "."); |
276 | + Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); |
277 | + for (final Class<? extends AbstractSuite> cl : _classes) { |
278 | + if (pattern.matcher(cl.getSimpleName()).matches()) { |
279 | + classes.add(cl); |
280 | + } |
281 | + } |
282 | + } |
283 | + if (classes.isEmpty()) { |
284 | + System.out.println("No tests specified: " + ap.getStringValue("tests")); |
285 | + System.exit(1); |
286 | + } |
287 | + |
288 | + int duration = ap.getIntValue("duration") / classes.size(); |
289 | + PrintWriter pw = new PrintWriter(new FileWriter(ap.getStringValue("report"))); |
290 | + int failed = 0; |
291 | + |
292 | + for (final Class<? extends AbstractSuite> clazz : classes) { |
293 | + List<String> suiteArgs = ap.getUnparsedList(); |
294 | + if (ap.isSpecified("duration")) { |
295 | + suiteArgs.add(DURATION_PARAM + duration); |
296 | + } |
297 | + AbstractSuite suite = clazz.getConstructor(args.getClass()).newInstance( |
298 | + new Object[] { suiteArgs.toArray(new String[suiteArgs.size()]) }); |
299 | + |
300 | + System.out.printf("\nStart %s at %s\n--------------------------------------------------------\n", suite |
301 | + .getName(), now()); |
302 | + suite.runTest(); |
303 | + System.out.printf("\n--------------------------------------------------------\n End %s at %s\n", suite |
304 | + .getName(), now()); |
305 | + pw.printf("%s,%s,%d\n", suite.getName(), suite.isFailed() ? "FAILED" : "PASSED", suite.getRate()); |
306 | + pw.flush(); |
307 | + if (suite.isFailed()) { |
308 | + failed++; |
309 | + } |
310 | + } |
311 | + pw.close(); |
312 | + |
313 | + // If there were errors, leave a non-zero status code for framework |
314 | + if (failed > 0) { |
315 | + System.exit(1); |
316 | + } |
317 | + } |
318 | + |
319 | + private static String now() { |
320 | + return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()); |
321 | + } |
322 | +} |
323 | |
324 | === modified file 'src/test/java/com/persistit/stress/AbstractStressTest.java' |
325 | --- src/test/java/com/persistit/stress/AbstractStressTest.java 2012-06-12 14:36:36 +0000 |
326 | +++ src/test/java/com/persistit/stress/AbstractStressTest.java 2012-06-14 20:28:17 +0000 |
327 | @@ -47,6 +47,7 @@ |
328 | protected String[] _args; |
329 | protected int _threadIndex; |
330 | protected boolean _verbose; |
331 | + protected String _threadName; |
332 | |
333 | private volatile long _totalWorkDone; |
334 | |
335 | @@ -68,6 +69,7 @@ |
336 | } else { |
337 | _args = argsString.split(" "); |
338 | } |
339 | + _threadName = Thread.currentThread().getName(); |
340 | } |
341 | |
342 | void initialize(final int index) { |
343 | @@ -186,7 +188,7 @@ |
344 | } |
345 | |
346 | public String getThreadName() { |
347 | - return Thread.currentThread().getName(); |
348 | + return _threadName; |
349 | } |
350 | |
351 | public void setUntilStopped(final boolean untilStopped) { |
352 | |
353 | === modified file 'src/test/java/com/persistit/stress/AbstractSuite.java' |
354 | --- src/test/java/com/persistit/stress/AbstractSuite.java 2012-06-11 19:45:14 +0000 |
355 | +++ src/test/java/com/persistit/stress/AbstractSuite.java 2012-06-14 20:28:17 +0000 |
356 | @@ -21,6 +21,9 @@ |
357 | package com.persistit.stress; |
358 | |
359 | import java.io.File; |
360 | +import java.io.FileWriter; |
361 | +import java.io.IOException; |
362 | +import java.io.PrintWriter; |
363 | import java.text.SimpleDateFormat; |
364 | import java.util.ArrayList; |
365 | import java.util.Date; |
366 | @@ -34,13 +37,13 @@ |
367 | import com.persistit.exception.PersistitException; |
368 | import com.persistit.util.ArgParser; |
369 | |
370 | -public class AbstractSuite { |
371 | +public abstract class AbstractSuite { |
372 | |
373 | private final static SimpleDateFormat SDF = new SimpleDateFormat("yyyyMMddHHmm"); |
374 | |
375 | private final static String[] ARGS_TEMPLATE = { "duration|int::10|Maximum duration in seconds", |
376 | "datapath|String:/tmp/persistit_test_data|Data path", |
377 | - "progress|int:60:1:|Progress message interval in seconds", }; |
378 | + "progress|int:60:1:|Progress message interval in seconds", "_flag|S|Save on failure", }; |
379 | |
380 | protected final static long PROGRESS_LOG_INTERVAL = 600000; |
381 | |
382 | @@ -57,18 +60,23 @@ |
383 | final private String _logPath; |
384 | final private String _dataPath; |
385 | final private long _progressLogInterval; |
386 | + final private boolean _saveOnFailure; |
387 | + |
388 | private long _duration; |
389 | private boolean _untilStopped; |
390 | + private long _elapsed; |
391 | + private boolean _failed; |
392 | |
393 | String _timeStamp = SDF.format(new Date()); |
394 | |
395 | protected AbstractSuite(final String name, final String[] args) { |
396 | _name = name; |
397 | - final ArgParser ap = new ArgParser("RunnerBase", args, ARGS_TEMPLATE); |
398 | + final ArgParser ap = new ArgParser(getClass().getSimpleName(), args, ARGS_TEMPLATE); |
399 | _logPath = _dataPath = ap.getStringValue("datapath"); |
400 | _duration = ap.getLongValue("duration"); |
401 | _progressLogInterval = ap.getLongValue("progress"); |
402 | _untilStopped = ap.isSpecified("duration"); |
403 | + _saveOnFailure = ap.isFlag('S'); |
404 | } |
405 | |
406 | public String getName() { |
407 | @@ -83,6 +91,14 @@ |
408 | _duration = duration; |
409 | } |
410 | |
411 | + public long getRate() { |
412 | + return _elapsed > 0 ? _accumulatedWork / _elapsed : 0; |
413 | + } |
414 | + |
415 | + public boolean isFailed() { |
416 | + return _failed; |
417 | + } |
418 | + |
419 | public boolean isUntilStopped() { |
420 | return _untilStopped; |
421 | } |
422 | @@ -106,6 +122,8 @@ |
423 | _accumulatedWork = 0; |
424 | } |
425 | |
426 | + public abstract void runTest() throws Exception; |
427 | + |
428 | protected void execute(final Persistit persistit) { |
429 | try { |
430 | int index = 0; |
431 | @@ -141,18 +159,21 @@ |
432 | thread.join(MS_PER_S); |
433 | } |
434 | |
435 | - boolean failed = false; |
436 | + _failed = false; |
437 | long work = 0; |
438 | for (AbstractStressTest test : _tests) { |
439 | if (test.isFailed()) { |
440 | - failed = true; |
441 | + _failed = true; |
442 | } |
443 | work += test.getTotalWorkDone(); |
444 | } |
445 | - long elapsed = (System.nanoTime() - start) / NS_PER_S; |
446 | - System.out.printf("\n---Result %s: %s work=%,d time=%,d rate=%,d ---\n", this._name, failed ? "FAILED" |
447 | - : "PASSED", work, elapsed, elapsed > 0 ? work / elapsed : 0); |
448 | + _elapsed = (System.nanoTime() - start) / NS_PER_S; |
449 | + System.out.printf("\n---Result %s: %s work=%,d time=%,d rate=%,d ---\n", this._name, _failed ? "FAILED" |
450 | + : "PASSED", work, _elapsed, _elapsed > 0 ? work / _elapsed : 0); |
451 | |
452 | + if (_failed && _saveOnFailure) { |
453 | + saveOnFailure(); |
454 | + } |
455 | } catch (Exception e) { |
456 | throw new RuntimeException(e); |
457 | } |
458 | @@ -186,8 +207,8 @@ |
459 | rate = (work * NS_PER_MS * MS_PER_S) / elapsed; |
460 | } |
461 | System.out.printf("%s at %,9d seconds: live=%,5d ended=%,5d stopped = %,5d, failed=%,5d " |
462 | - + "totalwork=%,12d intervalwork=%,12d workrate=%,12d\n", _name, elapsed / NS_PER_S, |
463 | - live, ended, stopped, failed, work, work - _accumulatedWork, rate); |
464 | + + "totalwork=%,12d intervalwork=%,12d workrate=%,12d\n", _name, elapsed / NS_PER_S, live, ended, |
465 | + stopped, failed, work, work - _accumulatedWork, rate); |
466 | _accumulatedWork = work; |
467 | } |
468 | |
469 | @@ -225,7 +246,8 @@ |
470 | if (file.isDirectory()) { |
471 | final File[] files = file.listFiles(); |
472 | for (final File child : files) { |
473 | - if (child.getPath().startsWith(pattern.substring(0, pattern.length() - 1))) { |
474 | + if (child.getPath().startsWith(pattern.substring(0, pattern.length() - 1)) |
475 | + && !child.getName().startsWith("_failed")) { |
476 | child.delete(); |
477 | System.out.println("deleted " + child.toString()); |
478 | } |
479 | @@ -238,6 +260,28 @@ |
480 | } |
481 | } |
482 | |
483 | + protected void saveOnFailure() throws IOException { |
484 | + File dir = new File(_dataPath); |
485 | + File moveTo = new File(dir, String.format("_failed_%s_%2$tY%2$tm%2$td%2$tH%2$tM%2$tS", getName(), System |
486 | + .currentTimeMillis())); |
487 | + moveTo.mkdirs(); |
488 | + |
489 | + final File[] files = dir.listFiles(); |
490 | + for (final File child : files) { |
491 | + if (!child.isDirectory()) { |
492 | + File to = new File(moveTo, child.getName()); |
493 | + boolean moved = child.renameTo(to); |
494 | + System.out.printf("%s %s to %s\n", moved ? "moved" : "failed to move", child, to); |
495 | + } |
496 | + } |
497 | + |
498 | + PrintWriter pw = new PrintWriter(new FileWriter(new File(moveTo, "results"))); |
499 | + for (final AbstractStressTest test : _tests) { |
500 | + pw.printf("%s [%s] %s \n\n", test.getTestName(), test.getThreadName(), test.getResult()); |
501 | + } |
502 | + pw.close(); |
503 | + } |
504 | + |
505 | protected Persistit makePersistit(final int pageSize, final String mem, final CommitPolicy policy) |
506 | throws PersistitException { |
507 | final Persistit persistit = new Persistit(); |
508 | |
509 | === modified file 'src/test/java/com/persistit/stress/InsertUUIDs.java' |
510 | --- src/test/java/com/persistit/stress/InsertUUIDs.java 2012-06-11 17:56:04 +0000 |
511 | +++ src/test/java/com/persistit/stress/InsertUUIDs.java 2012-06-14 20:28:17 +0000 |
512 | @@ -34,7 +34,7 @@ |
513 | new InsertUUIDs(args).runTest(); |
514 | } |
515 | |
516 | - private InsertUUIDs(final String[] args) { |
517 | + public InsertUUIDs(final String[] args) { |
518 | super(name(), args); |
519 | } |
520 | |
521 | |
522 | === added file 'src/test/java/com/persistit/stress/IntentionalFailure.java' |
523 | --- src/test/java/com/persistit/stress/IntentionalFailure.java 1970-01-01 00:00:00 +0000 |
524 | +++ src/test/java/com/persistit/stress/IntentionalFailure.java 2012-06-14 20:28:17 +0000 |
525 | @@ -0,0 +1,67 @@ |
526 | +/** |
527 | + * Copyright © 2012 Akiban Technologies, Inc. All rights reserved. |
528 | + * |
529 | + * This program is free software: you can redistribute it and/or modify |
530 | + * it under the terms of the GNU Affero General Public License as |
531 | + * published by the Free Software Foundation, version 3 (only) of the |
532 | + * License. |
533 | + * |
534 | + * This program is distributed in the hope that it will be useful, |
535 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
536 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
537 | + * GNU Affero General Public License for more details. |
538 | + * |
539 | + * You should have received a copy of the GNU Affero General Public License |
540 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
541 | + * |
542 | + * This program may also be available under different license terms. For more |
543 | + * information, see www.akiban.com or contact licensing@akiban.com. |
544 | + */ |
545 | + |
546 | +package com.persistit.stress; |
547 | + |
548 | +import com.persistit.Persistit; |
549 | +import com.persistit.Transaction.CommitPolicy; |
550 | + |
551 | +public class IntentionalFailure extends AbstractSuite { |
552 | + |
553 | + static String name() { |
554 | + return IntentionalFailure.class.getSimpleName(); |
555 | + } |
556 | + |
557 | + public static void main(String[] args) throws Exception { |
558 | + new IntentionalFailure(args).runTest(); |
559 | + } |
560 | + |
561 | + public IntentionalFailure(final String[] args) { |
562 | + super(name(), args); |
563 | + } |
564 | + |
565 | + public void runTest() throws Exception { |
566 | + |
567 | + deleteFiles(substitute("$datapath$/persistit*")); |
568 | + |
569 | + add(new Fail(null)); |
570 | + |
571 | + final Persistit persistit = makePersistit(16384, "1000", CommitPolicy.SOFT); |
572 | + |
573 | + try { |
574 | + execute(persistit); |
575 | + } finally { |
576 | + persistit.close(); |
577 | + } |
578 | + } |
579 | + |
580 | + class Fail extends AbstractStressTest { |
581 | + |
582 | + protected Fail(String argsString) { |
583 | + super(argsString); |
584 | + } |
585 | + |
586 | + @Override |
587 | + protected void executeTest() throws Exception { |
588 | + throw new RuntimeException("Intentional Failure"); |
589 | + } |
590 | + |
591 | + } |
592 | +} |
593 | |
594 | === modified file 'src/test/java/com/persistit/stress/Mixture1.java' |
595 | --- src/test/java/com/persistit/stress/Mixture1.java 2012-06-11 19:45:14 +0000 |
596 | +++ src/test/java/com/persistit/stress/Mixture1.java 2012-06-14 20:28:17 +0000 |
597 | @@ -39,7 +39,7 @@ |
598 | new Mixture1(args).runTest(); |
599 | } |
600 | |
601 | - private Mixture1(final String[] args) { |
602 | + public Mixture1(final String[] args) { |
603 | super(name(), args); |
604 | } |
605 | |
606 | |
607 | === modified file 'src/test/java/com/persistit/stress/Mixture2.java' |
608 | --- src/test/java/com/persistit/stress/Mixture2.java 2012-06-11 19:45:14 +0000 |
609 | +++ src/test/java/com/persistit/stress/Mixture2.java 2012-06-14 20:28:17 +0000 |
610 | @@ -38,7 +38,7 @@ |
611 | new Mixture2(args).runTest(); |
612 | } |
613 | |
614 | - private Mixture2(final String[] args) { |
615 | + public Mixture2(final String[] args) { |
616 | super(name(), args); |
617 | } |
618 | |
619 | |
620 | === modified file 'src/test/java/com/persistit/stress/Mixture3.java' |
621 | --- src/test/java/com/persistit/stress/Mixture3.java 2012-06-11 19:45:14 +0000 |
622 | +++ src/test/java/com/persistit/stress/Mixture3.java 2012-06-14 20:28:17 +0000 |
623 | @@ -39,7 +39,7 @@ |
624 | new Mixture3(args).runTest(); |
625 | } |
626 | |
627 | - private Mixture3(final String[] args) { |
628 | + public Mixture3(final String[] args) { |
629 | super(name(), args); |
630 | } |
631 | |
632 | |
633 | === modified file 'src/test/java/com/persistit/stress/MixtureTxn1.java' |
634 | --- src/test/java/com/persistit/stress/MixtureTxn1.java 2012-06-11 19:45:14 +0000 |
635 | +++ src/test/java/com/persistit/stress/MixtureTxn1.java 2012-06-14 20:28:17 +0000 |
636 | @@ -40,10 +40,11 @@ |
637 | new MixtureTxn1(args).runTest(); |
638 | } |
639 | |
640 | - private MixtureTxn1(final String[] args) { |
641 | + public MixtureTxn1(final String[] args) { |
642 | super(name(), args); |
643 | } |
644 | |
645 | + @Override |
646 | public void runTest() throws Exception { |
647 | |
648 | deleteFiles(substitute("$datapath$/persistit*")); |
649 | |
650 | === added file 'src/test/java/com/persistit/stress/MixtureTxn2.java' |
651 | --- src/test/java/com/persistit/stress/MixtureTxn2.java 1970-01-01 00:00:00 +0000 |
652 | +++ src/test/java/com/persistit/stress/MixtureTxn2.java 2012-06-14 20:28:17 +0000 |
653 | @@ -0,0 +1,72 @@ |
654 | +/** |
655 | + * Copyright © 2012 Akiban Technologies, Inc. All rights reserved. |
656 | + * |
657 | + * This program is free software: you can redistribute it and/or modify |
658 | + * it under the terms of the GNU Affero General Public License as |
659 | + * published by the Free Software Foundation, version 3 (only) of the |
660 | + * License. |
661 | + * |
662 | + * This program is distributed in the hope that it will be useful, |
663 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
664 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
665 | + * GNU Affero General Public License for more details. |
666 | + * |
667 | + * You should have received a copy of the GNU Affero General Public License |
668 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
669 | + * |
670 | + * This program may also be available under different license terms. For more |
671 | + * information, see www.akiban.com or contact licensing@akiban.com. |
672 | + */ |
673 | + |
674 | +package com.persistit.stress; |
675 | + |
676 | +import com.persistit.Persistit; |
677 | +import com.persistit.Transaction.CommitPolicy; |
678 | +import com.persistit.stress.unit.Stress1; |
679 | +import com.persistit.stress.unit.Stress2txn; |
680 | +import com.persistit.stress.unit.Stress3; |
681 | +import com.persistit.stress.unit.Stress3txn; |
682 | +import com.persistit.stress.unit.Stress5; |
683 | +import com.persistit.stress.unit.Stress6; |
684 | +import com.persistit.stress.unit.Stress8txn; |
685 | + |
686 | +public class MixtureTxn2 extends AbstractSuite { |
687 | + |
688 | + static String name() { |
689 | + return MixtureTxn2.class.getSimpleName(); |
690 | + } |
691 | + |
692 | + public static void main(String[] args) throws Exception { |
693 | + new MixtureTxn2(args).runTest(); |
694 | + } |
695 | + |
696 | + public MixtureTxn2(final String[] args) { |
697 | + super(name(), args); |
698 | + } |
699 | + |
700 | + public void runTest() throws Exception { |
701 | + |
702 | + deleteFiles(substitute("$datapath$/persistit*")); |
703 | + |
704 | + add(new Stress1("repeat=10 count=25000")); |
705 | + add(new Stress1("repeat=10 count=25000")); |
706 | + add(new Stress3("repeat=5 count=25000 seed=119")); |
707 | + add(new Stress5("repeat=5 count=25000")); |
708 | + add(new Stress6("repeat=5 count=1000 size=250")); |
709 | + add(new Stress6("repeat=10 count=1000 size=250")); |
710 | + |
711 | + for (int i = 0; i < 10; i++) { |
712 | + add(new Stress2txn("repeat=10 count=2500 size=4000 seed=1" + i)); |
713 | + add(new Stress3txn("repeat=5 count=25000 seed=2" + i)); |
714 | + add(new Stress8txn("repeat=10 count=1000 size=1000 seed=3" + i)); |
715 | + } |
716 | + |
717 | + final Persistit persistit = makePersistit(16384, "10000", CommitPolicy.SOFT); |
718 | + |
719 | + try { |
720 | + execute(persistit); |
721 | + } finally { |
722 | + persistit.close(); |
723 | + } |
724 | + } |
725 | +} |
726 | |
727 | === modified file 'src/test/java/com/persistit/stress/PersistitMap1.java' |
728 | --- src/test/java/com/persistit/stress/PersistitMap1.java 2012-06-11 19:45:14 +0000 |
729 | +++ src/test/java/com/persistit/stress/PersistitMap1.java 2012-06-14 20:28:17 +0000 |
730 | @@ -34,7 +34,7 @@ |
731 | new PersistitMap1(args).runTest(); |
732 | } |
733 | |
734 | - private PersistitMap1(final String[] args) { |
735 | + public PersistitMap1(final String[] args) { |
736 | super(name(), args); |
737 | } |
738 | |
739 | |
740 | === modified file 'src/test/java/com/persistit/stress/Recovery1.java' |
741 | --- src/test/java/com/persistit/stress/Recovery1.java 2012-06-11 19:45:14 +0000 |
742 | +++ src/test/java/com/persistit/stress/Recovery1.java 2012-06-14 20:28:17 +0000 |
743 | @@ -34,7 +34,7 @@ |
744 | new Recovery1(args).runTest(); |
745 | } |
746 | |
747 | - private Recovery1(final String[] args) { |
748 | + public Recovery1(final String[] args) { |
749 | super(name(), args); |
750 | } |
751 | |
752 | |
753 | === modified file 'src/test/java/com/persistit/stress/Recovery2.java' |
754 | --- src/test/java/com/persistit/stress/Recovery2.java 2012-06-11 19:45:14 +0000 |
755 | +++ src/test/java/com/persistit/stress/Recovery2.java 2012-06-14 20:28:17 +0000 |
756 | @@ -34,7 +34,7 @@ |
757 | new Recovery2(args).runTest(); |
758 | } |
759 | |
760 | - private Recovery2(final String[] args) { |
761 | + public Recovery2(final String[] args) { |
762 | super(name(), args); |
763 | } |
764 | |
765 | |
766 | === modified file 'src/test/java/com/persistit/stress/Recovery2_StdIn.java' |
767 | --- src/test/java/com/persistit/stress/Recovery2_StdIn.java 2012-06-11 19:45:14 +0000 |
768 | +++ src/test/java/com/persistit/stress/Recovery2_StdIn.java 2012-06-14 20:28:17 +0000 |
769 | @@ -34,7 +34,7 @@ |
770 | new Recovery2_StdIn(args).runTest(); |
771 | } |
772 | |
773 | - private Recovery2_StdIn(final String[] args) { |
774 | + public Recovery2_StdIn(final String[] args) { |
775 | super(name(), args); |
776 | } |
777 | |
778 | |
779 | === modified file 'src/test/java/com/persistit/stress/StartStop.java' |
780 | --- src/test/java/com/persistit/stress/StartStop.java 2012-06-11 19:45:14 +0000 |
781 | +++ src/test/java/com/persistit/stress/StartStop.java 2012-06-14 20:28:17 +0000 |
782 | @@ -35,7 +35,7 @@ |
783 | new StartStop(args).runTest(); |
784 | } |
785 | |
786 | - private StartStop(final String[] args) { |
787 | + public StartStop(final String[] args) { |
788 | super(name(), args); |
789 | } |
790 | |
791 | |
792 | === modified file 'src/test/java/com/persistit/stress/Stress10Suite.java' |
793 | --- src/test/java/com/persistit/stress/Stress10Suite.java 2012-06-11 19:45:14 +0000 |
794 | +++ src/test/java/com/persistit/stress/Stress10Suite.java 2012-06-14 20:28:17 +0000 |
795 | @@ -34,7 +34,7 @@ |
796 | new Stress10Suite(args).runTest(); |
797 | } |
798 | |
799 | - private Stress10Suite(final String[] args) { |
800 | + public Stress10Suite(final String[] args) { |
801 | super(name(), args); |
802 | } |
803 | |
804 | |
805 | === modified file 'src/test/java/com/persistit/stress/Stress12txnSuite.java' |
806 | --- src/test/java/com/persistit/stress/Stress12txnSuite.java 2012-06-11 19:45:14 +0000 |
807 | +++ src/test/java/com/persistit/stress/Stress12txnSuite.java 2012-06-14 20:28:17 +0000 |
808 | @@ -34,7 +34,7 @@ |
809 | new Stress12txnSuite(args).runTest(); |
810 | } |
811 | |
812 | - private Stress12txnSuite(final String[] args) { |
813 | + public Stress12txnSuite(final String[] args) { |
814 | super(name(), args); |
815 | } |
816 | |
817 | |
818 | === modified file 'src/test/java/com/persistit/stress/Stress4Suite.java' |
819 | --- src/test/java/com/persistit/stress/Stress4Suite.java 2012-06-11 19:45:14 +0000 |
820 | +++ src/test/java/com/persistit/stress/Stress4Suite.java 2012-06-14 20:28:17 +0000 |
821 | @@ -35,7 +35,7 @@ |
822 | new Stress4Suite(args).runTest(); |
823 | } |
824 | |
825 | - private Stress4Suite(final String[] args) { |
826 | + public Stress4Suite(final String[] args) { |
827 | super(name(), args); |
828 | } |
829 | |
830 | |
831 | === modified file 'src/test/java/com/persistit/stress/Stress8txnSuite.java' |
832 | --- src/test/java/com/persistit/stress/Stress8txnSuite.java 2012-06-11 19:45:14 +0000 |
833 | +++ src/test/java/com/persistit/stress/Stress8txnSuite.java 2012-06-14 20:28:17 +0000 |
834 | @@ -34,7 +34,7 @@ |
835 | new Stress8txnSuite(args).runTest(); |
836 | } |
837 | |
838 | - private Stress8txnSuite(final String[] args) { |
839 | + public Stress8txnSuite(final String[] args) { |
840 | super(name(), args); |
841 | } |
842 | |
843 | |
844 | === modified file 'src/test/java/com/persistit/stress/unit/PersistitMapStress1.java' |
845 | --- src/test/java/com/persistit/stress/unit/PersistitMapStress1.java 2012-06-11 19:45:14 +0000 |
846 | +++ src/test/java/com/persistit/stress/unit/PersistitMapStress1.java 2012-06-14 20:28:17 +0000 |
847 | @@ -55,7 +55,7 @@ |
848 | |
849 | @Override |
850 | public void setUp() { |
851 | - _ap = new ArgParser("com.persistit.stress.PersistitMapStress2", _args, ARGS_TEMPLATE); |
852 | + _ap = new ArgParser("com.persistit.stress.PersistitMapStress2", _args, ARGS_TEMPLATE).strict(); |
853 | _splay = _ap.getIntValue("splay"); |
854 | _opflags = _ap.getStringValue("op"); |
855 | _size = _ap.getIntValue("size"); |
856 | @@ -120,7 +120,7 @@ |
857 | break; |
858 | } |
859 | } |
860 | - if (_dm1.size() != _total) { |
861 | + if (_dm1.size() != _total && !isStopped()) { |
862 | fail("PersistitMap.size()=" + _dm1.size() + " out of " + _total |
863 | + " repetition=" + _repeat + " in thread=" + _threadIndex); |
864 | break; |
865 | @@ -168,7 +168,7 @@ |
866 | handleThrowable(e); |
867 | } |
868 | } |
869 | - if (_count != _total) { |
870 | + if (_count != _total && !isStopped()) { |
871 | fail("Traverse count=" + _count + " out of " + _total + " repetition=" |
872 | + _repeat + " in thread=" + _threadIndex); |
873 | break; |
874 | @@ -210,7 +210,7 @@ |
875 | handleThrowable(e); |
876 | } |
877 | } |
878 | - if (_count != 0) { |
879 | + if (_count != 0 && !isStopped()) { |
880 | fail("Traverse count=" + _count + " when 0 were expected" |
881 | + " repetition=" + _repeat + " in thread=" + _threadIndex); |
882 | break; |
883 | @@ -239,7 +239,7 @@ |
884 | handleThrowable(e); |
885 | } |
886 | } |
887 | - if (_dm1.size() != 0) { |
888 | + if (_dm1.size() != 0 && !isStopped()) { |
889 | fail("PersistitMap.size()= " + _dm1.size() + " when 0 were expected" |
890 | + " repetition=" + _repeat + " in thread=" + _threadIndex); |
891 | break; |
892 | |
893 | === modified file 'src/test/java/com/persistit/stress/unit/PersistitMapStress2.java' |
894 | --- src/test/java/com/persistit/stress/unit/PersistitMapStress2.java 2012-06-11 19:45:14 +0000 |
895 | +++ src/test/java/com/persistit/stress/unit/PersistitMapStress2.java 2012-06-14 20:28:17 +0000 |
896 | @@ -55,7 +55,7 @@ |
897 | |
898 | @Override |
899 | public void setUp() { |
900 | - _ap = new ArgParser("com.persistit.stress.PersistitMapStress2", _args, ARGS_TEMPLATE); |
901 | + _ap = new ArgParser("com.persistit.stress.PersistitMapStress2", _args, ARGS_TEMPLATE).strict(); |
902 | _splay = _ap.getIntValue("splay"); |
903 | _opflags = _ap.getStringValue("op"); |
904 | _size = _ap.getIntValue("size"); |
905 | |
906 | === modified file 'src/test/java/com/persistit/stress/unit/Stress1.java' |
907 | --- src/test/java/com/persistit/stress/unit/Stress1.java 2012-06-12 14:36:36 +0000 |
908 | +++ src/test/java/com/persistit/stress/unit/Stress1.java 2012-06-14 20:28:17 +0000 |
909 | @@ -42,7 +42,7 @@ |
910 | @Override |
911 | public void setUp() throws Exception { |
912 | super.setUp(); |
913 | - _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE); |
914 | + _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE).strict(); |
915 | _splay = _ap.getIntValue("splay"); |
916 | _opflags = _ap.getStringValue("op"); |
917 | _size = _ap.getIntValue("size"); |
918 | |
919 | === modified file 'src/test/java/com/persistit/stress/unit/Stress10.java' |
920 | --- src/test/java/com/persistit/stress/unit/Stress10.java 2012-06-11 19:45:14 +0000 |
921 | +++ src/test/java/com/persistit/stress/unit/Stress10.java 2012-06-14 20:28:17 +0000 |
922 | @@ -43,7 +43,7 @@ |
923 | @Override |
924 | public void setUp() throws Exception { |
925 | super.setUp(); |
926 | - _ap = new ArgParser("com.persistit.Stress10", _args, ARGS_TEMPLATE); |
927 | + _ap = new ArgParser("com.persistit.Stress10", _args, ARGS_TEMPLATE).strict(); |
928 | _opflags = _ap.getStringValue("op"); |
929 | _size = _ap.getIntValue("size"); |
930 | _seed = _ap.getIntValue("seed"); |
931 | |
932 | === modified file 'src/test/java/com/persistit/stress/unit/Stress11.java' |
933 | --- src/test/java/com/persistit/stress/unit/Stress11.java 2012-06-11 19:45:14 +0000 |
934 | +++ src/test/java/com/persistit/stress/unit/Stress11.java 2012-06-14 20:28:17 +0000 |
935 | @@ -49,7 +49,7 @@ |
936 | @Override |
937 | public void setUp() throws Exception { |
938 | super.setUp(); |
939 | - _ap = new ArgParser("com.persistit.Stress11", _args, ARGS_TEMPLATE); |
940 | + _ap = new ArgParser("com.persistit.Stress11", _args, ARGS_TEMPLATE).strict(); |
941 | _opflags = _ap.getStringValue("op"); |
942 | _size = _ap.getIntValue("size"); |
943 | _seed = _ap.getIntValue("seed"); |
944 | |
945 | === modified file 'src/test/java/com/persistit/stress/unit/Stress12txn.java' |
946 | --- src/test/java/com/persistit/stress/unit/Stress12txn.java 2012-06-11 19:45:14 +0000 |
947 | +++ src/test/java/com/persistit/stress/unit/Stress12txn.java 2012-06-14 20:28:17 +0000 |
948 | @@ -48,7 +48,7 @@ |
949 | @Override |
950 | public void setUp() throws Exception { |
951 | super.setUp(); |
952 | - _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE); |
953 | + _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE).strict(); |
954 | _repeatTotal = _ap.getIntValue("repeat"); |
955 | _total = _ap.getIntValue("count"); |
956 | _size = _ap.getIntValue("size"); |
957 | |
958 | === modified file 'src/test/java/com/persistit/stress/unit/Stress1txn.java' |
959 | --- src/test/java/com/persistit/stress/unit/Stress1txn.java 2012-06-12 14:36:36 +0000 |
960 | +++ src/test/java/com/persistit/stress/unit/Stress1txn.java 2012-06-14 20:28:17 +0000 |
961 | @@ -45,7 +45,7 @@ |
962 | @Override |
963 | public void setUp() throws Exception { |
964 | super.setUp(); |
965 | - _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE); |
966 | + _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE).strict(); |
967 | _splay = _ap.getIntValue("splay"); |
968 | _opflags = _ap.getStringValue("op"); |
969 | _size = _ap.getIntValue("size"); |
970 | |
971 | === modified file 'src/test/java/com/persistit/stress/unit/Stress2.java' |
972 | --- src/test/java/com/persistit/stress/unit/Stress2.java 2012-06-12 14:36:36 +0000 |
973 | +++ src/test/java/com/persistit/stress/unit/Stress2.java 2012-06-14 20:28:17 +0000 |
974 | @@ -43,7 +43,7 @@ |
975 | @Override |
976 | public void setUp() throws Exception { |
977 | super.setUp(); |
978 | - _ap = new ArgParser("com.persistit.Stress2", _args, ARGS_TEMPLATE); |
979 | + _ap = new ArgParser("com.persistit.Stress2", _args, ARGS_TEMPLATE).strict(); |
980 | _splay = _ap.getIntValue("splay"); |
981 | _opflags = _ap.getStringValue("op"); |
982 | _size = _ap.getIntValue("size"); |
983 | |
984 | === modified file 'src/test/java/com/persistit/stress/unit/Stress2txn.java' |
985 | --- src/test/java/com/persistit/stress/unit/Stress2txn.java 2012-06-12 14:36:36 +0000 |
986 | +++ src/test/java/com/persistit/stress/unit/Stress2txn.java 2012-06-14 20:28:17 +0000 |
987 | @@ -49,7 +49,7 @@ |
988 | @Override |
989 | public void setUp() throws Exception { |
990 | super.setUp(); |
991 | - _ap = new ArgParser("com.persistit.Stress2ts", _args, ARGS_TEMPLATE); |
992 | + _ap = new ArgParser("com.persistit.Stress2ts", _args, ARGS_TEMPLATE).strict(); |
993 | _splay = _ap.getIntValue("splay"); |
994 | _opflags = _ap.getStringValue("op"); |
995 | _size = _ap.getIntValue("size"); |
996 | |
997 | === modified file 'src/test/java/com/persistit/stress/unit/Stress3.java' |
998 | --- src/test/java/com/persistit/stress/unit/Stress3.java 2012-06-11 19:45:14 +0000 |
999 | +++ src/test/java/com/persistit/stress/unit/Stress3.java 2012-06-14 20:28:17 +0000 |
1000 | @@ -57,7 +57,7 @@ |
1001 | @Override |
1002 | public void setUp() throws Exception { |
1003 | super.setUp(); |
1004 | - _ap = new ArgParser("com.persistit.Stress3", _args, ARGS_TEMPLATE); |
1005 | + _ap = new ArgParser("com.persistit.Stress3", _args, ARGS_TEMPLATE).strict(); |
1006 | _opflags = _ap.getStringValue("op"); |
1007 | _seed = _ap.getIntValue("seed"); |
1008 | _size = _ap.getIntValue("size"); |
1009 | |
1010 | === modified file 'src/test/java/com/persistit/stress/unit/Stress3txn.java' |
1011 | --- src/test/java/com/persistit/stress/unit/Stress3txn.java 2012-06-11 19:45:14 +0000 |
1012 | +++ src/test/java/com/persistit/stress/unit/Stress3txn.java 2012-06-14 20:28:17 +0000 |
1013 | @@ -57,7 +57,7 @@ |
1014 | @Override |
1015 | public void setUp() throws Exception { |
1016 | super.setUp(); |
1017 | - _ap = new ArgParser("com.persistit.Stress3txn", _args, ARGS_TEMPLATE); |
1018 | + _ap = new ArgParser("com.persistit.Stress3txn", _args, ARGS_TEMPLATE).strict(); |
1019 | _splay = _ap.getIntValue("splay"); |
1020 | _opflags = _ap.getStringValue("op"); |
1021 | _seed = _ap.getIntValue("seed"); |
1022 | |
1023 | === modified file 'src/test/java/com/persistit/stress/unit/Stress4Base.java' |
1024 | --- src/test/java/com/persistit/stress/unit/Stress4Base.java 2012-06-11 16:30:00 +0000 |
1025 | +++ src/test/java/com/persistit/stress/unit/Stress4Base.java 2012-06-14 20:28:17 +0000 |
1026 | @@ -66,7 +66,7 @@ |
1027 | @Override |
1028 | public void setUp() throws Exception { |
1029 | super.setUp(); |
1030 | - _ap = new ArgParser("com.persistit.Stress4", _args, ARGS_TEMPLATE); |
1031 | + _ap = new ArgParser("com.persistit.Stress4", _args, ARGS_TEMPLATE).strict(); |
1032 | _total = _ap.getIntValue("count"); |
1033 | _repeatTotal = _ap.getIntValue("repeat"); |
1034 | _total = _ap.getIntValue("count"); |
1035 | |
1036 | === modified file 'src/test/java/com/persistit/stress/unit/Stress5.java' |
1037 | --- src/test/java/com/persistit/stress/unit/Stress5.java 2012-06-11 19:45:14 +0000 |
1038 | +++ src/test/java/com/persistit/stress/unit/Stress5.java 2012-06-14 20:28:17 +0000 |
1039 | @@ -45,7 +45,7 @@ |
1040 | @Override |
1041 | public void setUp() throws Exception { |
1042 | super.setUp(); |
1043 | - _ap = new ArgParser("com.persistit.Stress5", _args, ARGS_TEMPLATE); |
1044 | + _ap = new ArgParser("com.persistit.Stress5", _args, ARGS_TEMPLATE).strict(); |
1045 | _total = _ap.getIntValue("count"); |
1046 | _repeatTotal = _ap.getIntValue("repeat"); |
1047 | _total = _ap.getIntValue("count"); |
1048 | |
1049 | === modified file 'src/test/java/com/persistit/stress/unit/Stress6.java' |
1050 | --- src/test/java/com/persistit/stress/unit/Stress6.java 2012-06-12 14:36:36 +0000 |
1051 | +++ src/test/java/com/persistit/stress/unit/Stress6.java 2012-06-14 20:28:17 +0000 |
1052 | @@ -48,7 +48,7 @@ |
1053 | @Override |
1054 | public void setUp() throws Exception { |
1055 | super.setUp(); |
1056 | - _ap = new ArgParser("com.persistit.Stress6", _args, ARGS_TEMPLATE); |
1057 | + _ap = new ArgParser("com.persistit.Stress6", _args, ARGS_TEMPLATE).strict(); |
1058 | _total = _ap.getIntValue("count"); |
1059 | _repeatTotal = _ap.getIntValue("repeat"); |
1060 | _size = _ap.getIntValue("size"); |
1061 | |
1062 | === modified file 'src/test/java/com/persistit/stress/unit/Stress7.java' |
1063 | --- src/test/java/com/persistit/stress/unit/Stress7.java 2012-06-11 19:45:14 +0000 |
1064 | +++ src/test/java/com/persistit/stress/unit/Stress7.java 2012-06-14 20:28:17 +0000 |
1065 | @@ -50,7 +50,7 @@ |
1066 | @Override |
1067 | public void setUp() throws Exception { |
1068 | super.setUp(); |
1069 | - _ap = new ArgParser("com.persistit.Stress7", _args, ARGS_TEMPLATE); |
1070 | + _ap = new ArgParser("com.persistit.Stress7", _args, ARGS_TEMPLATE).strict(); |
1071 | _total = _ap.getIntValue("count"); |
1072 | _repeatTotal = _ap.getIntValue("repeat"); |
1073 | _total = _ap.getIntValue("count"); |
1074 | |
1075 | === modified file 'src/test/java/com/persistit/stress/unit/Stress8txn.java' |
1076 | --- src/test/java/com/persistit/stress/unit/Stress8txn.java 2012-06-12 14:36:36 +0000 |
1077 | +++ src/test/java/com/persistit/stress/unit/Stress8txn.java 2012-06-14 20:28:17 +0000 |
1078 | @@ -51,7 +51,7 @@ |
1079 | @Override |
1080 | public void setUp() throws Exception { |
1081 | super.setUp(); |
1082 | - _ap = new ArgParser("com.persistit.Stress8txn", _args, ARGS_TEMPLATE); |
1083 | + _ap = new ArgParser("com.persistit.Stress8txn", _args, ARGS_TEMPLATE).strict(); |
1084 | _total = _ap.getIntValue("count"); |
1085 | _repeatTotal = _ap.getIntValue("repeat"); |
1086 | _size = _ap.getIntValue("size"); |
1087 | |
1088 | === modified file 'src/test/java/com/persistit/stress/unit/Stress9.java' |
1089 | --- src/test/java/com/persistit/stress/unit/Stress9.java 2012-06-12 14:36:36 +0000 |
1090 | +++ src/test/java/com/persistit/stress/unit/Stress9.java 2012-06-14 20:28:17 +0000 |
1091 | @@ -48,7 +48,7 @@ |
1092 | @Override |
1093 | public void setUp() throws Exception { |
1094 | super.setUp(); |
1095 | - _ap = new ArgParser("com.persistit.Stress9", _args, ARGS_TEMPLATE); |
1096 | + _ap = new ArgParser("com.persistit.Stress9", _args, ARGS_TEMPLATE).strict(); |
1097 | _splay = _ap.getIntValue("splay"); |
1098 | _opflags = _ap.getStringValue("op"); |
1099 | _size = _ap.getIntValue("size"); |
1100 | |
1101 | === modified file 'src/test/java/com/persistit/stress/unit/StressInsert.java' |
1102 | --- src/test/java/com/persistit/stress/unit/StressInsert.java 2012-06-12 14:36:36 +0000 |
1103 | +++ src/test/java/com/persistit/stress/unit/StressInsert.java 2012-06-14 20:28:17 +0000 |
1104 | @@ -45,7 +45,7 @@ |
1105 | @Override |
1106 | public void setUp() throws Exception { |
1107 | super.setUp(); |
1108 | - _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE); |
1109 | + _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE).strict(); |
1110 | _splay = _ap.getIntValue("splay"); |
1111 | _opflags = _ap.getStringValue("op"); |
1112 | _size = _ap.getIntValue("size"); |
1113 | |
1114 | === modified file 'src/test/java/com/persistit/stress/unit/StressRecovery.java' |
1115 | --- src/test/java/com/persistit/stress/unit/StressRecovery.java 2012-06-11 19:45:14 +0000 |
1116 | +++ src/test/java/com/persistit/stress/unit/StressRecovery.java 2012-06-14 20:28:17 +0000 |
1117 | @@ -127,7 +127,7 @@ |
1118 | |
1119 | @Override |
1120 | public void setUp() throws Exception { |
1121 | - _ap = new ArgParser("com.persistit.StressRecovery", _args, ARGS_TEMPLATE); |
1122 | + _ap = new ArgParser("com.persistit.StressRecovery", _args, ARGS_TEMPLATE).strict(); |
1123 | _size = _ap.getIntValue("size"); |
1124 | _maxLatency = _ap.getLongValue("latency") * 1000000l; |
1125 | _verifyPath = _ap.getStringValue("verify"); |
1126 | |
1127 | === modified file 'src/test/java/com/persistit/stress/unit/StressUUID.java' |
1128 | --- src/test/java/com/persistit/stress/unit/StressUUID.java 2012-06-11 16:30:00 +0000 |
1129 | +++ src/test/java/com/persistit/stress/unit/StressUUID.java 2012-06-14 20:28:17 +0000 |
1130 | @@ -40,7 +40,7 @@ |
1131 | @Override |
1132 | public void setUp() throws Exception { |
1133 | super.setUp(); |
1134 | - _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE); |
1135 | + _ap = new ArgParser("com.persistit.Stress1", _args, ARGS_TEMPLATE).strict(); |
1136 | _size = _ap.getIntValue("size"); |
1137 | _repeatTotal = _ap.getIntValue("repeat"); |
1138 | _total = _ap.getIntValue("count"); |
Few suggestions to make Jenkins integration easier:
- Configurable result file name
- System.exit(1) if there were any failures
- Take classnames as params that instead of static list. We could then reuse this runner for more variations.
Looks good, though.