Matthias Noback

@matthiasnoback
1.1K Followers
48 Following
142 Posts
Software developer, code gardener, regular speaker, blogger and workshop host. Author of "Principles of Package Design" and "Microservices for everyone".
websitehttps://matthiasnoback.nl
twitterhttps://twitter.com/matthiasnoback
GitHub - matthiasnoback/fortran-test-framework: An experimental unit test framework for Fortran programs

An experimental unit test framework for Fortran programs - GitHub - matthiasnoback/fortran-test-framework: An experimental unit test framework for Fortran programs

GitHub
New #Fortran post: Improving the design of the test framework, part 2. https://matthiasnoback.nl/2026/02/fortran-testing-redesign-part-2/ A module of 400 lines is too big. We're splitting it into smaller modules, and consider the benefits this provides.
Fortran - Testing - Improving the design of the test framework - Part 2

Extracting code into modules and creating a facade

Matthias Noback
New #Fortran post: Improving the design of the test framework: https://matthiasnoback.nl/2026/02/fortran-testing-redesign-part-1/ Getting rid of allocatable return values and temporary variables.
Fortran - Testing - Improving the design of the test framework - Part 1

Removing allocatables and temp variables

Matthias Noback
Next #Fortran Test framework post: adding assertion functions for comparing other internal types, but also derived types. https://matthiasnoback.nl/2026/02/fortran-testing-more-assertion-functions/
Fortran - Testing - More assertion functions

Comparing other internal types, and derived types

Matthias Noback

Next #Fortran post: "Returning test and assertion errors".

We find more good reasons for using custom derived types in the test framework. Assertion functions no longer print their results directly to screen. https://matthiasnoback.nl/2026/01/fortran-testing-returning-test-and-assertion-errors/

Fortran - Testing - Returning test and assertion errors

Introducing new types to carry test and assertion results

Matthias Noback
New #Fortran testing post: "Showing progress and printing results" https://matthiasnoback.nl/2026/01/fortran-testing-showing-progress-printing-results/ We introduce a polymorphic observer, so we can switch to a different way of producing output during a test run.
Fortran - Testing - Showing progress and printing results

A polymorphic observer as progress printer

Matthias Noback
New #Fortran article: making the test framework testable, separating main logic from output, and returning results. https://matthiasnoback.nl/2026/01/fortran-testing-reusable-test-runner/
Fortran - Testing - Towards a generic, testable test runner

Separating logic from output generation, returning results

Matthias Noback
New #Fortran blog post: "Unit tests and test suites" https://matthiasnoback.nl/2026/01/fortran-testing-unit-tests-and-test-suites/
The next step towards a generic test framework is to let test modules announce their own tests to the test runner. We introduce the types unit_test_t and test_suite_t that carry procedure pointers to decouple the runner from concrete test suites and test procedures.
Fortran - Testing - Unit tests and test suites

Introducing dedicated test modules and the foundation for a test framework

Matthias Noback
New blog post about unit testing #Fortran programs: "Improving temporary test programs" Part 1 introduces assertions and an error counter. The series shows how close a testing framework is to a temporary check program, and what the technical ingredients for such a framework would be. https://matthiasnoback.nl/2026/01/fortran-testing-improving-temporary-test-programs/
Fortran - Testing - Improving temporary test programs

By introducing assertions and error collection

Matthias Noback

New #Fortran post: "Errors and error handling - Part 7 - Fatal errors" https://matthiasnoback.nl/2025/07/fortran-errors-and-error-handling-part-7-fatal-errors/

Almost everywhere in our code should we allow errors to bubble up to higher abstraction levels, until we get to the point that we'd really like to terminate the program. How to do that properly? We need to consider the process' exit code, printing the error to stderr, and adding a stack trace.

Fortran - Errors and error handling - Part 7 - Fatal errors

Stop with error code, error message, and stack trace

Matthias Noback