diff options
Diffstat (limited to 'tests/stdlib/tosprocterminate.nim')
-rw-r--r-- | tests/stdlib/tosprocterminate.nim | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/tests/stdlib/tosprocterminate.nim b/tests/stdlib/tosprocterminate.nim index 7fc6c5d85..93b0317f7 100644 --- a/tests/stdlib/tosprocterminate.nim +++ b/tests/stdlib/tosprocterminate.nim @@ -1,7 +1,16 @@ -import os, osproc +discard """ + cmd: "nim $target $options -r $file" + targets: "c cpp" + matrix: "--mm:refc; --mm:orc" +""" -when defined(Windows): +import os, osproc, times, std / monotimes +import std/assertions + +when defined(windows): const ProgramWhichDoesNotEnd = "notepad" +elif defined(openbsd): + const ProgramWhichDoesNotEnd = "/bin/cat" else: const ProgramWhichDoesNotEnd = "/bin/sh" @@ -15,7 +24,21 @@ while process.running() and TimeToWait > 0: sleep(100) TimeToWait = TimeToWait - 100 -if process.running(): - echo("FAILED") -else: - echo("SUCCESS") +doAssert not process.running() +echo("stopped process") + +process.close() + +echo("starting " & ProgramWhichDoesNotEnd) +process = startProcess(ProgramWhichDoesNotEnd) +echo("process should be stopped after 2s") + +let start = getMonoTime() +discard process.waitForExit(2000) +let took = getMonoTime() - start + +doAssert not process.running() +# some additional time to account for overhead +doAssert took < initDuration(seconds = 3) + +echo("stopped process after ", took) |