[BUG] size StepMessages Heap changed
inWorldState>>stopStepping:selector:
Thomas Koenig
tomkoenig at mindspring.com
Fri Mar 5 18:48:53 UTC 2004
Sounds like a good lead. I'll get back to this as soon as I've caught
up on BFAV. Thanks
> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On
> Behalf Of Andreas Raab
> Sent: Thursday, March 04, 2004 5:04 PM
> To: The general-purpose Squeak developers list
> Subject: Re: [BUG] size StepMessages Heap changed
> inWorldState>>stopStepping:selector:
>
>
> Very likely this is the result of running the tests from a
> background progress. See if filing in the changes that I posted in
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-Ma
> rch/074876.html
>
> solves the problem. I would guess that this is one more of
> those Morphic interactions that cause TestRunner to randomly
> cause errors in Morphic-related tests.
>
> Cheers,
> - Andreas
>
> ----- Original Message -----
> From: "Thomas Koenig" <tomkoenig at mindspring.com>
> To: <squeak-dev at lists.squeakfoundation.org>
> Sent: Friday, March 05, 2004 4:52 AM
> Subject: [BUG] size StepMessages Heap changed in
> WorldState>>stopStepping:selector:
>
>
> > As mentioned a while ago, I am working on creating SUnit tests for
> > morphs. Part of that testing includes creating events
> under program
> > control and also includes creating a lot Morphs including a
> HandMorph
> > and a PasteUpMorph.
> >
> > I have found a bug which I do not understand. It has the following
> > characteristics: -On seemingly random Test Runner runs, one or more
> > tests will error out. (The next couple of runs they run
> just fine.)
> > -When I attempt to debug the error in Test Runner by selecting the
> > error, the debugger won't come up. -So, in order to debug
> this I put a
> > self halt in the [... self errors add: aTestCase....] block of
> > TestResult runCase: aTestCase. The error in every case
> appears to be
> > that the size of the Heap of StepMessages appears to change in the
> > middle of WorldState>>
> > stopStepping:selector: method. See below.
> >
> > Has anyone seen this before? Is it possible that I'm causing the
> > problem by creating events and/or hand? Any idea why the errored
> > method can not be opened out of the Test Runner?
> >
> > Tom
> > PS: The following text shows my analysis of one such dump.
> Others are
> > attached and the test code (polygonTest.1.cs.gz)
> >
> > In this (typical) instance the error happened on:
> > PolygonMorphTriangleTest>>#testFlipHAroundXRightMostVertex
> > And was Error: subscript is out of bounds: 15
> > (the test that errors is arbitrary and the exact error
> varies but the
> > bottom line issue is failing an index value well in side of the
> > collection size.) I traced this from the bottom of the stack as
> > follows: (1)a PolygonMorph(2533) >> addMorphFront:
> PolygonMorph(2926)
> > (2)a PolygonMorph(2533) >> privateAddMorph: a PolygonMorph(2926)
> > atIndex: 1 "adding a new morph"(itsWorld == myWorld)
> > ifFalse: [aMorph intoWorld: a PasteUpMorph(2167) [world]]
> > (3) a PolygonMorph(2926) wantsSteps ifTrue:[aWorld
> startStepping: self
> > = a PasteUpMorph(2167) (4)[world] >> startStepping: a
> > PolygonMorph(2926) at: scheduledTime
> > selector: #stepAt: arguments: nil stepTime: nil
> > (5) worldState >>startStepping: a PolygonMorph(2926) at: 21706129
> > selector: #stepAt: arguments: nil stepTime: nil.
> > "Add the given morph to the step list. Do nothing if it is already
> > being stepped."
> > (6) aWorldState >> stopStepping: a PolygonMorph(2926) selector:
> > #stepAt:. "Remove the given morph from the step list." ... stepList
> > removeAll:
> > (stepList select:[:stepMsg| stepMsg receiver == a
> PolygonMorph(2926)
> > and:[stepMsg selector == #stepAt:]]).
> > (7) Heap >>select:[] in WorldState>>stopStepping:selector:
> {[:stepMsg |
> > stepMsg receiver == aMorph and: [stepMsg selector == aSelector]]}
> > 1 to: Heap size (which is 27) do:
> > [:15|
> > (aBlock value: (aHeap at: 15))
> > ifTrue: [a WriteStream #() nextPut: (aHeap at:
> > 15)]].
> > (8) Heap >>at: 15
> > "Return the element at the given position within the
> receiver" (index
> > < 1 or:[index > tally=13]) ifTrue:[^self
> errorSubscriptBounds: index].
> > **** This should not be possible ****
> > (9)Heap >> errorSubscriptBounds: 15
> > etc...
> >
>
>
> --------------------------------------------------------------
> --------------
> ----
>
>
> >
> >
>
>
More information about the Squeak-dev
mailing list
|