From 55a7b70b7ab6c1f2be811009e67f6e6630839947 Mon Sep 17 00:00:00 2001 From: Davide Faconti Date: Tue, 19 Mar 2024 21:55:22 +0100 Subject: [PATCH] fix unit test --- CMakeLists.txt | 3 ++- include/behaviortree_cpp/blackboard.h | 1 - src/blackboard.cpp | 20 ++++++++++---------- tests/gtest_blackboard.cpp | 4 ---- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57a11ba1a..bafe2a957 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,9 +19,10 @@ endif() if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN) else() - add_definitions(-Wpedantic) + add_definitions(-Wpedantic -fno-omit-frame-pointer) endif() + #---- project configuration ---- option(BTCPP_SHARED_LIBS "Build shared libraries" ON) option(BTCPP_BUILD_TOOLS "Build commandline tools" ON) diff --git a/include/behaviortree_cpp/blackboard.h b/include/behaviortree_cpp/blackboard.h index 65ee6d90c..3bec9c96b 100644 --- a/include/behaviortree_cpp/blackboard.h +++ b/include/behaviortree_cpp/blackboard.h @@ -201,7 +201,6 @@ inline void Blackboard::set(const std::string& key, const T& value) } lock.lock(); - storage_.insert({ key, entry }); entry->value = new_value; } else diff --git a/src/blackboard.cpp b/src/blackboard.cpp index 1ba0c6926..eecc409d6 100644 --- a/src/blackboard.cpp +++ b/src/blackboard.cpp @@ -210,8 +210,6 @@ std::shared_ptr Blackboard::createEntryImpl(const std::string return storage_it->second; } - std::shared_ptr entry; - // manual remapping first auto remapping_it = internal_to_external_.find(key); if(remapping_it != internal_to_external_.end()) @@ -219,22 +217,24 @@ std::shared_ptr Blackboard::createEntryImpl(const std::string const auto& remapped_key = remapping_it->second; if(auto parent = parent_bb_.lock()) { - entry = parent->createEntryImpl(remapped_key, info); + return parent->createEntryImpl(remapped_key, info); } + throw RuntimeError("Missing parent blackboard"); } - else if(autoremapping_ && !IsPrivateKey(key)) + // autoremapping second (excluding private keys) + if(autoremapping_ && !IsPrivateKey(key)) { if(auto parent = parent_bb_.lock()) { return parent->createEntryImpl(key, info); } + throw RuntimeError("Missing parent blackboard"); } - else // not remapped, not found. Create locally. - { - entry = std::make_shared(info); - // even if empty, let's assign to it a default type - entry->value = Any(info.type()); - } + // not remapped, not found. Create locally. + + auto entry = std::make_shared(info); + // even if empty, let's assign to it a default type + entry->value = Any(info.type()); storage_.insert({ key, entry }); return entry; } diff --git a/tests/gtest_blackboard.cpp b/tests/gtest_blackboard.cpp index 1a2086b5a..980db1e90 100644 --- a/tests/gtest_blackboard.cpp +++ b/tests/gtest_blackboard.cpp @@ -11,12 +11,8 @@ */ #include -#include "action_test_node.h" -#include "condition_test_node.h" -#include "behaviortree_cpp/behavior_tree.h" #include "behaviortree_cpp/bt_factory.h" #include "behaviortree_cpp/blackboard.h" -#include "behaviortree_cpp/xml_parsing.h" #include "../sample_nodes/dummy_nodes.h"