diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/trunner.nim | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/trunner.nim b/tests/trunner.nim index 263184571..65016d2f1 100644 --- a/tests/trunner.nim +++ b/tests/trunner.nim @@ -7,9 +7,10 @@ discard """ import std/[strformat,os,osproc,strutils] +const nim = getCurrentCompilerExe() + proc runCmd(file, options = ""): auto = let mode = if existsEnv("NIM_COMPILE_TO_CPP"): "cpp" else: "c" - const nim = getCurrentCompilerExe() const testsDir = currentSourcePath().parentDir let fileabs = testsDir / file.unixToNativePath doAssert fileabs.existsFile, fileabs @@ -60,3 +61,32 @@ else: # don't run twice the same test check "sizeof(Foo5) == 3" check "sizeof(struct Foo6) == " doAssert exitCode != 0 + + import streams + block: # stdin input + let nimcmd = fmt"{nim} r --hints:off - -firstparam '-second param'" + let inputcmd = "import os; echo commandLineParams()" + let expected = """@["-firstparam", "-second param"]""" + block: + let p = startProcess(nimcmd, options = {poEvalCommand}) + p.inputStream.write("import os; echo commandLineParams()") + p.inputStream.close + var output = p.outputStream.readAll + let error = p.errorStream.readAll + doAssert p.waitForExit == 0 + when false: # https://github.com/timotheecour/Nim/issues/152 + # bug: `^[[0m` is being inserted somehow with `-` (regarless of --run) + doAssert error.len == 0, $(error,) + output.stripLineEnd + doAssert output == expected + p.errorStream.close + p.outputStream.close + + block: + when defined(posix): + let cmd = fmt"echo 'import os; echo commandLineParams()' | {nimcmd}" + # avoid https://github.com/timotheecour/Nim/issues/152 by + # making sure `poStdErrToStdOut` isn't passed + var (output, exitCode) = execCmdEx(cmd, options = {poEvalCommand}) + output.stripLineEnd + doAssert output == expected |