Christoph Thiede uploaded a new version of KernelTests to project The Trunk: http://source.squeak.org/trunk/KernelTests-ct.420.mcz
==================== Summary ====================
Name: KernelTests-ct.420 Author: ct Time: 12 March 2022, 12:44:59.827359 am UUID: 1d33a6f2-995f-2947-afd0-0e587856e860 Ancestors: KernelTests-ct.419
Tests simulation of primitive 188 (primitiveExecuteMethodArgsArray) and primitive 189 (primitiveExecuteMethod). Complements Kernel-ct.1448.
=============== Diff against KernelTests-ct.419 ===============
Item was added: + ----- Method: ContextTest>>testPrimitive188 (in category 'tests') ----- + testPrimitive188 + + self testPrimitive188: [:receiver :args :compiledMethod | + receiver withArgs: args executeMethod: compiledMethod]. + + self testPrimitive188: [:receiver :args :compiledMethod | + CompiledMethod receiver: receiver withArguments: args executeMethod: compiledMethod].!
Item was added: + ----- Method: ContextTest>>testPrimitive188: (in category 'tests') ----- + testPrimitive188: primitiveBlock + + { + {2. {}. SmallInteger >> #even}. "valid 0-arg message" + {2. {1}. Integer >> #<<}. "valid unary message" + {2. {3. 4}. Integer >> #raisedTo:modulo:}. "valid binary message" + {2. 'not an array'. Integer >> #<<}. "invalid arguments" + {2. {'excess arg'}. SmallInteger >> #even}. "too many arguments" + {2. {}. Integer >> #<<}. "missing argument" + {2. {1}. 'not a method'}. "invalid method" + } do: [:args | + self + assert: ([primitiveBlock valueWithArguments: args] on: Error do: [:ex | ex messageText]) + equals: (Context runSimulated: [[primitiveBlock valueWithArguments: args] on: Error do: [:ex | ex messageText]])].!
Item was added: + ----- Method: ContextTest>>testPrimitive189 (in category 'tests') ----- + testPrimitive189 + + { + [2 executeMethod: SmallInteger >> #even]. "valid 0-arg message" + [2 with: 1 executeMethod: Integer >> #<<]. "valid unary message" + [2 with: 3 with: 4 executeMethod: Integer >> #raisedTo:modulo:]. "valid binary message" + [2 with: 1 executeMethod: Integer >> #even]. "too many arguments" + [2 executeMethod: Integer >> #<<]. "missing argument" + [2 with: 1 executeMethod: 'not a method']. "invalid method" + } do: [:block | + self + assert: (block on: Error do: [:ex | ex messageText]) + equals: (Context runSimulated: [block on: Error do: [:ex | ex messageText]])].!
squeak-dev@lists.squeakfoundation.org