Christoph Thiede uploaded a new version of KernelTests to project The Trunk: http://source.squeak.org/trunk/KernelTests-ct.456.mcz
==================== Summary ====================
Name: KernelTests-ct.456 Author: ct Time: 28 February 2024, 1:00:51.34405 am UUID: 18cac4fa-153a-1646-9b47-98fb20a52258 Ancestors: KernelTests-ct.455
Actually fixes OaM fixture for primitive 83/primitive 84 and adds the same fixture to testPrimitive100. Sorry for the noise.
=============== Diff against KernelTests-ct.455 ===============
Item was changed: ----- Method: ContextTest>>testPrimitive100 (in category 'tests - simulation') ----- testPrimitive100 "Test simulation of primitive 100."
{ {#isNil. {}. Object}. "valid 0-arg message" {#=. {true}. UndefinedObject}. "valid unary message" {#ifNil:ifNotNil:. {[2]. [:x | x]}. Object}. "valid binary message" {{}. #=. {true}. SequenceableCollection}. "mirror primitive" {'not a selector'. {}. Object}. "invalid selector" {#isNil. 'not an array'. Object}. "invalid arguments" {#isNil. {'excess arg'}. Object}. "too many arguments" {#=. {}. UndefinedObject}. "missing argument" {#isNil. {}. 'not a class'}. "invalid lookupClass" {#isNil. {}. Boolean}. "lookupClass not in inheritance chain" + {#in:. + {[:it | + [self class addSelectorSilently: #plonk:with: withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod). + (self perform: #plonk:with: withArguments: #(2 3)) allButFirst "OaM selector is undefined behavior"] + ensure: [self class removeSelectorSilently: #plonk:with:]]}. + UndefinedObject}. } do: [:args | | block | block := [[nil perform: args first withArguments: args second inSuperclass: args third] on: Error do: [:ex | ex description]]. self assert: block value equals: (Context runSimulated: block). block := [[thisContext object: nil perform: args first withArguments: args second inClass: args third] on: Error do: [:ex | ex description]]. self assert: block value equals: (Context runSimulated: block)].!
Item was changed: ----- Method: ContextTest>>testPrimitive83 (in category 'tests - simulation') ----- testPrimitive83 "Test simulation of primitive 83."
self flag: #bug. "Known bug: Primitive 83 SPORADICALLY does NOT fail in the OSVM for missing argument!!" { [nil perform: #isNil]. "valid 0-arg message" [nil perform: #= with: true]. "valid unary message" [nil perform: #ifNil:ifNotNil: with: [2] with: [:x | x]]. "valid binary message" [nil perform: #isNil with: 'excess arg']. "too many arguments" [nil perform: #=]. "missing argument" [nil perform: Object]. "invalid selector" + [[self class addSelectorSilently: #plonk:with: withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod). + (self perform: #plonk:with: with: 2 with: 3) allButFirst "OaM selector is undefined behavior"] + ensure: [self class removeSelectorSilently: #plonk:with:]]. - [[(self class - addSelectorSilently: #plonk:with: withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod); - perform: #plonk:with: with: 2 with: 3) allButFirst "OaM selector is undefined behavior"] - ensure: [self class removeSelectorSilently: #plonk:with:]]. } do: [:block | self assert: (block on: Error do: [:ex | ex description]) equals: (Context runSimulated: [block on: Error do: [:ex | ex description]])].!
Item was changed: ----- Method: ContextTest>>testPrimitive84 (in category 'tests - simulation') ----- testPrimitive84 "Test simulation of primitive 84."
{ {#isNil. {}}. "valid 0-arg message" {#=. {true}}. "valid unary message" {#ifNil:ifNotNil:. {[2]. [:x | x]}}. "valid binary message" {#isNil. 'not an array'}. "invalid arguments" {#isNil. {'excess arg'}}. "too many arguments" {#=. {}}. "missing argument" {Object. {}}. "invalid selector" {#in:. {[:it | + [self class addSelectorSilently: #plonk:with: withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod). + (self perform: #plonk:with: withArguments: #(2 3)) allButFirst "OaM selector is undefined behavior"] + ensure: [self class removeSelectorSilently: #plonk:with:]]}}. - [(self class - addSelectorSilently: #plonk:with: withMethod: (TestObjectForMethod new xxxMethod: thisContext homeMethod); - perform: #plonk:with: withArguments: #(2 3)) allButFirst "OaM selector is undefined behavior"] - ensure: [self class removeSelectorSilently: #plonk:with:]]}}. } do: [:args | self assert: ([nil perform: args first withArguments: args second] on: Error do: [:ex | ex description]) equals: (Context runSimulated: [[nil perform: args first withArguments: args second] on: Error do: [:ex | ex description]])].!
packages@lists.squeakfoundation.org