Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 626571a

Browse files
fixed
1 parent 15816fe commit 626571a

File tree

2 files changed

+35
-7
lines changed

2 files changed

+35
-7
lines changed

src/xml_parsing.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -656,11 +656,11 @@ void BT::XMLParser::Pimpl::recursivelyCreateTree(const std::string& tree_ID,
656656
{
657657
StringView port_name = TreeNode::stripBlackboardPointer(str);
658658
new_bb->addSubtreeRemapping( attr->Name(), port_name);
659-
mapped_keys.insert(port_name.to_string());
659+
mapped_keys.insert(attr->Name());
660660
}
661661
else{
662-
new_bb->set(attr->Name(), std::string(attr->Value()) );
663-
mapped_keys.insert(attr->Value());
662+
new_bb->set(attr->Name(), static_cast<std::string>(str) );
663+
mapped_keys.insert(attr->Name());
664664
}
665665
}
666666
recursivelyCreateTree( node->name(), output_tree, new_bb, node );

tests/gtest_subtree.cpp

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ TEST(SubTree, BadRemapping)
142142
EXPECT_ANY_THROW( tree_bad_out.tickRoot() );
143143
}
144144

145-
TEST(SubTree, SubtreePlus)
145+
TEST(SubTree, SubtreePlusA)
146146
{
147147
static const char* xml_text = R"(
148148
@@ -151,11 +151,8 @@ TEST(SubTree, SubtreePlus)
151151
<BehaviorTree ID="MainTree">
152152
<Sequence>
153153
<SetBlackboard value="Hello" output_key="myParam" />
154-
155154
<SubTreePlus ID="mySubtree" param="{myParam}" />
156-
157155
<SubTreePlus ID="mySubtree" param="World" />
158-
159156
<SetBlackboard value="Auto remapped" output_key="param" />
160157
<SubTreePlus ID="mySubtree" __autoremap="1" />
161158
</Sequence>
@@ -174,4 +171,35 @@ TEST(SubTree, SubtreePlus)
174171
ASSERT_EQ(ret, NodeStatus::SUCCESS );
175172
}
176173

174+
TEST(SubTree, SubtreePlusB)
175+
{
176+
static const char* xml_text = R"(
177+
178+
<root main_tree_to_execute = "MainTree" >
179+
180+
<BehaviorTree ID="MainTree">
181+
<Sequence>
182+
<SetBlackboard value="Hello World" output_key="myParam" />
183+
<SetBlackboard value="Auto remapped" output_key="param3" />
184+
<SubTreePlus ID="mySubtree" __autoremap="1" param1="{myParam}" param2="Straight Talking" />
185+
</Sequence>
186+
</BehaviorTree>
187+
188+
<BehaviorTree ID="mySubtree">
189+
<Sequence>
190+
<SaySomething message="{param1}" />
191+
<SaySomething message="{param2}" />
192+
<SaySomething message="{param3}" />
193+
</Sequence>
194+
</BehaviorTree>
195+
</root> )";
196+
197+
BehaviorTreeFactory factory;
198+
factory.registerNodeType<DummyNodes::SaySomething>("SaySomething");
199+
200+
Tree tree = factory.createTreeFromText(xml_text);
201+
auto ret = tree.tickRoot();
202+
ASSERT_EQ(ret, NodeStatus::SUCCESS );
203+
}
204+
177205

0 commit comments

Comments
 (0)