Try actually writing the stdin to stdout in powershell

This commit is contained in:
Filip Tibell 2025-04-25 15:53:07 +02:00
parent 27409f1bf4
commit 0954730646
No known key found for this signature in database

View file

@ -2,12 +2,13 @@ local process = require("@lune/process")
local expected = "Hello from child process!"
-- NOTE: This requires "bash" to be installed even for Windows
-- users, testing a simple cat from stdin to stdout using pwsh
-- has unfortunately proved to be a significant challenge...
local options = { stdio = { stdin = expected } }
local result = if process.os == "windows"
then process.exec("powershell", { "-Command", "[System.Console]::In.ReadToEnd()" }, options)
then process.exec(
"powershell",
{ "-Command", "[System.Console]::Write([System.Console]::In.ReadToEnd())" },
options
)
else process.exec("bash", { "-c", "cat" }, options)
local resultStdout = result.stdout
@ -15,5 +16,7 @@ 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}`
"Passing a string to stdin did not return the expected output!"
.. `\nExpected: {expected}`
.. `\nReceived: {resultStdout}`
)