motion: Add tests for unscheduled moves in AbortPlannedMoves
This catches the previously untested #228pull/230/head
parent
0506af08ac
commit
7053755b0e
|
|
@ -271,6 +271,37 @@ TEST_CASE("motion::queue_abort_1", "[motion]") {
|
||||||
REQUIRE(!motion.QueueEmpty());
|
REQUIRE(!motion.QueueEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("motion::queue_abort_2", "[motion]") {
|
||||||
|
// queue should start empty
|
||||||
|
ResetMotionSim();
|
||||||
|
|
||||||
|
// enqueue two moves on a single axis
|
||||||
|
motion.PlanMoveTo(Pulley, 10, 1);
|
||||||
|
motion.PlanMoveTo(Pulley, 20, 1);
|
||||||
|
REQUIRE(!motion.QueueEmpty(Pulley));
|
||||||
|
|
||||||
|
// abort before scheduling and check that both are gone
|
||||||
|
motion.AbortPlannedMoves(Pulley);
|
||||||
|
REQUIRE(motion.QueueEmpty(Pulley));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("motion::queue_abort_3", "[motion]") {
|
||||||
|
// queue should start empty
|
||||||
|
ResetMotionSim();
|
||||||
|
|
||||||
|
// enqueue two moves on a single axis
|
||||||
|
motion.PlanMoveTo(Pulley, 10, 1);
|
||||||
|
motion.PlanMoveTo(Pulley, 20, 1);
|
||||||
|
REQUIRE(!motion.QueueEmpty(Pulley));
|
||||||
|
|
||||||
|
// step ~1/3 way through of the first move
|
||||||
|
REQUIRE(stepUntilDone(3) == -1);
|
||||||
|
|
||||||
|
// abort the partial and unscheduled move
|
||||||
|
motion.AbortPlannedMoves(Pulley);
|
||||||
|
REQUIRE(motion.QueueEmpty(Pulley));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("motion::long_pulley_move", "[motion]") {
|
TEST_CASE("motion::long_pulley_move", "[motion]") {
|
||||||
ResetMotionSim();
|
ResetMotionSim();
|
||||||
constexpr auto mm400 = 400._mm;
|
constexpr auto mm400 = 400._mm;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue