diff --git a/core/test/test_container.cpp b/core/test/test_container.cpp index e7165261..0c04f13b 100644 --- a/core/test/test_container.cpp +++ b/core/test/test_container.cpp @@ -671,7 +671,7 @@ TEST(Task, timeout) { EXPECT_EQ(t.solutions().size(), 2u); } -TEST(Fallback, failing) { +TEST(Fallback, failingNoSolutions) { resetMockupIds(); Task t; t.setRobotModel(getModel()); @@ -687,6 +687,22 @@ TEST(Fallback, failing) { EXPECT_EQ(t.solutions().size(), 0u); } +TEST(Fallback, failingWithFailedSolutions) { + resetMockupIds(); + Task t; + t.setRobotModel(getModel()); + + t.add(std::make_unique(PredefinedCosts::single(0.0))); + + auto fallback = std::make_unique("Fallbacks"); + fallback->add(std::make_unique(PredefinedCosts::constant(INF))); + fallback->add(std::make_unique(PredefinedCosts::constant(INF))); + t.add(std::move(fallback)); + + EXPECT_FALSE(t.plan()); + EXPECT_EQ(t.solutions().size(), 0u); +} + TEST(Fallback, DISABLED_ConnectStageInsideFallbacks) { resetMockupIds(); Task t;