test_file_protocol.js tests the file: protocol. Among the ways in which it tests this is stream comparison of a file read through the protocol vs. a file read directly from disk. To do the stream comparison, the test reads from the appropriate input stream into a string:
The code which does this, however, can fail. The highlighted line in the URL above theoretically works (albeit in a thoroughly horrendous manner), but it can fail in practice. The reason for this is that SpiderMonkey restricts function calls to 65535 arguments. This isn't often a problem, but one of the tests consists of checking for properly-formatted directory listings for the TmpD directory. If /tmp contains an especially large number of files, the second iteration of read_stream will be called with a count of 65536 (first time is 4096). This causes onDataAvailable to throw, which causes the isSuccessCode test in onStopRequest to fail, which causes the entire test to fail.
Patch in a sec...
Created attachment 245767 [details] [diff] [review]
Created attachment 245775 [details] [diff] [review]
Bah, this is why reviews are a good thing...
Comment on attachment 245775 [details] [diff] [review]
+ do_throw("Partial read from input stream!");
it's not so much partial but really nothing read, but whatever
Fixed on trunk, with s/Partial/Nothing/.