Refactoring the D Koans with metaprogramming

馃挕 The problem Welcome back, it鈥檚 been quite a long time since my last ramblings on the D Programming Language! This post is born from a necessity. An old project of mine, the D Koans, was using an external library to simplify unit testing, which is more or less the core of the whole project. Unfortunately, the library started giving some deprecation warnings when compiled with recent D versions. Since the D Language already has an internal unit testing framework, I thought it would be nice to remove the single dependency and rely only on the standard library. Initially, with some global search/replace, I managed to convert all the tests to unittest blocks. ...

May 21, 2025 路 Andrea Manzini

How much code are you testing ? (2)

鈻讹笍 Intro On the previous post we started our journey with a very simple scenario, and we used a nice feature of the Go programming language to get a measure of how much % of the target program our test is exercising. This time I am going to experiment a Proof of Concept about how we can obtain a test code coverage metric estimation for a normal binary program, without any recompilation. ...

March 30, 2025 路 Andrea Manzini

How much code are you testing ? (1)

鈽傦笍 Intro When your code includes a suite of unit tests, code coverage is an important metric to measure the test effectiveness and it鈥檚 rather easy to obtain; there are plenty of tools around. Image credits to: Nataliya Vaitkevich On the other hand, often we also need to do integration or E2E testing, as in our QA journey we are mostly running real world programs instead of single well-chosen functions. Let鈥檚 start with a basic use case, and prepare a simple program tailored for this purpose. ...

February 23, 2025 路 Andrea Manzini

Writing shell filters for fun and profit

Why ? During my daily job I have sometimes to debug failed openqa test jobs. One of the testing mantra is to reproduce the issue and for that task the openqa community has developed some tooling. In practice, I often have some output like this one below from some job cloning operations: Cloning parents of sle-15-SP4-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit 1 job has been created: - sle-15-SP4-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit -> https://openqa.suse.de/tests/16425390 Cloning parents of sle-15-SP5-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit 1 job has been created: - sle-15-SP5-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit -> https://openqa.suse.de/tests/16425391 Cloning parents of sle-15-SP4-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit 1 job has been created: - sle-15-SP4-Server-DVD-Updates-x86_64-Build20250112-1-fips_ker_mode_gnome@64bit -> https://openqa.suse.de/tests/16425392 And when I want to monitor those jobs, I鈥檇 need to copy-paste all the job URLs and pass them as arguments to the cool openqa-mon utility which will show and notify me of the job status in the terminal. ...

January 19, 2025 路 Andrea Manzini

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.