Bugfixing for large outputs and parallel tests.
- Close the unused ends of pipes in the parent process. - Don't stop reading from stdout if waitpid(2) shows that the process has exited, as there may still be pending output. We now call waitpid(2) only in vdp_fini. - Close stdin as early as possible on VDP_END. - Read stdout and stderr until they close. - Don't use /bin/true and /bin/false in the tests, as they actually don't consume stdin, and may close stdin before we get to poll(2), resulting in POLLERR. This happened with varnishtest -jN, with j > about 5. - Index VDPs with vdp and vcl pointers in the RB tree. This did not turn out to be a bugfix as I thought, but it should be more reliable, since VCL and object names may be identical in varnishtest -j tests.
Showing
Please register or sign in to comment