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: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/netwerk/test/unit/test_file_protocol.js&rev=1.2&mark=42#29 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] Patch
11 years ago
Created attachment 245775 [details] [diff] [review] Patch v2 Bah, this is why reviews are a good thing...
Comment on attachment 245775 [details] [diff] [review] Patch v2 + 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/.