The Trunk: SqueakSSL-Tests-ct.28.mcz

[email protected] Sat, 13 Jun 2026 00:42:04 0000
Newsgroups gmane.comp.lang.smalltalk.squeak.general
Message-ID <[email protected]>
Christoph Thiede uploaded a new version of SqueakSSL-Tests to project The Trunk:
http://source.squeak.org/trunk/SqueakSSL-Tests-ct.28.mcz

==================== Summary ====================

Name: SqueakSSL-Tests-ct.28
Author: ct
Time: 26 April 2026, 8:21:17.711918 pm
UUID: 87b5c782-f5a4-4192-9740-c7c3636b983b
Ancestors: SqueakSSL-Tests-tpr.27

Fixes a race condition and a comment in tests.

=============== Diff against SqueakSSL-Tests-tpr.27 ===============

Item was changed:
  ----- Method: SqueakSSLTest>>testStreamAccept (in category 'tests') -----
  testStreamAccept
  	"Tests the SecureSocketStream server handshake. "
  
  	| process listener clientSocket serverSocket secureStream |
  	process := Processor activeProcess.
  
  	[listener := Socket newTCP.
  	listener listenOn: self port backlogSize: 4.
  	clientSocket := Socket newTCP.
  	clientSocket connectTo: #[127 0 0 1] port: self port.
  	clientSocket waitForConnectionFor: 1.
  	serverSocket := listener waitForAcceptFor: 1.
  	self assert: clientSocket isConnected.
  	self assert: serverSocket notNil.
  	self assert: serverSocket isConnected.
  
  	"Set up the client for the handshake"
  	sslClient on: clientSocket.
  	clientProcess := [
  		[sslClient connect]
  			on: Error 
  			do:[:ex| process signalException: ex].
  	] forkAt: Processor activePriority + 1.
  
+ 	"Set up the server using SecureSocketStream"
- 	"Set up the client using SecureSocketStream"
  	secureStream := SecureSocketStream on: serverSocket.
  	secureStream sslAccept: self certName.
  	self assert: secureStream isConnected.
  	] ensure:[
  		listener ifNotNil:[listener destroy].
  		clientSocket ifNotNil:[clientSocket destroy].
  		serverSocket ifNotNil:[serverSocket destroy].
  		secureStream ifNotNil:[secureStream destroy].
  	].!

Item was changed:
  ----- Method: SqueakSSLTest>>testStreamTransfer (in category 'tests') -----
  testStreamTransfer
  	"Tests the SecureSocketStream data transfer"
  
+ 	| listener clientSocket serverSocket serverStream clientStream sema |
- 	| listener clientSocket serverSocket serverStream clientStream |
  	[listener := Socket newTCP.
  	listener listenOn: self port backlogSize: 4.
  	clientSocket := Socket newTCP.
  	clientSocket connectTo: #[127 0 0 1] port: self port.
  	clientSocket waitForConnectionFor: 1.
  	serverSocket := listener waitForAcceptFor: 1.
  	self assert: clientSocket isConnected.
  	self assert: serverSocket notNil.
  	self assert: serverSocket isConnected.
  
  	"Set up client and server streams"
  	serverStream := self secureSocketStream on: serverSocket.
+ 	sema := Semaphore new.
  	serverProcess := [
+ 		[serverStream sslAccept: self certName.
+ 		sema signal] 
- 		[serverStream sslAccept: self certName] 
  			on: Error do:[:ex| serverStream destroy].
  	] forkAt: Processor activePriority + 1.
  
  	clientStream := self secureSocketStream on: clientSocket.
  	clientStream sslConnect.
  	self assert: clientStream isConnected.
  	self assert: serverStream isConnected.
  	clientStream nextPutAll: 'Hello World'; flush.
+ 	sema wait.
+ 	self assert: 'Hello World' equals: (serverStream next: 11).
- 	self assert: (serverStream next: 11) = 'Hello World'.
  	serverStream nextPutAll: 'The other way'; flush.
+ 	self assert: 'The other way' equals: (clientStream next: 13).
- 	self assert: (clientStream next: 13) = 'The other way'.
  
  	] ensure:[
  		listener ifNotNil:[listener destroy].
  		clientSocket ifNotNil:[clientSocket destroy].
  		serverSocket ifNotNil:[serverSocket destroy].
  		clientStream ifNotNil:[clientStream destroy].
  		serverStream ifNotNil:[serverStream destroy].
  	].!

Squeak-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]