summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2003-07-18 21:01:32 (GMT)
committerdgp <dgp@users.sourceforge.net>2003-07-18 21:01:32 (GMT)
commit2e2da60bd41af1072289035d579de333b228685f (patch)
treecc557671019e89fedd2d6c3cd71ed72587fd3a22 /library
parentea706473c46f754096132ba8186f814aba26f7e9 (diff)
downloadtcl-2e2da60bd41af1072289035d579de333b228685f.zip
tcl-2e2da60bd41af1072289035d579de333b228685f.tar.gz
tcl-2e2da60bd41af1072289035d579de333b228685f.tar.bz2
* doc/tcltest.n: Restored the [Eval] proc to replace
* library/tcltest/tcltest.tcl: the [::puts] command when either the -output or -error option for [test] is in use, in order to capture data written to the output or error channels for comparison against what is expected. This is easier to document and agrees better with most user expectations than the previous attempt to replace [puts] only in the caller's namespace. Documentation made more precise on the subject. [Bug 706359]
Diffstat (limited to 'library')
-rw-r--r--library/tcltest/tcltest.tcl22
1 files changed, 6 insertions, 16 deletions
diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl
index 1bc0037..934f8f0 100644
--- a/library/tcltest/tcltest.tcl
+++ b/library/tcltest/tcltest.tcl
@@ -16,7 +16,7 @@
# Contributions from Don Porter, NIST, 2002. (not subject to US copyright)
# All rights reserved.
#
-# RCS: @(#) $Id: tcltest.tcl,v 1.78.2.4 2003/07/16 14:31:35 dgp Exp $
+# RCS: @(#) $Id: tcltest.tcl,v 1.78.2.5 2003/07/18 21:01:32 dgp Exp $
package require Tcl 8.3 ;# uses [glob -directory]
namespace eval tcltest {
@@ -1605,26 +1605,16 @@ proc tcltest::Eval {script {ignoreOutput 1}} {
if {!$ignoreOutput} {
set outData {}
set errData {}
- set callerHasPuts [llength [uplevel 1 {
- ::info commands [::namespace current]::puts
- }]]
- if {$callerHasPuts} {
- uplevel 1 [list ::rename puts [namespace current]::Replace::Puts]
- } else {
- interp alias {} [namespace current]::Replace::Puts {} ::puts
- }
- uplevel 1 [list ::namespace import [namespace origin Replace::puts]]
+ rename ::puts [namespace current]::Replace::Puts
+ namespace eval :: \
+ [list namespace import [namespace origin Replace::puts]]
namespace import Replace::puts
}
set result [uplevel 1 $script]
if {!$ignoreOutput} {
namespace forget puts
- uplevel 1 ::namespace forget puts
- if {$callerHasPuts} {
- uplevel 1 [list ::rename [namespace current]::Replace::Puts puts]
- } else {
- interp alias {} [namespace current]::Replace::Puts {}
- }
+ namespace eval :: namespace forget puts
+ rename [namespace current]::Replace::Puts ::puts
}
return $result
}