Maybe cc'ing VM mailing list can help.
On Fri, Jul 1, 2011 at 9:32 AM, Lukas Renggli renggli@gmail.com 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...
http://jenkins.lukas-renggli.ch/job/Development/lastSuccessfulBuild/artifact...
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