aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
~~~~~~~~~~~~~~~~~~~~~~~