I'm pretty sure I've found the source of the test problems. First, the
reason the Quit tests fail (sometimes, perhaps) on Owlnet/CSnet is a
timing issue. We're starting up those JVMs (to test what happens when we
quit), but in some cases the JVM has not yet connected by the time we
check whether it has exited or not. To resolve this problem, I just put
in a call to interpret(0) after each new JVM is invoked, since the
interpret call will block until the REPL JVM connects.
But this brings us to the other problem, which explains the fact that
OtherTest sometimes hangs (on MacOS, as well as on CS net!). I'm now
pretty sure this is caused by GlobalModelTestCase.interpret(), which is
hanging. I will dig into this further when I get a chance, but if anyone
else has a second feel free to check it out. That method does have to do
wacky synchronization stuff (because it is using the asynchronous REPL
but wants to block until it returns), so I'm not surprised to see a
timing-type problem here.
-brian
PS: My ibook is back, after all that time. And they finally did get it
to take the 512MB RAM chip.
|