This is follow-up work to Bug 1529034, which diagnosed a failing jit-test on Android AArch64 caused by the test harness.
The issue is that every platform except for Android outputs error messages to
stderr, while Android outputs error messages to the system log (which functions like systemd's journald). The jit-test harness reads from stderr to determine whether certain classes of expected crashes occurred. Because it never sees any messages on stderr, the harness marks expected crashes as unexpected.
I attempted to solve this by changing Android to output to stderr in addition to the log, but that solution was rejected. So the next solution is to teach the jit-test harness to spawn a subprocess for each test that executes
logcat and greps the log for the specific test it was executing.
This solution is obviously error-prone, in particular because:
- The tests are run in parallel.
- The log is serial and system-wide.
In addition, note that launching a subprocess to read the log is slow, and Android is already a particularly slow system.
In Bug 1529034, rather than deal with all this as a blocker for turning on ARM64 Ion, we opted to disable the test
auto-regress/bug1263857.js. This fix allows that test to be re-enabled on ARM64.