diff options
| author | manuel <manuel.bott@eps.ch> | 2026-10-29 09:24:10 +0000 |
|---|---|---|
| committer | manuel <manuel.bott@eps.ch> | 2026-10-31 09:55:53 +0000 |
| commit | 3f2146d368f012a6f1aa87c706a857f5f782cfce (patch) | |
| tree | 9301f2612b7cf162f0b6765c208df7757c45665a /CONTRIBUTING.rst | |
| parent | c61a7a3f4cbd610db502b0e14a659adc9289bf23 (diff) | |
| download | kernel-3f2146d368f012a6f1aa87c706a857f5f782cfce.tar.xz kernel-3f2146d368f012a6f1aa87c706a857f5f782cfce.zip | |
doc: describe how to make types printable in test failures
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'CONTRIBUTING.rst')
| -rw-r--r-- | CONTRIBUTING.rst | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 2dbd613c..1ea69ee6 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -54,6 +54,16 @@ For thread-safety and race condition analysis under ThreadSanitizer: cmake --build --preset bht-stress-dbg ctest --preset bht-stress-dbg +Printing Values in Test Failures +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Catch2 prints values it cannot convert as ``{?}``. +To avoid that, every test translation unit force-includes ``kstd/test_support/string_makers.hpp`` (kstd tests) or ``kernel/test_support/string_makers.hpp`` (kernel tests), which teach Catch2 how to print our types without touching kernel code. +To make a new type printable in tests, either: + +* give it a ``kstd::formatter`` specialization, which is picked up automatically, or +* add a ``Catch::StringMaker`` specialization to the ``string_makers.hpp`` of the library the type belongs to. + Bootable Kernel Targets ~~~~~~~~~~~~~~~~~~~~~~~ |
