[squeak-dev] The Trunk: Tests-mt.449.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Apr 13 08:51:16 UTC 2021


Marcel Taeumel uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-mt.449.mcz

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

Name: Tests-mt.449
Author: mt
Time: 13 April 2021, 10:51:15.223811 am
UUID: 23984a3a-fc1c-2a44-a023-9862b3d2ba8d
Ancestors: Tests-nice.448

Simplify #testUnknownSelector. Avoid interfering with garbage collection and symbol tables.

(Note that #lookup: is the preferred interface, not #findInterned: or #hasInterned:ifTrue:. The concept of internalization should not leak into client code.)

=============== Diff against Tests-nice.448 ===============

Item was changed:
  TestCase subclass: #CompilerExceptionsTest
+ 	instanceVariableNames: 'text selectionInterval originalText previousSelection originalSelection'
- 	instanceVariableNames: 'text selectionInterval originalText previousSelection originalSelection tearDowns'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Tests-Compiler'!

Item was added:
+ ----- Method: CompilerExceptionsTest>>generateUnknownSelector (in category 'private') -----
+ generateUnknownSelector
+ 
+ 	| selector num |
+ 	selector := 'yourself'.
+ 	num := 0.
+ 	[(Symbol lookup: selector, num) notNil] whileTrue: [num := num + 1].
+ 	^ selector, num!

Item was removed:
- ----- Method: CompilerExceptionsTest>>setUp (in category 'running') -----
- setUp
- 
- 	super setUp.
- 	tearDowns := OrderedCollection new.
- 	Symbol hasInterned: self unknownSelector ifTrue: [:symbol |
- 		tearDowns add: [Symbol intern: symbol]].
- 	Symbol extern: self unknownSelector.!

Item was changed:
  ----- Method: CompilerExceptionsTest>>tearDown (in category 'running') -----
  tearDown
  
  	self removeGeneratedMethods.
- 	Symbol extern: self unknownSelector.
- 	tearDowns do: #value.
  	super tearDown.!

Item was changed:
  ----- Method: CompilerExceptionsTest>>testUnknownSelector (in category 'tests') -----
  testUnknownSelector
  
+ 	| unknownSelector |
+ 	self flag: #flaky. "mt: This test depends on a list of suggestions that is derived from the system's known selectors. Any desired replacement might not be present in the actual list. Maybe we could use an index-based choice instead."
+ 	unknownSelector := self generateUnknownSelector.
  	self 
+ 		compiling: 'griffle self ' , unknownSelector
- 		compiling: 'griffle self ' , self unknownSelector
  		shouldRaise: UnknownSelector
+ 		andSelect: unknownSelector
- 		andSelect: self unknownSelector
  		testing: {
+ 			false -> [
+ 				self assertCanceled.
+ 				self assert: (Symbol lookup: unknownSelector) isNil].
+ 			'yourself' -> [
+ 				self assertSucceeded: 'griffle self yourself'.
+ 				self assert: (Symbol lookup: unknownSelector) isNil].
+ 			unknownSelector -> [
- 			false -> [self assertCanceled].
- 			'yourself' -> [self assertSucceeded: 'griffle self yourself'].
- 			self unknownSelector -> [
  				self assertSucceeded.
+ 				self assert: (Symbol lookup: unknownSelector) notNil] }.
+ 	unknownSelector := self generateUnknownSelector.
- 				self assert: (Symbol hasInterned: self unknownSelector ifTrue: [:symbol |]).
- 				Symbol extern: self unknownSelector] }.
  	self
+ 		compiling: 'griffle [ self ' , unknownSelector , ' ] value'
- 		compiling: 'griffle [ self ' , self unknownSelector , ' ] value'
  		shouldRaise: UnknownSelector
+ 		andSelect: unknownSelector
- 		andSelect: self unknownSelector
  		testing: {
+ 			false -> [
+ 				self assertCanceled.
+ 				self assert: (Symbol lookup: unknownSelector) isNil].
+ 			'yourself' -> [
+ 				self assertSucceeded: 'griffle [ self yourself ] value'.
+ 				self assert: (Symbol lookup: unknownSelector) isNil].
+ 			unknownSelector -> [
- 			false -> [self assertCanceled].
- 			'yourself' -> [self assertSucceeded: 'griffle [ self yourself ] value'].
- 			self unknownSelector -> [
  				self assertSucceeded.
+ 				self assert: (Symbol lookup: unknownSelector) notNil] }.!
- 				self assert: (Symbol hasInterned: self unknownSelector ifTrue: [:symbol |])] }.!

Item was removed:
- ----- Method: CompilerExceptionsTest>>unknownSelector (in category 'private') -----
- unknownSelector
- 
- 	^ 'yourrsellff'!

Item was removed:
- ----- Method: Symbol class>>extern: (in category '*Tests-release') -----
- extern: aStringOrSymbol
- 
- 	{NewSymbols. SymbolTable} do: [:table |
- 		table remove: aStringOrSymbol ifAbsent: []].!



More information about the Squeak-dev mailing list