aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.rst
diff options
context:
space:
mode:
authormanuel <manuel.bott@eps.ch>2026-10-29 09:24:10 +0000
committermanuel <manuel.bott@eps.ch>2026-10-31 09:55:53 +0000
commit3f2146d368f012a6f1aa87c706a857f5f782cfce (patch)
tree9301f2612b7cf162f0b6765c208df7757c45665a /CONTRIBUTING.rst
parentc61a7a3f4cbd610db502b0e14a659adc9289bf23 (diff)
downloadkernel-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.rst10
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
~~~~~~~~~~~~~~~~~~~~~~~