Hi Eliot, I am experiencing the same problem as Lukas. I was having random DNU on replaced methods. I fixed the problem by flushing the cache on the compiled methods only, before I was flushing on the selector and on the class. It is not yet clear to me what is the right way of flushing the cache. Any explanation on that?
I think that this goes along with http://code.google.com/p/pharo/issues/detail?id=2255 http://forum.world.st/flushCache-with-MethoWrappers-in-CogVM-td3381310.html Eliot, if you need help debugging or testing a potential solution let me know, I have a bunch of test working on top of this. Cheers, On Mon, Jul 11, 2011 at 6:31 PM, Eliot Miranda <[email protected]> wrote: > > Hi All, > I'm in touch with Lukas on this but have no time to address it right now. > worry not :) > > On Mon, Jul 11, 2011 at 3:05 AM, Mariano Martinez Peck > <[email protected]> wrote: >> >> >> Maybe cc'ing VM mailing list can help. >> >> On Fri, Jul 1, 2011 at 9:32 AM, Lukas Renggli <[email protected]> wrote: >>> >>> Hi Eliot, >>> >>> I am using one of the latest VMs from your site (VM.r2434) and I >>> continue to have subtle problems with objects as methods (#flushCache, >>> #run:with:in:). >>> >>> The issue is that the test coverage in Pharo is kind of broken on Cog >>> for a long time already. It reports methods as not covered that are >>> clearly covered, and tests seem to randomly fail. >>> >>> I suspected that there is something wrong with the coverage code >>> itself. So I started to experiment with TestCoverage>>flushCache and >>> noticed that the current implementation >>> >>> TestCoverage>>flushCache >>> self reference methodSymbol flushCache >>> >>> performs not that well: The set of not covered methods is wrong and >>> many tests suddenly fail. If I replace it with >>> >>> TestCoverage>>flushCache >>> self reference actualClass flushCache >>> >>> I actually get accurate coverage information, but there are still a >>> few tests constantly failing. I tried to use all possible combinations >>> of #flushCache (also calling it on the compiled method), but only >>> flushing the cache on the class seems to work properly. So far so >>> good, but I really wonder what the correct way is to flush the cache? >>> :-) >>> >>> For my experiments I was using the package 'AST-Tests-Semantics'. This >>> is a small package with lots of test methods that cover each method >>> but one (RBSemanticAnnotationMisssing>>#isResumable). Now the "real" >>> problem is that when running these tests in coverage mode, the same 4 >>> tests always fail: >>> >>> RBSemanticTest>>testBlockScope >>> RBSemanticTest>>testCascadeReceiver >>> RBSemanticTest>>testClassVariableBinding >>> RBSemanticTest>>testGlobalVariableBinding >>> >>> Not sure of how to debug that? Do you have an idea why these otherwise >>> passing tests suddenly fail? If you want to try to reproduce you can >>> use any Pharo image with the tests loaded, or use those that I used: >>> >>> >>> http://jenkins.lukas-renggli.ch/job/Development/lastSuccessfulBuild/artifact/omnibrowser-tests/omnibrowser-tests.changes >>> >>> http://jenkins.lukas-renggli.ch/job/Development/lastSuccessfulBuild/artifact/omnibrowser-tests/omnibrowser-tests.image >>> >>> Open the Test Runner, select 'AST-Tests-Semantics' and 'Run Coverage'. >>> >>> Any help or clarification would be appreciated :-) >>> >>> Lukas >>> >>> -- >>> Lukas Renggli >>> www.lukas-renggli.ch >>> >> >> >> >> -- >> Mariano >> http://marianopeck.wordpress.com >> >> > > > > -- > best, > Eliot > > -- Jorge Ressia www.jorgeressia.com
