From eb6fb56fa20feb22f2ee6c09b058ece6fcb981cc Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 9 Sep 2011 15:37:38 +0000 Subject: 3389733 Convert [testthread] use to Thread package use in *io-70.1. Eliminates a memory leak in `make valgrind`. --- ChangeLog | 4 ++-- tests/io.test | 33 ++++++++------------------------- 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 * 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 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 -- cgit v0.12