summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2011-09-09 15:37:38 (GMT)
committerdgp <dgp@users.sourceforge.net>2011-09-09 15:37:38 (GMT)
commiteb6fb56fa20feb22f2ee6c09b058ece6fcb981cc (patch)
tree0f2c5c77d07135447358156342992a023e710b95
parent4c4d1e2d836ca5b3c4f6c0f0b3df7514667a372e (diff)
downloadtcl-eb6fb56fa20feb22f2ee6c09b058ece6fcb981cc.zip
tcl-eb6fb56fa20feb22f2ee6c09b058ece6fcb981cc.tar.gz
tcl-eb6fb56fa20feb22f2ee6c09b058ece6fcb981cc.tar.bz2
3389733 Convert [testthread] use to Thread package use in *io-70.1.
Eliminates a memory leak in `make valgrind`.
-rw-r--r--ChangeLog4
-rw-r--r--tests/io.test33
2 files changed, 10 insertions, 27 deletions
diff --git a/ChangeLog b/ChangeLog
index e83458b..69acbec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,8 @@
2011-09-09 Don Porter <dgp@users.sourceforge.net>
* tests/chanio.test: [Bug 3389733] Convert [testthread] use to
- Thread package use in chan-io-70.1. Eliminates a memory leak in
- `make valgrind TESTFLAGS="-file chanio.test"`.
+ * tests/io.test: Thread package use in *io-70.1. Eliminates a
+ memory leak in `make valgrind`.
2011-09-07 Don Porter <dgp@users.sourceforge.net>
diff --git a/tests/io.test b/tests/io.test
index e28948f..8a7cc51 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -37,7 +37,7 @@ testConstraint fcopy [llength [info commands fcopy]]
testConstraint testfevent [llength [info commands testfevent]]
testConstraint testchannelevent [llength [info commands testchannelevent]]
testConstraint testmainthread [llength [info commands testmainthread]]
-testConstraint testthread [llength [info commands testthread]]
+testConstraint thread [expr {0 == [catch {package require Thread 2.6}]}]
# You need a *very* special environment to do some tests. In
# particular, many file systems do not support large-files...
@@ -7435,7 +7435,7 @@ test io-59.1 {Thread reference of channels} {testmainthread testchannel} {
# More complicated tests (like that the reference changes as a
# channel is moved from thread to thread) can be done only in the
# extension which fully implements the moving of channels between
- # threads, i.e. 'Threads'. Or we have to extend [testthread] as well.
+ # threads, i.e. 'Threads'.
set f [open $path(longfile) r]
set result [testchannel mthread $f]
@@ -7527,25 +7527,7 @@ test io-70.0 {Cutting & Splicing channels} {testchannel} {
} {0 1 0}
-# Duplicate of code in "thread.test". Find a better way of doing this
-# without duplication. Maybe placement into a proc which transforms to
-# nop after the first call, and placement of its defintion in a
-# central location.
-
-if {[testConstraint testthread]} {
- testthread errorproc ThreadError
-
- proc ThreadError {id info} {
- global threadError
- set threadError $info
- }
-
- proc ThreadNullError {id info} {
- # ignore
- }
-}
-
-test io-70.1 {Transfer channel} {testchannel testthread} {
+test io-70.1 {Transfer channel} {testchannel thread} {
set f [makeFile {... dummy ...} cutsplice]
set c [open $f r]
@@ -7554,16 +7536,17 @@ test io-70.1 {Transfer channel} {testchannel testthread} {
testchannel cut $c
lappend res [catch {seek $c 0 start}]
- set tid [testthread create]
- testthread send $tid [list set c $c]
- lappend res [testthread send $tid {
+ set tid [thread::create -preserved]
+ thread::send $tid [list set c $c]
+ thread::send $tid {load {} Tcltest}
+ lappend res [thread::send $tid {
testchannel splice $c
set res [catch {seek $c 0 start}]
close $c
set res
}]
- tcltest::threadReap
+ thread::release $tid
removeFile cutsplice
set res