Edgar has an image Squeak3.10beta.7122.image at http://ftp.squeak.org/3.10alpha/
When I run all the tests in this image, the image crashes. It freezes while it is running a test, and you can't break out of it. Eventually the image crashes. It is behaving exactly the same as it did with the recursive fonts, except that there is a fix to prevent recursive fonts. The recursive fonts made Squeak go into an infinite loop, and it was hard to break out of that, too. I am pretty sure that it dies in a method of FontTest, but I haven't been able to figure out which one. Perhaps any of them will do. If I don't execute FontTest then it doesn't crash. However, I can run FontTest before running any other test, or after running all the tests, and it doesn't crzsh. I've tried deleting all but one method of FontTest, running the entire set of tests, and it crashes all the tests I've tried so far. So, let's ignore FontTest for a little while. If I run all the tests without FontTest, I get seven failures and two errors. One of the failures is probably unrelated to fonts - WideStringTest>>#testSubstrings I think that all the other failures and errors are related to fonts. One of the errors is LocaleTest>>#testLocaleChanged. It is an error because it tries to create a recursive font. Locale class>>#localeChanged calls StrikeFont class>>#localeChanged, which calls StrikeFont class>>#setupDefaultFallbackFont, which tries to make BitstreamVeraSans 9 Roman be its own default. I have no idea why, or what the proper default should be, but I know that no font should be its own default, so this is clearly a bug. To make matters worse, if you run "Locale localeChanged" in a fresh beta.7122 image, it does not create recursive fonts. In fact, you can run LocaleTest all you want, and it will not create recursive fonts. Some other test is messing things up. Four of the failures are in TestIndenting, and I can't understand the tests but I can tell that they use fonts. Moreover, these failures didn't start appearing until we started preventing recursive fonts, so I bet they are related to the problem with TTCFont. Another failure is LocaleTest>>#testIsFontAvailable and the other error is MorphTest>>#testOverlapAnyDeletedPlayer. The first is certainly related to fonts, and the second tries to create recursive fonts, too. When I run all the tests again (except FontTest), I get more or less the same results, except that the MorphTest was gone, and even though LocaleTest>>#testLocaleChanged is on the list of errors, when I click on it I get an assertion failure, not the error of creating a recursive font. But if I evaluate "Locale switchToID: (LocaleID isoLanguage: 'ja')." then I do get the recursive font error. Wierd! When you run all tests, one of the tests will complain that "a name is already used" and will prompt you for this error 19 times. This test is ChangeHookTest. As far as I can tell, this test has nothing to do with what is going on, so you can leave it out of the test suite. Someone ought to fix it so it doesn't prompt. So, here are things people might be able to help me with. 1) How can "StrikeFont setupDefaultFallbackFont" create recursive fonts? To investigate, get a new image, select all tests except FontTest and ChangeHookTest (it is a subclass of SystemChangeTestRoot), and run them. The resulting image should generate a recursive font error if you evaluate "StrikeFont setupDefaultFallbackFont" 2) Why does LocaleTest>>#testIsFontAvailable fail? 3) Why do the four TestIndenting tests fail? i wouldn't be surprised if all these are related. If so, probably the first is the key. However, I also wouldn't be surprised if there is more than one bug in fonts. -Ralph Johnson _______________________________________________ V3dot10 mailing list [email protected] http://lists.squeakfoundation.org/mailman/listinfo/v3dot10
