[squeak-dev] The Trunk: NetworkTests-ar.23.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Sep 4 13:54:30 UTC 2011
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').
+ !
More information about the Squeak-dev
mailing list
|