diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-09-28 07:33:19 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:54 +1000 |
commit | 73b6640e994c4c954d54894a16acd5a151899c3a (patch) | |
tree | 073587ee55b51b159ad5c3e7775c30d2a7716bf3 /tests/exec2.test | |
parent | ff0f40d8ec4af2399e6265d731c8070987e24270 (diff) | |
download | jimtcl-73b6640e994c4c954d54894a16acd5a151899c3a.zip jimtcl-73b6640e994c4c954d54894a16acd5a151899c3a.tar.gz jimtcl-73b6640e994c4c954d54894a16acd5a151899c3a.tar.bz2 |
Use $::env to build environment for exec
Also, switch to using 'sh -c' for the vfork() implementation
because it then allows command line redirection, pipes and
setting the environment.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'tests/exec2.test')
-rw-r--r-- | tests/exec2.test | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/exec2.test b/tests/exec2.test new file mode 100644 index 0000000..e3d8a25 --- /dev/null +++ b/tests/exec2.test @@ -0,0 +1,39 @@ +# These tests are design especially for the vfork() implementation +# of exec where sh -c must be used and thus we must take extra care +# in quoting arguments to exec. + +source testing.tcl + +set d \" +set s ' +set b \\ + +test exec2-1.1 "Quoting - Result" { + exec echo ${d}double quoted${d} ${s}single quoted${s} ${b}backslash quoted${b} +} "\"double\ quoted\"\ 'single quoted'\ \\backslash\ quoted\\" + +test exec2-1.2 "Quoting - Word Grouping" { + string trim [exec echo ${d}double quoted${d} ${s}single quoted${s} ${b}backslash quoted${b} | wc -w] +} {6} + +test exec2-2.1 "Add to exec environment" { + set env(testenv) "the value" + exec printenv | sed -n -e /^testenv=/p +} {testenv=the value} + +test exec2-2.2 "Remove from exec environment" { + set env(testenv2) "new value" + unset env(testenv) + exec printenv | sed -n -e /^testenv=/p +} {} + + +test exec2-2.3 "Remove all exec environment" { + array unset env * + exec printenv | sed -n -e /^testenv2=/p +} {} + +test exec2-2.4 "Remove all env var" { + unset -nocomplain env + exec printenv | sed -n -e /^testenv2=/p +} {} |