The Inbox: KernelTests-ct.405.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: KernelTests-ct.405.mcz

commits-2
A new version of KernelTests was added to project The Inbox:
http://source.squeak.org/inbox/KernelTests-ct.405.mcz

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

Name: KernelTests-ct.405
Author: ct
Time: 9 May 2021, 3:54:39.03261 am
UUID: 0504450e-33b8-1148-bd08-8f013c07a926
Ancestors: KernelTests-nice.404

Documents a bug in the simulation of objects as methods (OaM) when the object implements #isCompiledMethod, e.g. via dynamic forwarding. This is actually the case for TestCoverage and for that reason, debugging of SUnit test coverage collection is broken at the moment.

=============== Diff against KernelTests-nice.404 ===============

Item was added:
+ ----- Method: ContextTest>>testObjectsAsMethod (in category 'tests') -----
+ testObjectsAsMethod
+
+ | result error |
+ SystemChangeNotifier uniqueInstance doSilently: [
+ self class addSelector: #foo withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod)].
+
+ result := Context runSimulated: [[self foo] on: Error do: [:ex | error := ex]].
+ error ifNotNil: [self fail: error].
+
+ [self assert: self foo equals: result]
+ ensure: [self class removeSelector: #foo].!

Item was added:
+ ProtoObject subclass: #TestObjectForMethod
+ instanceVariableNames: 'method'
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'KernelTests-Methods'!

Item was added:
+ ----- Method: TestObjectForMethod>>doesNotUnderstand: (in category 'dynamic forwarding') -----
+ doesNotUnderstand: aMessage
+
+ ^ aMessage sendTo: method!

Item was added:
+ ----- Method: TestObjectForMethod>>flushCache (in category 'compatibility') -----
+ flushCache
+ ^ self!

Item was added:
+ ----- Method: TestObjectForMethod>>methodClass: (in category 'compatibility') -----
+ methodClass: aMethodClass!

Item was added:
+ ----- Method: TestObjectForMethod>>run:with:in: (in category 'evaluating') -----
+ run: oldSelector with: arguments in: receiver
+ ^ {oldSelector. arguments. receiver}!

Item was added:
+ ----- Method: TestObjectForMethod>>selector: (in category 'compatibility') -----
+ selector: aSymbol!

Item was added:
+ ----- Method: TestObjectForMethod>>xxxMethod: (in category 'accessing') -----
+ xxxMethod: aCompiledMethod
+
+ method := aCompiledMethod!