Make event plugin FsStoreTest parse options
This paves the way for adding more options, such as thread count, in a
sane way.
Change-Id: I6aaf646760c14a48156d17527be96a6277c4ff39
diff --git a/src/test/java/com/googlesource/gerrit/plugins/events/fsstore/FsStoreTest.java b/src/test/java/com/googlesource/gerrit/plugins/events/fsstore/FsStoreTest.java
index 9306158..31deaed 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/events/fsstore/FsStoreTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/events/fsstore/FsStoreTest.java
@@ -20,6 +20,9 @@
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -215,7 +218,7 @@
* <p>To run type:
*
* <p>java -cp target/classes:target/test-classes:target/junit-4.8.1.jar \
- * com.googlesource.gerrit.plugins.events.fsstore.FsStoreTest \ [dir [count [store-id]]]
+ * com.googlesource.gerrit.plugins.events.fsstore.FsStoreTest [--id store-id] [dir [count]]
*
* <p>Note: if you do not specify <dir>, it will create a directory under /tmp
*
@@ -229,18 +232,30 @@
* <p>Mixed workers: NFS(WAN) 1 worker (+NFS LAN continuous) count=10, 3m28s
*/
public static void main(String[] argv) throws Exception {
- if (argv.length > 0) {
- base = Paths.get(argv[0]);
- }
FsStoreTest t = new FsStoreTest();
- if (argv.length > 1) {
- t.count = Long.parseLong(argv[1]);
+ t.submitMarker = ".";
+
+ List<String> args = new LinkedList<>();
+ for (String arg : argv) {
+ args.add(arg);
}
- t.submitMarker = ".";
- if (argv.length > 2) {
- t.id = argv[2];
- t.submitMarker += t.id + ".";
+ for (Iterator<String> it = args.iterator(); it.hasNext(); ) {
+ String arg = it.next();
+ if ("--id".equals(arg) && it.hasNext()) {
+ it.remove();
+ t.id = it.next();
+ it.remove();
+ t.submitMarker += t.id + ".";
+ }
+ }
+
+ if (args.size() > 0) {
+ base = Paths.get(args.remove(0));
+ }
+
+ if (args.size() > 0) {
+ t.count = Long.parseLong(args.remove(0));
}
t.setUp();