summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authoralaviss <alaviss@users.noreply.github.com>2020-04-10 07:34:52 +0000
committerGitHub <noreply@github.com>2020-04-10 09:34:52 +0200
commit5f6962337de94b524afbb4f41b79eae362af67c8 (patch)
tree32c61462e7fb3b7072a7c0c30c699c372b2cfb97 /tests/stdlib
parentcc3f5d21b249fe8f96f61369e53e794bf34e65a5 (diff)
downloadNim-5f6962337de94b524afbb4f41b79eae362af67c8.tar.gz
osproc: added a better version of waitForExit for Haiku (#13938)
Also modified tosprocterminate to verify waitForExit implementations.
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/tosprocterminate.nim28
1 files changed, 22 insertions, 6 deletions
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)