[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