Merge pull request #16881 from gottesmm/pr-6188306c9a0a4eca1bb3e0d6656f8592fb7caf24
diff --git a/benchmark/utils/DriverUtils.swift b/benchmark/utils/DriverUtils.swift
index 68d2939..54cc3f2 100644
--- a/benchmark/utils/DriverUtils.swift
+++ b/benchmark/utils/DriverUtils.swift
@@ -93,6 +93,7 @@
case run
case listTests
case fail(String)
+ case help([String])
}
struct TestConfig {
@@ -136,7 +137,7 @@
let validOptions = [
"--iter-scale", "--num-samples", "--num-iters",
"--verbose", "--delim", "--list", "--sleep",
- "--tags", "--skip-tags"
+ "--tags", "--skip-tags", "--help"
]
let maybeBenchArgs: Arguments? = parseArgs(validOptions)
if maybeBenchArgs == nil {
@@ -146,6 +147,10 @@
filters = benchArgs.positionalArgs
+ if benchArgs.optionalArgsMap["--help"] == nil {
+ return .help(validOptions)
+ }
+
if let x = benchArgs.optionalArgsMap["--iter-scale"] {
if x.isEmpty { return .fail("--iter-scale requires a value") }
iterationScale = Int(x)!
@@ -478,6 +483,11 @@
var config = TestConfig()
switch (config.processArguments()) {
+ case let .help(validOptions):
+ print("Valid options:")
+ for v in validOptions {
+ print(" \(v)")
+ }
case let .fail(msg):
// We do this since we need an autoclosure...
fatalError("\(msg)")