echo cmd | nim r - -arg1 -arg2 now works (#14210)
This commit is contained in:
parent
a73d403901
commit
f115e40e6a
2 changed files with 32 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue