Hi Nicolas,
I apologize for not having noticed this issue until now. As far as writing the tests so that the JIT code will be run, you can either write the test recursively, e.g.
fooTest self fooTest: 0
fooTest: n n < 2 ifTrue: [^self fooTest: n + 1]. "Make sure method is JITTED" ...
or run the tests in a block and make sure the block is repeated, say, 10 times. There is a secret primitive in the VM one can use to test for JITTED ness. See Context>>X-ray in Cog-Tests. If you need this in the KernelTests then you can add it as an extension.
xray "Lift the veil from a context and answer an integer describing its interior state. Used for e.g. VM tests so they can verify they're testing what they think they're testing. 0 implies a vanilla heap context. Bit 0 = is or was married to a frame Bit 1 = is still married to a frame Bit 2 = frame is executing machine code Bit 3 = has machine code pc (as opposed to nil or a bytecode pc) Bit 4 = method is currently compiled to machine code" <primitive: 213> ^0 "Can only fail if unimplemented; therefore simply answer 0"