[squeak-dev] tests in trunk: very strange
eliot.miranda at gmail.com
Fri Mar 26 19:22:05 UTC 2010
On Fri, Mar 26, 2010 at 12:01 PM, Michael Haupt <mhaupt at gmail.com> wrote:
> environment: Mac VM 4.2.3beta1U. Running all tests in a fresh trunk
> yields "2641 run, 2618 passes, 6 expected failures, 8 failures, 2
> errors, 7 unexpected passes" (see attachment 1). So far so good, but
> clicking on the second error (LocaleTest >> #testLocaleChanged) yields
> attachment 2 - the test method is not even on the call stack. It
> doesn't look right.
> Insights, anyone?
The ObsoleteMethodProperties instance will be due to some compiled method or
process being held onto by some reference that needs reinitializing.
Hopefully the instance will contain a valid selector which will be a big
The release process should include a step that at least reinitializes all
background processes, sorted collection blocks etc, and hence ensures that
all compiled methods are up-to-date.
One release test would be to compare CompiledMethod allInstances with those
collected by traversing the class hierarchy. The two should be the same
set, except for perhaps the doit used to evaluate this. e.g.
| installedMethods allMethods |
allMethods := CompiledMethod allInstances asSet.
installedMethods := Set new: allMethods size.
installedMethods add: thisContext method. "in case this is a doit"
Smalltalk rootsOfTheWorld do:
class withAllSubclasses do:
[:s :m| installedMethods add: m]]].
self assert: allMethods size = installedMethods size
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev