Andreas Raab uploaded a new version of NetworkTests to project The Trunk: http://source.squeak.org/trunk/NetworkTests-ar.23.mcz
==================== Summary ====================
Name: NetworkTests-ar.23 Author: ar Time: 4 September 2011, 3:54:10.746 pm UUID: e2c9e9ca-77a8-974e-ab13-981e381e586b Ancestors: NetworkTests-ar.22
A few more socket tests.
=============== Diff against NetworkTests-ar.22 ===============
Item was added: + ----- Method: SocketTest>>testReceiveTimeout (in category 'tests') ----- + testReceiveTimeout + "Test data transfer and related methods" + + self testServerAccept. + self assert: (serverSocket receiveDataTimeout: 1) isEmpty.!
Item was added: + ----- Method: SocketTest>>testSendTimeout (in category 'tests') ----- + testSendTimeout + "Test data transfer and related methods" + + | buffer | + self testServerAccept. + buffer := ByteArray new: 1000. + [serverSocket sendDone] whileTrue:[ + serverSocket sendSomeData: buffer. + ]. + self should:[serverSocket sendSomeData: buffer startIndex: 1 count: buffer size for: 1] + raise: ConnectionTimedOut. + !
Item was added: + ----- Method: SocketTest>>testSocketReuse (in category 'tests') ----- + testSocketReuse + "Test for SO_REUSEADDR/SO_REUSEPORT" + + | address port udp1 send1 udp2 recv2 sendProc recvProc received | + address := #[255 255 255 255]. "broadcast" + port := 31259. + [ + udp1 := Socket newUDP. + udp1 setOption: 'SO_REUSEADDR' value: 1. + udp1 setOption: 'SO_REUSEPORT' value: 1. + udp1 setPort: port. + udp1 setOption: 'SO_BROADCAST' value: 1. + send1 := UUID new. + + udp2 := Socket newUDP. + udp2 setOption: 'SO_REUSEADDR' value: 1. + udp2 setOption: 'SO_REUSEPORT' value: 1. + udp2 setPort: port. + udp2 setOption: 'SO_BROADCAST' value: 1. + recv2 := UUID new. + + received := 0. + recvProc := [ + [received < 16] whileTrue:[ + received := received + (udp2 receiveDataInto: recv2 startingAt: received + 1). + ] + ] fork. + sendProc := [ + udp1 setPeer: address port: port. + udp1 sendData: send1 count: 16. + ] fork. + (Delay forMilliseconds: 200) wait. + self should: [recvProc isTerminated]. + self should: [sendProc isTerminated]. + self should: [send1 = recv2]. + ] ensure:[ + udp1 destroy. + udp2 destroy. + ]. + !
Item was added: + ----- Method: SocketTest>>testUDP (in category 'tests') ----- + testUDP + "Test udp recv() and send() functionality" + + serverSocket := Socket newUDP. + serverSocket setPort: 54321. + + clientSocket := Socket newUDP. + clientSocket setPeer: NetNameResolver localHostAddress port: serverSocket port. + clientSocket sendData: 'Hello World'. + + (Delay forMilliseconds: 200) wait. + + self assert: (serverSocket dataAvailable). + self assert: (serverSocket receiveData = 'Hello World'). + !
squeak-dev@lists.squeakfoundation.org