How much code are you testing ? (4)

🧭 Where we left off Welcome back to our ongoing series on measuring test coverage for binary programs! In part 1 we used Go’s built-in -cover flag — clean and accurate, but only works if you own the source and can recompile. In part 2 we used valgrind and gdb to trace gzip without touching its source. In part 3 we explored Intel PIN, a proper dynamic binary instrumentation framework — powerful, but it came with a ~100MB proprietary C++ SDK and was limited to x86_64. ...

May 13, 2026 · Andrea Manzini

Automating OpenQA Job Cloning with Python and YAML

🎉 Happy New Year! As anyone working with OpenQA knows, it is a powerful tool for automated testing. But sometimes, the workflow around re-triggering those tests for investigation purposes can feel a bit… Manual. Recently, I found myself in a repetitive cycle while debugging complex test scenarios. My workflow looked something like this: Take a known “good” job URL. Open a scratchpad editor. Craft a long openqa-clone-job command with tons of specific override parameters (BUILD=0, custom git branches, skipping specific modules, etc.). Run the command in the terminal, wait for the output. Painfully visual scan of the terminal output, to identify the newly created job URLs, and select them with my mouse, to copy them. Paste them into openqa-mon or a text file to track their progress. Till now I used a Bash script that kind of helped, but modifying giant arrays of arguments for every different debugging scenario was annoying and error-prone. ...

January 7, 2026 · Andrea Manzini

From QEMU Headache to Headless

😸 TL;DR Being lazy, I made a tool to run qcow2 images for my convenience. It now supports x86_64, aarch64, s390x, and ppc64le. Feel free to use it if you find it useful! 📖 The back story If you’ve ever typed qemu-system-x86_64 into your terminal, you know the feeling. A creeping dread. A cold sweat. The QEMU headache. It’s that special migraine reserved for developers who know they’re about to spend the next ten minutes deciphering their own shell history to remember that one magic flag for networking. ...

September 28, 2025 · Andrea Manzini

How much code are you testing ? (3)

▶️ Intro : Let Me Be On the previous post we continued our journey with a more complex scenario, using a mix of gdb and valgrind to trace all the function execution inside a given binary. This time, hold on because we’re cranking up the complexity. We’ll dive deeper into low-level analysis and explore how to use Intel PIN, a powerful dynamic instrumentation framework for manipulating and inspecting executable code at runtime. (Photo by FURQAN KHURSHID) ...

June 17, 2025 · Andrea Manzini