@@ -349,34 +349,34 @@ class NaughtyNav2Node : public BT::SyncActionNode
349349 }
350350};
351351
352- TEST (SubTree, SubtreeIssue563 )
352+ TEST (SubTree, SubtreeNav2_Issue563 )
353353{
354354 static const char * xml_text = R"(
355355<root BTCPP_format="4" >
356356
357- <BehaviorTree ID="Tree1">
358- <Sequence>
359- <SetBlackboard output_key="the_message" value="hello world"/>
360- <SubTree ID="Tree2" _autoremap="true"/>
361- <SaySomething message="{reply}" />
362- </Sequence>
363- </BehaviorTree>
364-
365- <BehaviorTree ID="Tree2">
366- <SubTree ID="Tree3" _autoremap="true"/>
367- </BehaviorTree>
368-
369- <BehaviorTree ID="Tree3">
370- <SubTree ID="Talker" _autoremap="true"/>
371- </BehaviorTree>
372-
373- <BehaviorTree ID="Talker">
374- <Sequence>
375- <SaySomething message="{the_message}" />
376- <Script code=" reply:='done' "/>
377- <NaughtyNav2Node/>
378- </Sequence>
379- </BehaviorTree>
357+ <BehaviorTree ID="Tree1">
358+ <Sequence>
359+ <SetBlackboard output_key="the_message" value="hello world"/>
360+ <SubTree ID="Tree2" _autoremap="true"/>
361+ <SaySomething message="{reply}" />
362+ </Sequence>
363+ </BehaviorTree>
364+
365+ <BehaviorTree ID="Tree2">
366+ <SubTree ID="Tree3" _autoremap="true"/>
367+ </BehaviorTree>
368+
369+ <BehaviorTree ID="Tree3">
370+ <SubTree ID="Talker" _autoremap="true"/>
371+ </BehaviorTree>
372+
373+ <BehaviorTree ID="Talker">
374+ <Sequence>
375+ <SaySomething message="{the_message}" />
376+ <Script code=" reply:='done' "/>
377+ <NaughtyNav2Node/>
378+ </Sequence>
379+ </BehaviorTree>
380380
381381</root>)" ;
382382
@@ -395,6 +395,49 @@ TEST(SubTree, SubtreeIssue563)
395395 ASSERT_EQ (ret, NodeStatus::SUCCESS);
396396}
397397
398+ TEST (SubTree, SubtreeNav2_Issue724)
399+ {
400+
401+ static const char * xml_text = R"(
402+ <root BTCPP_format="4" >
403+
404+ <BehaviorTree ID="Tree1">
405+ <Sequence>
406+ <SubTreePlus ID="Tree2" ros_node="{ros_node}"/>
407+ </Sequence>
408+ </BehaviorTree>
409+
410+ <BehaviorTree ID="Tree2">
411+ <SubTreePlus ID="Tree3" ros_node="{ros_node}"/>
412+ </BehaviorTree>
413+
414+ <BehaviorTree ID="Tree3">
415+ <SubTreePlus ID="Talker" ros_node="{ros_node}"/>
416+ </BehaviorTree>
417+
418+ <BehaviorTree ID="Talker">
419+ <Sequence>
420+ <NaughtyNav2Node/>
421+ </Sequence>
422+ </BehaviorTree>
423+
424+ </root>)" ;
425+
426+ BehaviorTreeFactory factory;
427+ factory.registerNodeType <NaughtyNav2Node>(" NaughtyNav2Node" );
428+
429+ factory.registerBehaviorTreeFromText (xml_text);
430+
431+ auto blackboard = BT::Blackboard::create ();
432+ blackboard->set <std::string>(" ros_node" , " nav2_shouldnt_do_this" );
433+
434+ Tree tree = factory.createTree (" Tree1" , blackboard);
435+
436+ auto ret = tree.tickOnce ();
437+ ASSERT_EQ (ret, NodeStatus::SUCCESS);
438+ }
439+
440+
398441
399442TEST (SubTree, SubtreeIssue592)
400443{
0 commit comments