[squeak-dev] The Trunk: CollectionsTests-eem.342.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Sep 19 20:11:17 UTC 2020


Eliot Miranda uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-eem.342.mcz

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

Name: CollectionsTests-eem.342
Author: eem
Time: 19 September 2020, 1:11:15.902536 pm
UUID: ba823c3b-42f7-4276-8a25-8c59d26a3346
Ancestors: CollectionsTests-ul.341

Refator SHaredQueue2Test so that now we also test SharedQueue.  Add a test for peek and peekLast

=============== Diff against CollectionsTests-ul.341 ===============

Item was added:
+ TestCase subclass: #AbstractSharedQueueTest
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CollectionsTests-Sequenceable'!

Item was added:
+ ----- Method: AbstractSharedQueueTest class>>isAbstract (in category 'testing') -----
+ isAbstract
+ 	^self class == thisContext methodClass!

Item was added:
+ ----- Method: AbstractSharedQueueTest>>queueClass (in category 'private') -----
+ queueClass
+ 	^self subclassResponsibility!

Item was added:
+ ----- Method: AbstractSharedQueueTest>>testBasics (in category 'tests') -----
+ testBasics
+ 	| q |
+ 	q := self queueClass new.
+ 
+ 	self assert: nil equals: q nextOrNil.
+ 
+ 	q nextPut: 5.
+ 	self assert: 5 equals: q nextOrNil.
+ 	self assert: nil equals: q nextOrNil!

Item was added:
+ ----- Method: AbstractSharedQueueTest>>testContention1 (in category 'tests') -----
+ testContention1
+ 	"here is a test case that breaks the standard SharedQueue from Squeak 3.8"
+ 
+ 	| q r1 r2 |
+ 	q := self queueClass new.
+ 	q nextPut: 5.
+ 	q nextPut: 10.
+ 
+ 	self assert: 5 equals: q nextOrNil.
+ 
+ 	[ r1 := q next ] fork.
+ 	[ r2 := q next ] fork.
+ 	Processor  yield.   "let the above two threads block"
+ 	
+ 	q nextPut: 10.
+ 	Processor yield.
+ 
+ 	self assert: 10 equals: r1.
+ 	self assert: 10 equals: r2.
+ 	self assert: nil equals: q nextOrNil!

Item was added:
+ ----- Method: AbstractSharedQueueTest>>testNextOrNilSuchThat (in category 'tests') -----
+ testNextOrNilSuchThat
+ 	| q item |
+ 	q := self queueClass new.
+ 	q nextPut: 5.
+ 	q nextPut: 6.
+ 
+ 	item := q nextOrNilSuchThat: [ :x | x even ].
+ 	self assert: 6 equals: item.
+ 
+ 	self assert: 5 equals: q nextOrNil.
+ 	self assert: nil equals: q nextOrNil!

Item was added:
+ ----- Method: AbstractSharedQueueTest>>testPeeks (in category 'tests') -----
+ testPeeks
+ 	| q |
+ 	q := self queueClass new.
+ 
+ 	self assert: nil equals: q peek.
+ 	self assert: nil equals: q peekLast.
+ 
+ 	q nextPut: #first; nextPut: #last.
+ 
+ 	self assert: #first equals: q peek.
+ 	self assert: #last equals: q peekLast.
+ 
+ 	self assert: #first equals: q next.
+ 
+ 	self assert: #last equals: q peek.
+ 	self assert: #last equals: q peekLast!

Item was changed:
+ AbstractSharedQueueTest subclass: #SharedQueue2Test
- TestCase subclass: #SharedQueue2Test
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CollectionsTests-Sequenceable'!

Item was added:
+ ----- Method: SharedQueue2Test>>queueClass (in category 'private') -----
+ queueClass
+ 	^SharedQueue2!

Item was removed:
- ----- Method: SharedQueue2Test>>testBasics (in category 'tests') -----
- testBasics
- 	| q |
- 	q := SharedQueue2 new.
- 
- 	self should: [ q nextOrNil = nil ].
- 
- 	q nextPut: 5.
- 	self should: [ q nextOrNil = 5 ].
- 	self should: [ q nextOrNil = nil ].
- 
- !

Item was removed:
- ----- Method: SharedQueue2Test>>testContention1 (in category 'tests') -----
- testContention1
- 	"here is a test case that breaks the standard SharedQueue from Squeak 3.8"
- 
- 	| q r1 r2 |
- 	q := SharedQueue2 new.
- 	q nextPut: 5.
- 	q nextPut: 10.
- 
- 	self should: [ q nextOrNil = 5 ].
- 
- 	[ r1 := q next ] fork.
- 	[ r2 := q next ] fork.
- 	Processor  yield.   "let the above two threads block"
- 	
- 	q nextPut: 10.
- 	Processor yield.
- 
- 	self should: [ r1 = 10 ].
- 	self should: [ r2 = 10 ].
- 	self should: [ q nextOrNil = nil ].
- !

Item was removed:
- ----- Method: SharedQueue2Test>>testNextOrNilSuchThat (in category 'tests') -----
- testNextOrNilSuchThat
- 	| q item |
- 	q := SharedQueue2 new.
- 	q nextPut: 5.
- 	q nextPut: 6.
- 
- 	item := q nextOrNilSuchThat: [ :x | x even ].
- 	self should: [ item = 6 ].
- 
- 	self should: [ q nextOrNil = 5 ].
- 	self should: [ q nextOrNil = nil ].
- !

Item was added:
+ AbstractSharedQueueTest subclass: #SharedQueueTest
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CollectionsTests-Sequenceable'!

Item was added:
+ ----- Method: SharedQueueTest>>queueClass (in category 'private') -----
+ queueClass
+ 	^SharedQueue!



More information about the Squeak-dev mailing list