mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
36 lines
754 B
Nim
36 lines
754 B
Nim
discard """
|
|
output: '''true
|
|
true'''
|
|
targets: "c"
|
|
"""
|
|
|
|
import os, osproc
|
|
when not defined(windows):
|
|
import posix
|
|
|
|
# Checks that the environment is passed correctly in startProcess
|
|
# To do that launches a copy of itself with a new environment.
|
|
|
|
if paramCount() == 0:
|
|
# Parent process
|
|
|
|
let p = startProcess(
|
|
getAppFilename(),
|
|
args = @["child"],
|
|
options = {poStdErrToStdOut, poUsePath, poParentStreams}
|
|
)
|
|
|
|
echo p.running()
|
|
|
|
p.kill()
|
|
|
|
when defined(windows):
|
|
# windows kill happens using TerminateProcess(h, 0), so we should get a
|
|
# 0 here
|
|
echo p.waitForExit() == 0
|
|
else:
|
|
# on posix (non-windows), kill sends SIGKILL
|
|
echo p.waitForExit() == 128 + SIGKILL
|
|
|
|
else:
|
|
sleep(5000) # should get killed before this |