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) +