Open Bug 377438 (textfuzzer) Opened 13 years ago Updated 3 years ago
roc asked me to make a fuzzer that tests Gecko's text and font code, so I made this. It makes text nodes containing random unicode characters, emphasizing certain characters such as ZWNJ. The characters start out in separate text nodes, but they are combined with innerHTML and textContent. So far (only running on Mac) it has found four bugs: 377231, 377232, 377314, 377360. Simon, please advise me as to what characters I should test the most, what fonts to test, etc.
jshin, mscott, vlad and others are folks that have dealt with various font handling bugs in the past and might have ideas that might make interesting test cases.
To test, toss these two files into a directory with the stuff from bug 339948, and drag fuzzer-text.xhtml to the web browser.
* Test very large font sizes. * Test wrapping and text-align: justify. * Exclude '\r' to avoid bug 377461. Mac Firefox (trunk with patch for bug 377231) survived for 10 minutes with no crashes or new assertions, and shut down without crashing. I haven't tested other platforms.
Attachment #261500 - Attachment is obsolete: true
* Test '\r' again (since a patch is available for bug 377461). * Test Arabic more.
Attachment #261533 - Attachment is obsolete: true
* Really test '\r' again.
Attachment #261535 - Attachment is obsolete: true
Some more interesting chars: German Szlig: 0x00DF Backslash: 0x5C A couple of chars in each of the ranges we have macros for here: http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/layout/base/nsBidiUtils.h&rev=1.11&root=/cvsroot&mark=197-244#197
I would test more combining characters, with characters from the same script and with characters from different scripts.
Some of the characters on this page should be included: http://alanwood.net/unicode/aegean_numbers.html (it caused a crash in bug 365923)
Comment on attachment 261536 [details] fuzzer-text.js fuzzer-text.js has been incorporated into fuzzer-combined.js, which lives in bug 339948.
Attachment #261536 - Attachment is obsolete: true
This is now a public DOMFuzz module: https://github.com/MozillaSecurity/funfuzz/blob/master/dom/fuzzer/modules/unicode-characters.js The list of "interesting characters for layout" is in values.js: https://github.com/MozillaSecurity/funfuzz/blob/46515be03a1f73cbaa310971d0d04b13eb29da51/dom/fuzzer/values.js#L576
You need to log in before you can comment on or make changes to this bug.