mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpilib] Refactor TimedRobot tests (#5068)
This commit is contained in:
@@ -21,6 +21,8 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
class TimedRobotTest {
|
||||
static final double kPeriod = 0.02;
|
||||
|
||||
static class MockRobot extends TimedRobot {
|
||||
public final AtomicInteger m_robotInitCount = new AtomicInteger(0);
|
||||
public final AtomicInteger m_simulationInitCount = new AtomicInteger(0);
|
||||
@@ -41,6 +43,10 @@ class TimedRobotTest {
|
||||
public final AtomicInteger m_teleopExitCount = new AtomicInteger(0);
|
||||
public final AtomicInteger m_testExitCount = new AtomicInteger(0);
|
||||
|
||||
MockRobot() {
|
||||
super(kPeriod);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void robotInit() {
|
||||
m_robotInitCount.addAndGet(1);
|
||||
@@ -168,7 +174,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -189,7 +195,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -257,7 +263,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -278,7 +284,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -346,7 +352,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -367,7 +373,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -438,7 +444,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -459,7 +465,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_robotInitCount.get());
|
||||
assertEquals(1, robot.m_simulationInitCount.get());
|
||||
@@ -549,7 +555,7 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_teleopExitCount.get());
|
||||
assertEquals(0, robot.m_testExitCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(0, robot.m_autonomousInitCount.get());
|
||||
@@ -567,7 +573,7 @@ class TimedRobotTest {
|
||||
DriverStationSim.setTest(false);
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_autonomousInitCount.get());
|
||||
@@ -585,7 +591,7 @@ class TimedRobotTest {
|
||||
DriverStationSim.setTest(false);
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_autonomousInitCount.get());
|
||||
@@ -603,7 +609,7 @@ class TimedRobotTest {
|
||||
DriverStationSim.setTest(true);
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_autonomousInitCount.get());
|
||||
@@ -621,7 +627,7 @@ class TimedRobotTest {
|
||||
DriverStationSim.setTest(false);
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
SimHooks.stepTiming(0.02);
|
||||
SimHooks.stepTiming(kPeriod);
|
||||
|
||||
assertEquals(2, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_autonomousInitCount.get());
|
||||
@@ -653,7 +659,7 @@ class TimedRobotTest {
|
||||
() -> {
|
||||
callbackCount.addAndGet(1);
|
||||
},
|
||||
0.01);
|
||||
kPeriod / 2.0);
|
||||
|
||||
Thread robotThread =
|
||||
new Thread(
|
||||
@@ -670,13 +676,13 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(0, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.01);
|
||||
SimHooks.stepTiming(kPeriod / 2.0);
|
||||
|
||||
assertEquals(0, robot.m_disabledInitCount.get());
|
||||
assertEquals(0, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(1, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.01);
|
||||
SimHooks.stepTiming(kPeriod / 2.0);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_disabledPeriodicCount.get());
|
||||
@@ -702,15 +708,17 @@ class TimedRobotTest {
|
||||
() -> {
|
||||
callbackCount.addAndGet(1);
|
||||
},
|
||||
0.01,
|
||||
0.005);
|
||||
kPeriod / 2.0,
|
||||
kPeriod / 4.0);
|
||||
|
||||
// Expirations in this test (ms)
|
||||
//
|
||||
// Let p be period in ms.
|
||||
//
|
||||
// Robot | Callback
|
||||
// ================
|
||||
// 20 | 15
|
||||
// 40 | 25
|
||||
// p | 0.75p
|
||||
// 2p | 1.25p
|
||||
|
||||
Thread robotThread =
|
||||
new Thread(
|
||||
@@ -727,25 +735,25 @@ class TimedRobotTest {
|
||||
assertEquals(0, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(0, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.0075);
|
||||
SimHooks.stepTiming(kPeriod * 3.0 / 8.0);
|
||||
|
||||
assertEquals(0, robot.m_disabledInitCount.get());
|
||||
assertEquals(0, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(0, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.0075);
|
||||
SimHooks.stepTiming(kPeriod * 3.0 / 8.0);
|
||||
|
||||
assertEquals(0, robot.m_disabledInitCount.get());
|
||||
assertEquals(0, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(1, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.005);
|
||||
SimHooks.stepTiming(kPeriod / 4.0);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_disabledPeriodicCount.get());
|
||||
assertEquals(1, callbackCount.get());
|
||||
|
||||
SimHooks.stepTiming(0.005);
|
||||
SimHooks.stepTiming(kPeriod / 4.0);
|
||||
|
||||
assertEquals(1, robot.m_disabledInitCount.get());
|
||||
assertEquals(1, robot.m_disabledPeriodicCount.get());
|
||||
|
||||
Reference in New Issue
Block a user