Merge lp:~pbeaman/akiban-persistit/fix_nightly_stress_tests into lp:akiban-persistit

Proposed by Peter Beaman
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
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+110148@code.launchpad.net

Description of the change

Add support for running a sequence of suites. Add support for saving failure information". Preparation for reinstantiating Jenkins job.

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

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.

review: Needs Fixing
325. By Peter Beaman

Changes to permit list of tests, report name

Revision history for this message
Peter Beaman (pbeaman) wrote :

Good suggestions. Did a bit more rework.

com.persistit.stress.Nightly was originally intended as a specific script for a nightly Jenkins run. Renamed to com.persistit.StressRunner. Changes:

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

Revision history for this message
Nathan Williams (nwilliams) wrote :

Great!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
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");

Subscribers

People subscribed via source and target branches