   var afterRunSleep: Int?
 
   /// The list of tests to run.
-  var tests = [(index: Int, info: BenchmarkInfo)]()
+  var tests = [(index: String, info: BenchmarkInfo)]()
 
   mutating func processArguments() -> TestAction {
     let validOptions = [

          benchmark.tags.isDisjoint(with: _skipTags)
      } else {
        return benchmarkNamesOrIndices.contains(benchmark.name) ||
          benchmarkNamesOrIndices.contains(String(indices[benchmark.name]!))
      }
    }.map { (index: indices[$0.name]!, info: $0) }
  }

  mutating func findTestsToRun() {
    registeredBenchmarks.sort()
    let indices = Dictionary(uniqueKeysWithValues:
      zip(registeredBenchmarks.map{ $0.name },
          (1...).lazy.map { String($0) } ))
    let benchmarkNamesOrIndices = Set(filters)
    // needed so we don't capture an ivar of a mutable inout self.
    let (_tags, _skipTags) = (tags, skipTags)
