ci: Fix random i965_asm & glcpp test timeouts
The meat of this MR is changing the i965_asm
/glcpp
test runner python scripts to use pipes instead of tempfiles for communicating with child processes. I don't really know Python and have never made this extensive changes to Python code before, someone who knows it well should make sure I didn't do anything silly. FWIW, I don't see anything on https://docs.python.org/3/library/subprocess.html?highlight=subprocess#subprocess.Popen to suggest this wouldn't work on Windows.
There are also fixes for other issues I stumbled over while working on this:
- The standalone
glcpp
tool used uninitialized members of the GL context struct. - The
glcpp valgrind
test wasn't actually working as intended (in hindsight this was pretty obvious from the fact it only took marginally longer than the otherglcpp
tests :). I'm on the fence about this test: It takes orders of magnitude longer than any other meson test, and I'm not sure it provides enough benefit for that. But it did catch the previous issue, which I wasn't able to catch with ASan instead.
Finally, revert the previous workarounds for the test timeouts.