diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-07-20 09:27:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-20 09:27:14 +0200 |
commit | 9e9ce6a4e34f4256a68527b7b0c4aa7a9fc53cc5 (patch) | |
tree | edc0dafdf7d143a074b43561babf62437b9281bc /tests/osproc/passenv.nim | |
parent | 850b908f150ac7c6053f67cc2d8480cd9e42d56b (diff) | |
parent | 46dad3cb6be73222425dea914864beefcf0b0a4a (diff) | |
download | Nim-9e9ce6a4e34f4256a68527b7b0c4aa7a9fc53cc5.tar.gz |
Merge pull request #4500 from nigredo-tori/fix-osproc-env
Fix passing environment in startProcess (win)
Diffstat (limited to 'tests/osproc/passenv.nim')
-rw-r--r-- | tests/osproc/passenv.nim | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/osproc/passenv.nim b/tests/osproc/passenv.nim new file mode 100644 index 000000000..815f7536f --- /dev/null +++ b/tests/osproc/passenv.nim @@ -0,0 +1,32 @@ +discard """ + file: "passenv.nim" + output: "123" + targets: "c c++ objc" +""" + +import osproc, os, strtabs + +# 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 env = newStringTable() + env["A"] = "1" + env["B"] = "2" + env["C"] = "3" + + let p = startProcess( + getAppFilename(), + args = @["child"], + env = env, + options = {poStdErrToStdOut, poUsePath, poParentStreams} + ) + + discard p.waitForExit + +else: + # Child process + # should output "123" + echo getEnv("A") & getEnv("B") & getEnv("C") |