From f6d2afb0030dd0c417a155f786c9d0ab4a6fd77e Mon Sep 17 00:00:00 2001 From: Filip Tibell Date: Fri, 25 Apr 2025 13:03:22 +0200 Subject: [PATCH] Improve process exec stdin test --- tests/process/exec/stdin.luau | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/tests/process/exec/stdin.luau b/tests/process/exec/stdin.luau index 24d11f7..e779dcd 100644 --- a/tests/process/exec/stdin.luau +++ b/tests/process/exec/stdin.luau @@ -1,19 +1,17 @@ local process = require("@lune/process") -local IS_WINDOWS = process.os == "windows" - --- Windows uses \r\n (CRLF) and unix uses \n (LF) - -local echoTrail = if IS_WINDOWS then "\r\n" else "\n" -local echoMessage = "Hello from child process!" +local expected = "Hello from child process!" -- When passing stdin to powershell on windows we must "accept" using the double newline -local result = if IS_WINDOWS - then process.exec("powershell", { "echo" }, { stdio = { stdin = echoMessage .. "\n\n" } }) - else process.exec("xargs", { "echo" }, { stdio = { stdin = echoMessage } }) +local result = if process.os == "windows" + then process.exec("powershell", { "echo" }, { stdio = { stdin = expected .. "\n\n" } }) + else process.exec("xargs", { "echo" }, { stdio = { stdin = expected } }) -local resultStdout = if IS_WINDOWS - then string.sub(result.stdout, #result.stdout - #echoMessage - 1) - else result.stdout -assert(resultStdout == echoMessage .. echoTrail, "Stdin passing did not return proper output") +local resultStdout = result.stdout +resultStdout = string.gsub(resultStdout, "^%s+", "") -- Trim leading whitespace +resultStdout = string.gsub(resultStdout, "%s+$", "") -- Trim trailing whitespace +assert( + resultStdout == expected, + "Stdin passing did not return proper output!" .. `\nExpected: {expected}` .. `\nReceived: {resultStdout}` +)