MCPcopy Create free account
hub / github.com/BehaviorTree/BehaviorTree.CPP / TEST

Function TEST

tests/gtest_substitution.cpp:35–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33} // namespace
34
35TEST(Substitution, Parser)
36{
37 BehaviorTreeFactory factory;
38
39 factory.loadSubstitutionRuleFromJSON(json_text);
40
41 const auto& rules = factory.substitutionRules();
42
43 ASSERT_EQ(rules.size(), 3);
44 ASSERT_EQ(rules.count("actionA"), 1);
45 ASSERT_EQ(rules.count("actionB"), 1);
46 ASSERT_EQ(rules.count("actionC"), 1);
47
48 auto configA = std::get_if<TestNodeConfig>(&rules.at("actionA"));
49 ASSERT_EQ(configA->return_status, NodeStatus::SUCCESS);
50 ASSERT_EQ(configA->async_delay, std::chrono::milliseconds(2000));
51 ASSERT_EQ(configA->post_script, "msg ='message SUBSTITUED'");
52
53 auto configB = std::get_if<TestNodeConfig>(&rules.at("actionB"));
54 ASSERT_EQ(configB->return_status, NodeStatus::FAILURE);
55 ASSERT_EQ(configB->async_delay, std::chrono::milliseconds(0));
56 ASSERT_TRUE(configB->post_script.empty());
57
58 ASSERT_EQ(*std::get_if<std::string>(&rules.at("actionC")), "NotAConfig");
59}
60
61// Regression test for issue #934: segfault when substituting a SubTree node
62TEST(Substitution, SubTreeNodeSubstitution)

Callers

nothing calls this directly

Calls 9

addSubstitutionRuleMethod · 0.80
createTreeMethod · 0.80
tickWhileRunningMethod · 0.80
registerSimpleActionMethod · 0.80
sizeMethod · 0.45
emptyMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected