Skip to content

Commit 848ef7c

Browse files
authored
test: skip POSIX shell-injection test on Windows (#344)
It shells out to /bin/sh to verify the rendered command is safe against a real POSIX shell, but that path doesn't exist on Windows, causing the test to fail there regardless of correctness.
1 parent 81a659c commit 848ef7c

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

‎src/test/kotlin/com/coder/toolbox/cli/CoderCLIManagerTest.kt‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,9 +682,18 @@ internal class CoderCLIManagerTest {
682682
"/tmp/coder-toolbox/ssh-network-metrics",
683683
ProxyCommandBuilder().argument(networkMetricsPath.toString()).render(),
684684
)
685+
.replace(
686+
"/tmp/coder-toolbox/test.coder.invalid/url",
687+
ProxyCommandBuilder()
688+
.argument((it.url ?: URI.create("https://test.coder.invalid").toURL()).toString())
689+
.render(),
690+
)
685691
.let { conf ->
686692
if (it.sshLogDirectory != null) {
687-
conf.replace("/tmp/coder-toolbox/test.coder.invalid/logs", it.sshLogDirectory.toString())
693+
conf.replace(
694+
"/tmp/coder-toolbox/test.coder.invalid/logs",
695+
ProxyCommandBuilder().argument(it.sshLogDirectory.toString()).render(),
696+
)
688697
} else {
689698
conf
690699
}

‎src/test/kotlin/com/coder/toolbox/cli/ProxyCommandBuilderTest.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.coder.toolbox.cli
22

3+
import com.coder.toolbox.util.IgnoreOnWindows
34
import com.coder.toolbox.util.OS
45
import java.nio.file.Files
56
import kotlin.test.Test
@@ -45,6 +46,7 @@ internal class ProxyCommandBuilderTest {
4546
}
4647

4748
@Test
49+
@IgnoreOnWindows
4850
fun `rendered POSIX command does not execute command substitutions`() {
4951
val sentinel = Files.createTempDirectory("proxy-command-test").resolve("executed")
5052
val payload = "\$(touch${'$'}{IFS}$sentinel)"

‎src/test/resources/fixtures/outputs/url.conf‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# --- START CODER JETBRAINS TOOLBOX test.coder.invalid
22
Host coder-jetbrains-toolbox--owner--foo.agent1--test.coder.invalid
3-
ProxyCommand /tmp/coder-toolbox/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-toolbox/test.coder.invalid/config --url 'https://test.coder.invalid?foo=bar&baz=qux' ssh --stdio --network-info-dir /tmp/coder-toolbox/ssh-network-metrics --usage-app=jetbrains -- owner/foo.agent1
3+
ProxyCommand /tmp/coder-toolbox/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-toolbox/test.coder.invalid/config --url /tmp/coder-toolbox/test.coder.invalid/url ssh --stdio --network-info-dir /tmp/coder-toolbox/ssh-network-metrics --usage-app=jetbrains -- owner/foo.agent1
44
ConnectTimeout 0
55
StrictHostKeyChecking no
66
UserKnownHostsFile /dev/null

0 commit comments

Comments
 (0)