From 94ed5800df00ea7b5f5aa414d637eff6310e36b2 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Fri, 26 Mar 2021 10:01:14 +0100 Subject: [PATCH 01/11] Fixes version 1 --- .../kotlin/ftl/ios/xctest/common/ParseObjTests.kt | 7 ++++--- test_runner/src/main/kotlin/ftl/util/Bash.kt | 13 +++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt index f51154f404..28a906e2cf 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt @@ -12,9 +12,10 @@ internal fun parseObjcTests(binary: String): List { val results = mutableListOf() // https://github.com/linkedin/bluepill/blob/37e7efa42472222b81adaa0e88f2bd82aa289b44/Source/Shared/BPXCTestFile.m#L18 // must quote binary path in case there are spaces - var cmd = if (!isWindows) "nm -U ${binary.quote()}" else "nm.exe -U ${binary.quote()}" - if (!isMacOS) cmd = if (isWindows) "PATH=$appDataDirectory\\.flank $cmd" else "PATH=~/.flank $cmd" - val output = Bash.execute(cmd) + var cmd = if (!isWindows) "nm -U ${binary.quote()}" else "llvm-nm.exe --undefined-only ${binary.quote()}" + if (!isMacOS) cmd = if (isWindows) cmd.replace("\\", "/") else "PATH=~/.flank $cmd" + + val output = if (isWindows) Bash.execute(cmd, "$appDataDirectory\\.flank\\") else Bash.execute(cmd) output.lines().forEach { line -> // 000089b0 t -[EarlGreyExampleTests testLayout] diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index bf777460c5..eea321adff 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -4,18 +4,19 @@ import flank.common.isWindows import flank.common.logLn import ftl.run.exception.FlankGeneralError import java.lang.ProcessBuilder.Redirect.PIPE - object Bash { - fun execute(cmd: String): String { + fun execute(cmd: String, additionalPath: String = ""): String { logLn(cmd) val bashPath = if (isWindows) "bash.exe" else "/bin/bash" - val process = ProcessBuilder(bashPath, "-c", cmd) - .redirectOutput(PIPE) - .redirectError(PIPE) - .start() + val process = ProcessBuilder(bashPath, "-c", cmd).also { + if (additionalPath.isNotEmpty()) { + val envs: MutableMap = it.environment() + envs["Path"] = additionalPath + } + }.redirectOutput(PIPE).redirectError(PIPE).start() val result = process.waitForResult() From 210d5454a430a4c614d043debff44a4dd4ce7e91 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 29 Mar 2021 12:53:40 +0200 Subject: [PATCH 02/11] Additions for swift-demangle --- .../ios/xctest/common/InstallParseBinaries.kt | 2 +- .../ftl/ios/xctest/common/ParseSwiftTests.kt | 18 +++++++++++++----- test_runner/src/main/kotlin/ftl/util/Bash.kt | 7 +++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt index 1faacbffca..aec4538766 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt @@ -32,7 +32,7 @@ private fun shouldDownloadBinaries(): Boolean { } private fun neededFilesListByOs(): List = if (isWindows) { - listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll") + listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll", "xargs.cmd") } else { listOf("nm", "swift-demangle", "libatomic.so.1", "libatomic.so.1.2.0") } diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index 27fd5cd10f..52e26057cb 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -1,6 +1,9 @@ package ftl.ios.xctest.common +import flank.common.appDataDirectory +import flank.common.isLinux import flank.common.isMacOS +import flank.common.isWindows import ftl.util.Bash internal fun parseSwiftTests(binary: String): List { @@ -12,14 +15,19 @@ internal fun parseSwiftTests(binary: String): List { // getconf ARG_MAX val argMax = 262_144 - val cmd = if (isMacOS) { - "nm -gU ${binary.quote()} | xargs -s $argMax xcrun swift-demangle" - } else { - "export LD_LIBRARY_PATH=~/.flank; export PATH=~/.flank:\$PATH; nm -gU ${binary.quote()} | xargs -s $argMax swift-demangle" + val cmd = when { + isMacOS -> "nm -gU ${binary.quote()} | xargs -s $argMax xcrun swift-demangle" + isLinux -> "export LD_LIBRARY_PATH=~/.flank; export PATH=~/.flank:\$PATH; nm -gU ${binary.quote()} | xargs -s $argMax swift-demangle" + isWindows -> "llvm-nm.exe --undefined-only --extern-only ${binary.quote()} | xargs -s $argMax swift-demangle" + else -> throw RuntimeException("Unsupported OS for Integration Tests") } + val path = if (isWindows) { + listOf(Pair("Path", "$appDataDirectory\\.flank\\"), Pair("LD_LIBRARY_PATH", "$appDataDirectory\\.flank\\")) + } else emptyList() + // https://github.com/linkedin/bluepill/blob/37e7efa42472222b81adaa0e88f2bd82aa289b44/Source/Shared/BPXCTestFile.m#L17-18 - val demangledOutput = Bash.execute(cmd) + val demangledOutput = Bash.execute(cmd, path) demangledOutput.lines().forEach { line -> // _T025EarlGreyExampleTestsSwift0abceD0C10testLayoutyyF ---> EarlGreyExampleTestsSwift.EarlGreyExampleSwiftTests.testLayout() -> () // _T025EarlGreyExampleTestsSwift0abceD0C16testCustomActionyyF ---> EarlGreyExampleTestsSwift.EarlGreyExampleSwiftTests.testCustomAction() -> () diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index eea321adff..d6ab67a0a2 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -4,9 +4,10 @@ import flank.common.isWindows import flank.common.logLn import ftl.run.exception.FlankGeneralError import java.lang.ProcessBuilder.Redirect.PIPE + object Bash { - fun execute(cmd: String, additionalPath: String = ""): String { + fun execute(cmd: String, additionalPath: List> = emptyList()): String { logLn(cmd) val bashPath = if (isWindows) "bash.exe" else "/bin/bash" @@ -14,7 +15,9 @@ object Bash { val process = ProcessBuilder(bashPath, "-c", cmd).also { if (additionalPath.isNotEmpty()) { val envs: MutableMap = it.environment() - envs["Path"] = additionalPath + additionalPath.forEach { extra -> + envs[extra.component1()] = extra.component2() + } } }.redirectOutput(PIPE).redirectError(PIPE).start() From ca9a30599a99e672a3cfda027733dc9fa399620e Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 29 Mar 2021 13:21:31 +0200 Subject: [PATCH 03/11] Fixes --- .../src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt index 28a906e2cf..472c63c72f 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt @@ -15,7 +15,10 @@ internal fun parseObjcTests(binary: String): List { var cmd = if (!isWindows) "nm -U ${binary.quote()}" else "llvm-nm.exe --undefined-only ${binary.quote()}" if (!isMacOS) cmd = if (isWindows) cmd.replace("\\", "/") else "PATH=~/.flank $cmd" - val output = if (isWindows) Bash.execute(cmd, "$appDataDirectory\\.flank\\") else Bash.execute(cmd) + val path = if (isWindows) listOf(Pair("Path", "$appDataDirectory\\.flank\\")) + else emptyList() + + val output = Bash.execute(cmd, path) output.lines().forEach { line -> // 000089b0 t -[EarlGreyExampleTests testLayout] From 4cb6f6526a1347a9829cee3b06ac63f28fafdbf0 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 29 Mar 2021 13:47:07 +0200 Subject: [PATCH 04/11] Minor changes --- .../src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index 52e26057cb..fd407c0be4 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -13,7 +13,8 @@ internal fun parseSwiftTests(binary: String): List { // The OS limits the list of arguments to ARG_MAX. Setting the xargs limit avoids a fatal // 'argument too long' error. xargs will split the args and run the command for each chunk. // getconf ARG_MAX - val argMax = 262_144 + // Windows has different limits + val argMax = if (isWindows) 251_36 else 262_144 val cmd = when { isMacOS -> "nm -gU ${binary.quote()} | xargs -s $argMax xcrun swift-demangle" From 8c407ba6c067f9f20f95a674356b57f955ed0862 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 29 Mar 2021 14:53:02 +0200 Subject: [PATCH 05/11] Change slashes --- .../src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index fd407c0be4..80cdfe71d7 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -19,7 +19,7 @@ internal fun parseSwiftTests(binary: String): List { val cmd = when { isMacOS -> "nm -gU ${binary.quote()} | xargs -s $argMax xcrun swift-demangle" isLinux -> "export LD_LIBRARY_PATH=~/.flank; export PATH=~/.flank:\$PATH; nm -gU ${binary.quote()} | xargs -s $argMax swift-demangle" - isWindows -> "llvm-nm.exe --undefined-only --extern-only ${binary.quote()} | xargs -s $argMax swift-demangle" + isWindows -> "llvm-nm.exe --undefined-only --extern-only ${binary.quote().replace("\\", "/")} | xargs -s $argMax swift-demangle" else -> throw RuntimeException("Unsupported OS for Integration Tests") } From f731691304a12b2ee020295d450d74ac5b25336f Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 29 Mar 2021 15:23:16 +0200 Subject: [PATCH 06/11] Remove limit for now as xargs does not support it --- .../src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index 80cdfe71d7..6bd32e4114 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -19,7 +19,7 @@ internal fun parseSwiftTests(binary: String): List { val cmd = when { isMacOS -> "nm -gU ${binary.quote()} | xargs -s $argMax xcrun swift-demangle" isLinux -> "export LD_LIBRARY_PATH=~/.flank; export PATH=~/.flank:\$PATH; nm -gU ${binary.quote()} | xargs -s $argMax swift-demangle" - isWindows -> "llvm-nm.exe --undefined-only --extern-only ${binary.quote().replace("\\", "/")} | xargs -s $argMax swift-demangle" + isWindows -> "llvm-nm.exe --undefined-only --extern-only ${binary.quote().replace("\\", "/")} | xargs swift-demangle" else -> throw RuntimeException("Unsupported OS for Integration Tests") } From 4fd6aa01b7f22820245cd2f0b6a5953a43a08fc7 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Tue, 30 Mar 2021 16:37:54 +0200 Subject: [PATCH 07/11] adding libatomic back --- .../main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt index aec4538766..6cf363d470 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt @@ -32,7 +32,7 @@ private fun shouldDownloadBinaries(): Boolean { } private fun neededFilesListByOs(): List = if (isWindows) { - listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll", "xargs.cmd") + listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll", "xargs.cmd", "libatomic.so.1", "libatomic.so.1.2.0") } else { listOf("nm", "swift-demangle", "libatomic.so.1", "libatomic.so.1.2.0") } From 685f388f6b60b304c8d8b7fca54592273fcf6f11 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Tue, 30 Mar 2021 16:39:22 +0200 Subject: [PATCH 08/11] libatomic duplicate remove --- .../main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt index 6cf363d470..aec4538766 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/InstallParseBinaries.kt @@ -32,7 +32,7 @@ private fun shouldDownloadBinaries(): Boolean { } private fun neededFilesListByOs(): List = if (isWindows) { - listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll", "xargs.cmd", "libatomic.so.1", "libatomic.so.1.2.0") + listOf("libatomic.so.1", "libatomic.so.1.2.0", "nm.exe", "swift-demangle.exe", "swiftDemangle.dll", "xargs.cmd") } else { listOf("nm", "swift-demangle", "libatomic.so.1", "libatomic.so.1.2.0") } From 76cc1fb60007f13ac88092af325d473fdb9b9746 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Wed, 31 Mar 2021 10:08:32 +0200 Subject: [PATCH 09/11] Modify shell environments --- .../ftl/ios/xctest/common/ParseSwiftTests.kt | 5 ++++- test_runner/src/main/kotlin/ftl/util/Bash.kt | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index 6bd32e4114..3f979cb9ad 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -5,6 +5,7 @@ import flank.common.isLinux import flank.common.isMacOS import flank.common.isWindows import ftl.util.Bash +import ftl.util.ShellEnvironment internal fun parseSwiftTests(binary: String): List { installBinaries @@ -28,7 +29,9 @@ internal fun parseSwiftTests(binary: String): List { } else emptyList() // https://github.com/linkedin/bluepill/blob/37e7efa42472222b81adaa0e88f2bd82aa289b44/Source/Shared/BPXCTestFile.m#L17-18 - val demangledOutput = Bash.execute(cmd, path) + val shell = if (isWindows) ShellEnvironment.Cmd else ShellEnvironment.Default + + val demangledOutput = Bash.execute(cmd, path, shell) demangledOutput.lines().forEach { line -> // _T025EarlGreyExampleTestsSwift0abceD0C10testLayoutyyF ---> EarlGreyExampleTestsSwift.EarlGreyExampleSwiftTests.testLayout() -> () // _T025EarlGreyExampleTestsSwift0abceD0C16testCustomActionyyF ---> EarlGreyExampleTestsSwift.EarlGreyExampleSwiftTests.testCustomAction() -> () diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index d6ab67a0a2..2cfec82081 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -6,13 +6,13 @@ import ftl.run.exception.FlankGeneralError import java.lang.ProcessBuilder.Redirect.PIPE object Bash { - - fun execute(cmd: String, additionalPath: List> = emptyList()): String { + fun execute( + cmd: String, + additionalPath: List> = emptyList(), + shellEnvironment: ShellEnvironment = ShellEnvironment.Default + ): String { logLn(cmd) - - val bashPath = if (isWindows) "bash.exe" else "/bin/bash" - - val process = ProcessBuilder(bashPath, "-c", cmd).also { + val process = ProcessBuilder(shellEnvironment.execution, "-c", cmd).also { if (additionalPath.isNotEmpty()) { val envs: MutableMap = it.environment() additionalPath.forEach { extra -> @@ -31,3 +31,10 @@ object Bash { return result.stdout.trim() + result.stderr.trim() } } + +sealed class ShellEnvironment(val execution: String) { + object Bash : ShellEnvironment("Bash.exe") + object BinBash : ShellEnvironment("/bin/bash") + object Cmd : ShellEnvironment("cmd.exe") + object Default : ShellEnvironment(if (isWindows) Bash.execution else BinBash.execution) +} From a085122ba7ab21118b4ef5527c9a9fca696f2106 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 31 Mar 2021 20:19:44 +0200 Subject: [PATCH 10/11] using cmd in windows with /c param --- .../main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt | 2 +- .../main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt | 2 +- test_runner/src/main/kotlin/ftl/util/Bash.kt | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt index 472c63c72f..e81e2a0a00 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseObjTests.kt @@ -15,7 +15,7 @@ internal fun parseObjcTests(binary: String): List { var cmd = if (!isWindows) "nm -U ${binary.quote()}" else "llvm-nm.exe --undefined-only ${binary.quote()}" if (!isMacOS) cmd = if (isWindows) cmd.replace("\\", "/") else "PATH=~/.flank $cmd" - val path = if (isWindows) listOf(Pair("Path", "$appDataDirectory\\.flank\\")) + val path = if (isWindows) listOf(Pair("Path", "$appDataDirectory\\.flank\\;C:\\Windows\\System32\\")) else emptyList() val output = Bash.execute(cmd, path) diff --git a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt index 3f979cb9ad..b9896c2918 100644 --- a/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt +++ b/test_runner/src/main/kotlin/ftl/ios/xctest/common/ParseSwiftTests.kt @@ -25,7 +25,7 @@ internal fun parseSwiftTests(binary: String): List { } val path = if (isWindows) { - listOf(Pair("Path", "$appDataDirectory\\.flank\\"), Pair("LD_LIBRARY_PATH", "$appDataDirectory\\.flank\\")) + listOf(Pair("Path", "$appDataDirectory\\.flank\\;C:\\Windows\\System32\\"), Pair("LD_LIBRARY_PATH", "$appDataDirectory\\.flank\\")) } else emptyList() // https://github.com/linkedin/bluepill/blob/37e7efa42472222b81adaa0e88f2bd82aa289b44/Source/Shared/BPXCTestFile.m#L17-18 diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index 2cfec82081..3ee3151fc3 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -12,7 +12,12 @@ object Bash { shellEnvironment: ShellEnvironment = ShellEnvironment.Default ): String { logLn(cmd) - val process = ProcessBuilder(shellEnvironment.execution, "-c", cmd).also { + val process = ProcessBuilder( + shellEnvironment.execution, + if (isWindows) "/c" + else "-c", + cmd + ).also { if (additionalPath.isNotEmpty()) { val envs: MutableMap = it.environment() additionalPath.forEach { extra -> @@ -36,5 +41,5 @@ sealed class ShellEnvironment(val execution: String) { object Bash : ShellEnvironment("Bash.exe") object BinBash : ShellEnvironment("/bin/bash") object Cmd : ShellEnvironment("cmd.exe") - object Default : ShellEnvironment(if (isWindows) Bash.execution else BinBash.execution) + object Default : ShellEnvironment(if (isWindows) Cmd.execution else BinBash.execution) } From dcdfe643da58dfb438ef5edc65903fa9dbaf1194 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Thu, 1 Apr 2021 09:53:31 +0200 Subject: [PATCH 11/11] Minor fixes --- test_runner/src/main/kotlin/ftl/util/Bash.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_runner/src/main/kotlin/ftl/util/Bash.kt b/test_runner/src/main/kotlin/ftl/util/Bash.kt index 3ee3151fc3..ab810a8952 100644 --- a/test_runner/src/main/kotlin/ftl/util/Bash.kt +++ b/test_runner/src/main/kotlin/ftl/util/Bash.kt @@ -21,7 +21,7 @@ object Bash { if (additionalPath.isNotEmpty()) { val envs: MutableMap = it.environment() additionalPath.forEach { extra -> - envs[extra.component1()] = extra.component2() + envs[extra.first] = extra.second } } }.redirectOutput(PIPE).redirectError(PIPE).start()