   }
   func doABuild(_ message: String,
                 checkDiagnostics: Bool,
+                extraArguments: [String] = [],
                 expectingRemarks texts: [String],
                 whenAutolinking: [String]) throws {
     try doABuild(
       message,
       checkDiagnostics: checkDiagnostics,
+      extraArguments: extraArguments,
       expecting: texts.map {.remark($0)},
       expectingWhenAutolinking: whenAutolinking.map {.remark($0)})
   }
 
   func doABuild(_ message: String,
                 checkDiagnostics: Bool,
+                extraArguments: [String] = [],
                 expecting expectations: [Diagnostic.Message],
                 expectingWhenAutolinking autolinkExpectations: [Diagnostic.Message]) throws {
     print("*** starting build \(message) ***", to: &stderrStream); stderrStream.flush()

      try? driver.run(jobs: jobs)
    }

    if checkDiagnostics {
      try assertDriverDiagnostics(args: args) {driver, verifier in
        verifier.forbidUnexpected(.error, .warning, .note, .remark, .ignored)
        expectations.forEach {verifier.expect($0)}
        if driver.isAutolinkExtractJobNeeded {

    #endif
  }

  // FIXME: Expect failure in Linux in CI just as testIncrementalDiagnostics
  func testAlwaysRebuildDependents() throws {
    #if !os(Linux)
    tryInitial(true)
    tryTouchingMainAlwaysRebuildDependents(true)
    #endif
  }

  func testIncremental() throws {
    try testIncremental(checkDiagnostics: false)
  }
