diff --git a/tests/gtest_subtree.cpp b/tests/gtest_subtree.cpp
index c79fd8182..605cfd045 100644
--- a/tests/gtest_subtree.cpp
+++ b/tests/gtest_subtree.cpp
@@ -77,14 +77,14 @@ TEST(SubTree, GoodRemapping)
-
-
-
+
+
+
-
+
)";
@@ -92,9 +92,12 @@ TEST(SubTree, GoodRemapping)
factory.registerNodeType("SaySomething");
factory.registerNodeType("CopyPorts");
- Tree tree = factory.createTreeFromText(xml_text);
+ Blackboard::Ptr blackboard = Blackboard::create();
+ Tree tree = factory.createTreeFromText(xml_text, blackboard);
auto ret = tree.tickRoot();
ASSERT_EQ(ret, NodeStatus::SUCCESS );
+ auto out_key_value = blackboard->get("base_bb_out");
+ ASSERT_EQ("hello", out_key_value);
}
TEST(SubTree, BadRemapping)
@@ -142,7 +145,7 @@ TEST(SubTree, BadRemapping)
EXPECT_ANY_THROW( tree_bad_out.tickRoot() );
}
-TEST(SubTree, SubtreePlusA)
+TEST(SubTree, SubtreeSharedBlackboard)
{
static const char* xml_text = R"(
@@ -150,59 +153,80 @@ TEST(SubTree, SubtreePlusA)
-
-
-
-
-
+
+
+
-
+
+
+
+
)";
BehaviorTreeFactory factory;
- factory.registerNodeType("SaySomething");
+ factory.registerNodeType("CopyPorts");
- Tree tree = factory.createTreeFromText(xml_text);
+ Blackboard::Ptr blackboard = Blackboard::create();
+ Tree tree = factory.createTreeFromText(xml_text, blackboard);
auto ret = tree.tickRoot();
ASSERT_EQ(ret, NodeStatus::SUCCESS );
+
+ auto shared_bb_out_1_value = blackboard->get("shared_bb_out_1");
+ auto shared_bb_out_2_value = blackboard->get("shared_bb_out_2");
+ ASSERT_EQ("abc", shared_bb_out_1_value);
+ ASSERT_EQ("def", shared_bb_out_2_value);
}
-TEST(SubTree, SubtreePlusB)
+TEST(SubTree, SubtreePlusA)
{
- static const char* xml_text = R"(
+ static const char* xml_text = R"(
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
)";
- BehaviorTreeFactory factory;
- factory.registerNodeType("SaySomething");
+ BehaviorTreeFactory factory;
+ factory.registerNodeType("CopyPorts");
- Tree tree = factory.createTreeFromText(xml_text);
- auto ret = tree.tickRoot();
- ASSERT_EQ(ret, NodeStatus::SUCCESS );
+ Blackboard::Ptr blackboard = Blackboard::create();
+ Tree tree = factory.createTreeFromText(xml_text, blackboard);
+ auto ret = tree.tickRoot();
+ ASSERT_EQ(ret, NodeStatus::SUCCESS );
+
+ auto abc_base_bb_out_value = blackboard->get("abc_base_bb_out");
+ auto def_base_bb_out_value = blackboard->get("def_base_bb_out");
+ auto ghi_base_bb_out_value = blackboard->get("ghi_base_bb_out");
+ ASSERT_EQ("abc", abc_base_bb_out_value);
+ ASSERT_EQ("def", def_base_bb_out_value);
+ ASSERT_EQ("ghi", ghi_base_bb_out_value);
}
-TEST(SubTree, SubtreePlusC)
+TEST(SubTree, SubtreePlusB)
{
static const char* xml_text = R"(
@@ -210,26 +234,35 @@ TEST(SubTree, SubtreePlusC)
-
-
-
+
+
+
-
-
+
+
+
)";
BehaviorTreeFactory factory;
- factory.registerNodeType("SaySomething");
+ factory.registerNodeType("CopyPorts");
- Tree tree = factory.createTreeFromText(xml_text);
+ Blackboard::Ptr blackboard = Blackboard::create();
+ Tree tree = factory.createTreeFromText(xml_text, blackboard);
auto ret = tree.tickRoot();
- ASSERT_EQ(ret, NodeStatus::SUCCESS );
+ ASSERT_EQ(ret, NodeStatus::SUCCESS);
+
+ auto abc_base_bb_out_value = blackboard->get("auto_mapped_out_1");
+ auto def_base_bb_out_value = blackboard->get("auto_mapped_out_2");
+ auto ghi_base_bb_out_value = blackboard->get("auto_mapped_out_3");
+ ASSERT_EQ("abc", abc_base_bb_out_value);
+ ASSERT_EQ("def", def_base_bb_out_value);
+ ASSERT_EQ("ghi", ghi_base_bb_out_value);
}
@@ -277,3 +310,4 @@ TEST(SubTree, SubtreePlusD)
+