mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
Bugfix/double newlines in stderr (#5426)
This commit is contained in:
committed by
Andreas Rumpf
parent
2d546ca0ac
commit
e8ad59fdc4
@@ -2743,6 +2743,7 @@ when not defined(JS): #and not defined(nimscript):
|
||||
# we use binary mode on Windows:
|
||||
c_setmode(c_fileno(stdin), O_BINARY)
|
||||
c_setmode(c_fileno(stdout), O_BINARY)
|
||||
c_setmode(c_fileno(stderr), O_BINARY)
|
||||
|
||||
when defined(endb):
|
||||
proc endbStep()
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
import strutils
|
||||
let x = stdin.readLine()
|
||||
echo x.parseInt + 5
|
||||
5
tests/osproc/ta_in.nim
Normal file
5
tests/osproc/ta_in.nim
Normal file
@@ -0,0 +1,5 @@
|
||||
# This file is prefixed with an "a", because other tests
|
||||
# depend on it and it must be compiled first.
|
||||
import strutils
|
||||
let x = stdin.readLine()
|
||||
echo x.parseInt + 5
|
||||
16
tests/osproc/ta_out.nim
Normal file
16
tests/osproc/ta_out.nim
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is prefixed with an "a", because other tests
|
||||
# depend on it and it must be compiled first.
|
||||
stdout.writeLine("to stdout")
|
||||
stdout.flushFile()
|
||||
stdout.writeLine("to stdout")
|
||||
stdout.flushFile()
|
||||
|
||||
stderr.writeLine("to stderr")
|
||||
stderr.flushFile()
|
||||
stderr.writeLine("to stderr")
|
||||
stderr.flushFile()
|
||||
|
||||
stdout.writeLine("to stdout")
|
||||
stdout.flushFile()
|
||||
stdout.writeLine("to stdout")
|
||||
stdout.flushFile()
|
||||
@@ -4,7 +4,7 @@ discard """
|
||||
"""
|
||||
import osproc, os, streams
|
||||
|
||||
const filename = when defined(Windows): "ta.exe" else: "ta"
|
||||
const filename = when defined(Windows): "ta_in.exe" else: "ta_in"
|
||||
|
||||
doAssert fileExists(getCurrentDir() / "tests" / "osproc" / filename)
|
||||
|
||||
|
||||
29
tests/osproc/tstdout.nim
Normal file
29
tests/osproc/tstdout.nim
Normal file
@@ -0,0 +1,29 @@
|
||||
discard """
|
||||
output: '''--------------------------------------
|
||||
to stdout
|
||||
to stdout
|
||||
to stderr
|
||||
to stderr
|
||||
to stdout
|
||||
to stdout
|
||||
--------------------------------------
|
||||
'''
|
||||
"""
|
||||
import osproc, os, streams
|
||||
|
||||
const filename = when defined(Windows): "ta_out.exe" else: "ta_out"
|
||||
|
||||
doAssert fileExists(getCurrentDir() / "tests" / "osproc" / filename)
|
||||
|
||||
var p = startProcess(filename, getCurrentDir() / "tests" / "osproc",
|
||||
options={poStdErrToStdOut})
|
||||
|
||||
let outputStream = p.outputStream
|
||||
var x = newStringOfCap(120)
|
||||
var output = ""
|
||||
while outputStream.readLine(x.TaintedString):
|
||||
output.add(x & "\n")
|
||||
|
||||
echo "--------------------------------------"
|
||||
stdout.write output
|
||||
echo "--------------------------------------"
|
||||
Reference in New Issue
Block a user