- Xtreams::FileReadingWritingTest
class: Xtreams::FileReadingWritingTest
added: #version_HG
- stx_goodies_xtreams_terminals_tests
class: stx_goodies_xtreams_terminals_tests
changed: #classNamesAndAttributes
- Xtreams::BlockClosureReadingWritingTest
class: Xtreams::BlockClosureReadingWritingTest
added: #version_HG
- Xtreams::PipeReadingWritingTest
class: Xtreams::PipeReadingWritingTest
added: #version_HG
- Xtreams::BufferReadingWritingTest
class: Xtreams::BufferReadingWritingTest
added: #version_HG
- Xtreams::BlockClosureTest
class: Xtreams::BlockClosureTest
added: #version_HG
- Xtreams::RingBufferReadingWritingTest
class: Xtreams::RingBufferReadingWritingTest
added: #version_HG
- Xtreams::BufferedWriteStreamTest
class: Xtreams::BufferedWriteStreamTest
added: #version_HG
- Xtreams::CollectionReadingWritingTest
class: Xtreams::CollectionReadingWritingTest
added: #version_HG
- Xtreams::SocketReadingWritingTest
class: Xtreams::SocketReadingWritingTest
added: #version_HG
- Xtreams::ElasticBufferReadingWritingTest
class: Xtreams::ElasticBufferReadingWritingTest
added: #version_HG
"{ Package: 'stx:goodies/xtreams/terminals/tests' }"
"{ NameSpace: Xtreams }"
FiniteReadingWritingTests subclass:#PipeReadingWritingTest
instanceVariableNames:''
classVariableNames:''
poolDictionaries:'XtreamsPool'
category:'Xtreams-Terminals-Tests'
!
!PipeReadingWritingTest methodsFor:'initialize-release'!
setUp
| pipe |
pipe := PipeStream makePipe.
input := pipe first reading.
output := pipe last writing.
!
tearDown
input close.
output close.
! !
!PipeReadingWritingTest methodsFor:'utilities'!
timeout: timeoutDuration server: serverBlock client: clientBlock
"For tests that must be able to write and read at the same time, where they may block on each.
Sockets, Pipes have an operating system buffer which dictates its bandwidth."
| timeout
serverSuccess serverProcess serverLock
clientSuccess clientProcess clientLock|
timeout := false.
serverLock := Semaphore new.
clientLock := Semaphore new.
serverSuccess := clientSuccess := false.
serverProcess := [serverSuccess := serverBlock value. serverLock signal] fork.
clientProcess := [clientSuccess := clientBlock value. clientLock signal] fork.
serverLock wait.
clientLock wait.
self assert: serverSuccess.
self assert: clientSuccess.
self deny: timeout
! !
!PipeReadingWritingTest class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
^ '$Id$'
! !