From 6ff58e9ee7d187ec5da655716efda89577145b01 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Wed, 22 Jun 2022 01:48:51 -0700 Subject: [PATCH] Fix integration tests on Windows. (#750) Signed-off-by: Artur Souza --- sdk-tests/src/test/java/io/dapr/it/Command.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sdk-tests/src/test/java/io/dapr/it/Command.java b/sdk-tests/src/test/java/io/dapr/it/Command.java index 1772ba675..156b395f4 100644 --- a/sdk-tests/src/test/java/io/dapr/it/Command.java +++ b/sdk-tests/src/test/java/io/dapr/it/Command.java @@ -32,6 +32,8 @@ public class Command { private final String command; + private final String shell; + private Process process; private Map env; @@ -40,6 +42,7 @@ public class Command { this.successMessage = successMessage; this.command = command; this.env = env; + this.shell = detectShell(); } public Command(String successMessage, String command) { @@ -49,7 +52,7 @@ public class Command { public void run() throws InterruptedException, IOException { final AtomicBoolean success = new AtomicBoolean(false); final Semaphore finished = new Semaphore(0); - ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", command); + ProcessBuilder processBuilder = new ProcessBuilder(this.shell, "-c", command); if (this.env != null) { processBuilder.environment().putAll(this.env); } @@ -103,4 +106,13 @@ public class Command { public String toString() { return this.command; } + + private static String detectShell() { + String osName = System.getProperty("os.name").toLowerCase(); + if (osName.contains("windows")) { + return "powershell.exe"; + } + + return "bash"; + } }