testtrim: The Testing Tool That Couldn't Test Itself (Until Now)
2025-01-25
Mathieu Fenniak details his journey adding syscall tracing to testtrim, an experimental project optimizing software test execution. Initially, testtrim used strace to identify test dependencies but couldn't test itself because strace can't trace an already-traced process. Two nested tracing attempts failed: the first due to abysmal performance, the second due to shared state and non-atomicity in strace's output. The solution involved using FIFO pipes and shared memory for real-time data streaming between parent and child processes, enabling self-testing and validating testtrim's value in reducing test targets.
Development
syscall tracing