diff options
| -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 ~~~~~~~~~~~~~~~~~~~~~~~ |
