optimal & fix file cmake
This commit is contained in:
@@ -44,7 +44,12 @@ struct Rig
|
||||
{
|
||||
runner.setNamespace(ns);
|
||||
robot::NodeHandle nh;
|
||||
return runner.configure(nh);
|
||||
if (!runner.configure(nh))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
std::string error;
|
||||
return runner.configureRoutes(nh, error);
|
||||
}
|
||||
|
||||
FakeClockPort clock{1000.0};
|
||||
@@ -62,6 +67,40 @@ TEST(RecoveryRunner, LoadsBehaviorsInDeclaredOrder)
|
||||
EXPECT_EQ(rig.runner.behaviorName(1), "wait_long");
|
||||
}
|
||||
|
||||
TEST(RecoveryRunner, ResolvesPerTriggerRoutesByBehaviorName)
|
||||
{
|
||||
Rig rig;
|
||||
ASSERT_TRUE(rig.load("recovery"));
|
||||
|
||||
const move_base2::RecoveryRoutes& routes = rig.runner.routes();
|
||||
ASSERT_EQ(routes.planning_failed.size(), 1u);
|
||||
EXPECT_EQ(routes.planning_failed[0], 0u); // wait_short
|
||||
ASSERT_EQ(routes.controlling_failed.size(), 2u);
|
||||
EXPECT_EQ(routes.controlling_failed[0], 1u); // wait_long
|
||||
EXPECT_EQ(routes.controlling_failed[1], 0u); // wait_short
|
||||
ASSERT_EQ(routes.oscillation.size(), 1u);
|
||||
EXPECT_EQ(routes.oscillation[0], 1u); // wait_long
|
||||
}
|
||||
|
||||
TEST(RecoveryRunner, SkipsFuturePluginFromRoutesWithoutCreatingInvalidIndexes)
|
||||
{
|
||||
Rig rig;
|
||||
rig.runner.setNamespace("recovery_missing_detour");
|
||||
robot::NodeHandle nh;
|
||||
|
||||
// Registry báo false vì plugin chưa có, nhưng wait vẫn được nạp và phải dùng được.
|
||||
EXPECT_FALSE(rig.runner.configure(nh));
|
||||
ASSERT_EQ(rig.runner.behaviorCount(), 1u);
|
||||
|
||||
std::string error;
|
||||
ASSERT_TRUE(rig.runner.configureRoutes(nh, error)) << error;
|
||||
const move_base2::RecoveryRoutes& routes = rig.runner.routes();
|
||||
ASSERT_EQ(routes.controlling_failed.size(), 1u);
|
||||
EXPECT_EQ(routes.controlling_failed[0], 0u);
|
||||
ASSERT_EQ(routes.oscillation.size(), 1u);
|
||||
EXPECT_EQ(routes.oscillation[0], 0u);
|
||||
}
|
||||
|
||||
TEST(RecoveryRunner, ReportsOutputKindOfLoadedBehaviors)
|
||||
{
|
||||
Rig rig;
|
||||
@@ -210,7 +249,8 @@ TEST(RecoveryRunner, ConfigureRequiresClockAndPose)
|
||||
runner.setNamespace("recovery");
|
||||
|
||||
robot::NodeHandle nh;
|
||||
EXPECT_FALSE(runner.configure(nh)) << "thiếu ClockPort/PosePort phải hỏng ngay, không phải lúc tick";
|
||||
EXPECT_FALSE(runner.configure(nh)) << "a missing ClockPort/PosePort must fail right away, not at "
|
||||
"tick time";
|
||||
}
|
||||
|
||||
TEST(RecoveryRunner, ConfigureTwiceRejected)
|
||||
|
||||
Reference in New Issue
Block a user