From ffb090a604bde1ebcc5bcfe32a250e0d9b06a989 Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Mon, 13 Jul 2026 18:08:30 +0900 Subject: [PATCH] Add native client startup diagnostics regression test --- .../src/test/scala/ExtendedRunnerTest.scala | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/launcher-package/integration-test/src/test/scala/ExtendedRunnerTest.scala b/launcher-package/integration-test/src/test/scala/ExtendedRunnerTest.scala index 5e6710040..4edf05b21 100755 --- a/launcher-package/integration-test/src/test/scala/ExtendedRunnerTest.scala +++ b/launcher-package/integration-test/src/test/scala/ExtendedRunnerTest.scala @@ -162,6 +162,29 @@ object ExtendedRunnerTest extends BasicTestSuite: () } + test("sbt --client reports server startup errors") { + if isWindows then () + else + IO.withTemporaryDirectory: tmp => + val projectDir = new File(tmp, "project") + IO.createDirectory(projectDir) + IO.write(new File(projectDir, "build.properties"), "sbt.version=2.0.0\n") + IO.write(new File(tmp, "build.sbt"), "name := \"startup-error\"\n") + IO.write(new File(tmp, "target"), "") + + val output = new StringBuffer + def append(line: String): Unit = + output.append(line).append(System.lineSeparator()) + () + val exitCode = sbtProcessInDir(tmp)("--client", "--no-colors", "about") + .!(ProcessLogger(append, append)) + val diagnostics = output.toString + assert(exitCode == 1, diagnostics) + assert(diagnostics.contains("Could not create directory"), diagnostics) + assert(diagnostics.contains("target/global-logging"), diagnostics) + () + } + // Test for issue #6485: Test `sbt --client` startup // https://github.com/sbt/sbt/issues/6485 test("sbt --client startup time") {