Posted to tcl by dgood` at Mon Nov 25 23:10:53 GMT 2013view raw
- # for reference
- proc vwaitTimeout {var time val} {
- upvar $var v
- set tmpval $v
- set afterId [after $time [list set $var $val]]
- vwait $var
- after cancel $afterId
- return [expr {$v eq $val}]
- }
- test serial-2 {Send data when client is connected} -setup $SETUP -body {
- proc fakeRead {chan} {return "Test Data"}
- proc fakeEof {chan} {return 0}
- replace read fakeRead
- replace eof fakeEof
- startCellmodClient localhost $PORT
- if {[vwaitTimeout cellmod::test::Fake(Server.ClientChan) 2000 timeout]} {return "Client didn't connect"}
- SerialReader fakeChan
- if {[vwaitTimeout cellmod::test::Fake(Client.Buf) 2000 timeout]} {return "Buffer Timeout"}
- restore read
- read $Fake(Server.ClientChan)
- } -cleanup $CLEANUP -result "Test Data"
- test serial-4 {Serial reopens when closed} -setup $SETUP -body {
- proc fakeRead {chan} {error "Simulated Read Error"}
- proc fakeEof {chan} {return 1}
- proc fakeRestartSerial {args} {incr cellmod::test::Fake(Result)}
- replace read fakeRead
- replace eof fakeEof
- replace RestartSerial fakeRestartSerial
- set Fake(Result) 0
- SerialReader fakeChan
- SerialReader fakeChan
- SerialReader fakeChan
- set Fake(Result)
- } -cleanup $CLEANUP -result 3