forked from Imagelibrary/littlefs
The -k/--keep-going option has been more or less useless before this since it would completely flood the screen/logs when a bug triggers multiple test failures, which is common. Some things to note: - RAM management is tricky with -k/--keep-going, if we try to save logs and filter after running everything we quickly fill up memory. - Failing test cases are a much slower path than successes since we need to kill and restart the underlying test_runner, its state can't be trusted anymore. This is a-ok since hopefully you usually hope for many more successes than failures. Unfortunately it can make -k/--keep-going quite slow. --- ALSO -- warning this is a tangent rant-into-the-void -- I have discovered that Ubuntu has a "helpful" subsystem named Apport that tries to record/log/report any process crash in the system. It is "disabled" by default, but the way it's disabled requires LAUNCHING A PYTHON INTERPRETER to check a flag on every segfault/assert failure. This is what it does when it's "disabled"! This subsystem is fundamentally incompatible with any program that intentionally crashes subprocesses, such as our test runner. The sheer amount of python interpreters being launched quickly eats through all available RAM and starts OOM killing half the processes on the system. If anyone else runs into this, a shallow bit of googling suggests the best solution is to just disable Apport. It is not a developer friendly subsystem: $ sudo systemctl disable apport.service Removing Apport brings RAM usage back down to a constant level, even with absurd numbers of test failures. And here I thought I had memory leak somewhere.