Fix ROOT blackboard export in Groot2 publisher#1132
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Groot2 publisher’s blackboard dump behavior so that an externally-backed root blackboard is exported as ROOT, avoids duplicate ROOT exports when multiple subtrees share the same external root, and adds logger tests covering the expected cases. It also adjusts MSVC test compilation to reliably build existing Unicode-related tests on Windows.
Changes:
- Export external root blackboard payload as
ROOTwhen a subtree’s blackboard is backed by an external root blackboard, with deduplication across subtrees. - Add Groot2 publisher tests for: no external root, external root export, and shared-root deduplication.
- Enable
/utf-8for the test target on MSVC and defineBTCPP_GROOT_INTERFACEfor conditional compilation in tests.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/loggers/groot2_publisher.cpp |
Adds ROOT export + dedup logic for externally-backed root blackboards in blackboard dumps. |
tests/gtest_loggers.cpp |
Adds integration-style tests that request blackboard dumps over ZMQ and validate ROOT behavior. |
tests/CMakeLists.txt |
Ensures MSVC builds tests with UTF-8 and enables Groot2-specific test compilation when configured. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Any news regarding this merge request ? |
|
Summary
ROOTwhen a subtree blackboard is backed by an external root blackboardROOTpayloads when multiple subtrees share the same external root blackboard/utf-8forbehaviortree_cpp_teston MSVC so the existing Unicode name-validation tests build reliably on WindowsValidation
conan install . -s build_type=Release --build=missing --settings:host compiler.cppstd=17 -c tools.cmake.cmaketoolchain:generator="NMake Makefiles"cmake --preset conan-releasecmake --build --preset conan-releasebuild/Release/tests/behaviortree_cpp_test.exebuild/Release/tests/behaviortree_cpp_test.exe --gtest_filter=LoggerTest.Groot2Publisher_*pre-commit run --files src/loggers/groot2_publisher.cpp tests/CMakeLists.txt tests/gtest_loggers.cppNotes
clang-tidycould not be executed in this Windows environment because the repo hook expects/bin/bashandclangd-21. The rest of the pre-commit hooks passed after re-running withSKIP=clang-tidy.