[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
|