From 5f6962337de94b524afbb4f41b79eae362af67c8 Mon Sep 17 00:00:00 2001 From: alaviss Date: Fri, 10 Apr 2020 07:34:52 +0000 Subject: osproc: added a better version of waitForExit for Haiku (#13938) Also modified tosprocterminate to verify waitForExit implementations. --- tests/stdlib/tosprocterminate.nim | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'tests/stdlib') diff --git a/tests/stdlib/tosprocterminate.nim b/tests/stdlib/tosprocterminate.nim index a46d91d68..d487b5e60 100644 --- a/tests/stdlib/tosprocterminate.nim +++ b/tests/stdlib/tosprocterminate.nim @@ -1,8 +1,10 @@ discard """ -outputsub: "SUCCESS" + cmd: "nim $target $options -r $file" + targets: "c cpp" + matrix: "--threads:on; " """ -import os, osproc +import os, osproc, times, std / monotimes when defined(Windows): const ProgramWhichDoesNotEnd = "notepad" @@ -19,7 +21,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) -- cgit 1.4.1-2-gfad0