mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[commands] Add test for subsystem registration and periodic (#5408)
This commit is contained in:
@@ -19,7 +19,15 @@
|
||||
|
||||
namespace frc2 {
|
||||
|
||||
class TestSubsystem : public SubsystemBase {};
|
||||
class TestSubsystem : public SubsystemBase {
|
||||
public:
|
||||
explicit TestSubsystem(std::function<void()> periodic = [] {})
|
||||
: m_periodic{periodic} {}
|
||||
void Periodic() override { m_periodic(); }
|
||||
|
||||
private:
|
||||
std::function<void()> m_periodic;
|
||||
};
|
||||
|
||||
/**
|
||||
* NOTE: Moving mock objects causes EXPECT_CALL to not work correctly!
|
||||
|
||||
@@ -43,14 +43,30 @@ TEST_F(SchedulerTest, SchedulerLambdaInterrupt) {
|
||||
EXPECT_EQ(counter, 1);
|
||||
}
|
||||
|
||||
TEST_F(SchedulerTest, RegisterSubsystem) {
|
||||
CommandScheduler scheduler = GetScheduler();
|
||||
|
||||
int counter = 0;
|
||||
TestSubsystem system{[&counter] { counter++; }};
|
||||
|
||||
EXPECT_NO_FATAL_FAILURE(scheduler.RegisterSubsystem(&system));
|
||||
|
||||
scheduler.Run();
|
||||
EXPECT_EQ(counter, 1);
|
||||
}
|
||||
|
||||
TEST_F(SchedulerTest, UnregisterSubsystem) {
|
||||
CommandScheduler scheduler = GetScheduler();
|
||||
|
||||
TestSubsystem system;
|
||||
int counter = 0;
|
||||
TestSubsystem system{[&counter] { counter++; }};
|
||||
|
||||
scheduler.RegisterSubsystem(&system);
|
||||
|
||||
EXPECT_NO_FATAL_FAILURE(scheduler.UnregisterSubsystem(&system));
|
||||
|
||||
scheduler.Run();
|
||||
ASSERT_EQ(counter, 0);
|
||||
}
|
||||
|
||||
TEST_F(SchedulerTest, SchedulerCancelAll) {
|
||||
|
||||
Reference in New Issue
Block a user