@@ -93,6 +93,7 @@ enum TestAction {
93
93
case run
94
94
case listTests
95
95
case fail( String )
96
+ case help( [ String ] )
96
97
}
97
98
98
99
struct TestConfig {
@@ -136,7 +137,7 @@ struct TestConfig {
136
137
let validOptions = [
137
138
" --iter-scale " , " --num-samples " , " --num-iters " ,
138
139
" --verbose " , " --delim " , " --list " , " --sleep " ,
139
- " --tags " , " --skip-tags "
140
+ " --tags " , " --skip-tags " , " --help "
140
141
]
141
142
let maybeBenchArgs : Arguments ? = parseArgs ( validOptions)
142
143
if maybeBenchArgs == nil {
@@ -146,6 +147,10 @@ struct TestConfig {
146
147
147
148
filters = benchArgs. positionalArgs
148
149
150
+ if benchArgs. optionalArgsMap [ " --help " ] == nil {
151
+ return . help( validOptions)
152
+ }
153
+
149
154
if let x = benchArgs. optionalArgsMap [ " --iter-scale " ] {
150
155
if x. isEmpty { return . fail( " --iter-scale requires a value " ) }
151
156
iterationScale = Int ( x) !
@@ -478,6 +483,11 @@ public func main() {
478
483
var config = TestConfig ( )
479
484
480
485
switch ( config. processArguments ( ) ) {
486
+ case let . help( validOptions) :
487
+ print ( " Valid options: " )
488
+ for v in validOptions {
489
+ print ( " \( v) " )
490
+ }
481
491
case let . fail( msg) :
482
492
// We do this since we need an autoclosure...
483
493
fatalError ( " \( msg) " )
0 commit comments