Bug ID 25002
Summary test runner timeout does not work properly when inferior itself spawns children and shares file handles
Component All Bugs
Discovered during: https://llvm.org/bugs/show_bug.cgi?id=24993 I'll need to not trust the inferior's stdout/stderr pipe liveness to mean that the child process is still alive. It could be dead, with its own children keeping the pipes open. I've got a positive test case of this not working right: * spawn child (P1) * have child spawn another child (C1), sharing stdout/stderr/stdin. * C1 never returns (loops forever) * P1 immediately exits At this point, the test runner should recognize that the process it launched (P1) has completed. Currently it does not. Worse yet, in my test, it never exits the run_with_timeout() call (i.e. the timeout isn't occurring.) Fixing this now.