[hal,wpilib] Rename "Test" robot mode to "Utility" (#8782)

The "Utility" name better matches its intended generic use case and
avoids overloaded terminology with unit testing (e.g. the need to name
the opmode annotation `@TestOpMode`).

The driver station will also be updated to reflect this change.
This commit is contained in:
Peter Johnson
2026-04-20 20:29:25 -07:00
committed by GitHub
parent 14d14e4ebc
commit ab00aac960
111 changed files with 487 additions and 488 deletions

View File

@@ -33,6 +33,6 @@ public final class MockHardwareExtension implements BeforeAllCallback {
HAL.initialize(500, 0);
DriverStationSim.setDsAttached(true);
DriverStationSim.setEnabled(true);
DriverStationSim.setRobotMode(RobotMode.TEST);
DriverStationSim.setRobotMode(RobotMode.UTILITY);
}
}

View File

@@ -125,7 +125,7 @@ class OpModeRobotTest {
Color.BLACK);
addOpModeFactory(
() -> new OneArgOpMode(this),
RobotMode.TEST,
RobotMode.UTILITY,
"OneArgOpMode-Test",
"Group",
"Description",

View File

@@ -23,19 +23,19 @@ class TimedRobotTest {
public final AtomicInteger m_disabledInitCount = new AtomicInteger(0);
public final AtomicInteger m_autonomousInitCount = new AtomicInteger(0);
public final AtomicInteger m_teleopInitCount = new AtomicInteger(0);
public final AtomicInteger m_testInitCount = new AtomicInteger(0);
public final AtomicInteger m_utilityInitCount = new AtomicInteger(0);
public final AtomicInteger m_robotPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_simulationPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_disabledPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_autonomousPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_teleopPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_testPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_utilityPeriodicCount = new AtomicInteger(0);
public final AtomicInteger m_disabledExitCount = new AtomicInteger(0);
public final AtomicInteger m_autonomousExitCount = new AtomicInteger(0);
public final AtomicInteger m_teleopExitCount = new AtomicInteger(0);
public final AtomicInteger m_testExitCount = new AtomicInteger(0);
public final AtomicInteger m_utilityExitCount = new AtomicInteger(0);
MockRobot() {
super(kPeriod);
@@ -62,8 +62,8 @@ class TimedRobotTest {
}
@Override
public void testInit() {
m_testInitCount.addAndGet(1);
public void utilityInit() {
m_utilityInitCount.addAndGet(1);
}
@Override
@@ -92,8 +92,8 @@ class TimedRobotTest {
}
@Override
public void testPeriodic() {
m_testPeriodicCount.addAndGet(1);
public void utilityPeriodic() {
m_utilityPeriodicCount.addAndGet(1);
}
@Override
@@ -112,8 +112,8 @@ class TimedRobotTest {
}
@Override
public void testExit() {
m_testExitCount.addAndGet(1);
public void utilityExit() {
m_utilityExitCount.addAndGet(1);
}
}
@@ -145,19 +145,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_robotPeriodicCount.get());
assertEquals(0, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -165,19 +165,19 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_robotPeriodicCount.get());
assertEquals(1, robot.m_simulationPeriodicCount.get());
assertEquals(1, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -185,19 +185,19 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(2, robot.m_robotPeriodicCount.get());
assertEquals(2, robot.m_simulationPeriodicCount.get());
assertEquals(2, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
robot.endCompetition();
try {
@@ -226,19 +226,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_robotPeriodicCount.get());
assertEquals(0, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -246,19 +246,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_robotPeriodicCount.get());
assertEquals(1, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(1, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -266,19 +266,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(2, robot.m_robotPeriodicCount.get());
assertEquals(2, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(2, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
robot.endCompetition();
try {
@@ -307,19 +307,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_robotPeriodicCount.get());
assertEquals(0, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -327,19 +327,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(1, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_robotPeriodicCount.get());
assertEquals(1, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(1, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -347,19 +347,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(1, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(2, robot.m_robotPeriodicCount.get());
assertEquals(2, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(2, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
robot.endCompetition();
try {
@@ -373,7 +373,7 @@ class TimedRobotTest {
@Test
@ResourceLock("timing")
void testModeTest() {
void utilityModeTest() {
MockRobot robot = new MockRobot();
Thread robotThread = new Thread(robot::startCompetition);
@@ -381,26 +381,26 @@ class TimedRobotTest {
SimHooks.waitForProgramStart();
DriverStationSim.setEnabled(true);
DriverStationSim.setRobotMode(RobotMode.TEST);
DriverStationSim.setRobotMode(RobotMode.UTILITY);
DriverStationSim.notifyNewData();
assertEquals(1, robot.m_simulationInitCount.get());
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_robotPeriodicCount.get());
assertEquals(0, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(0, robot.m_testPeriodicCount.get());
assertEquals(0, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -408,19 +408,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(1, robot.m_testInitCount.get());
assertEquals(1, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_robotPeriodicCount.get());
assertEquals(1, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(1, robot.m_testPeriodicCount.get());
assertEquals(1, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
@@ -428,19 +428,19 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(1, robot.m_testInitCount.get());
assertEquals(1, robot.m_utilityInitCount.get());
assertEquals(2, robot.m_robotPeriodicCount.get());
assertEquals(2, robot.m_simulationPeriodicCount.get());
assertEquals(0, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(2, robot.m_testPeriodicCount.get());
assertEquals(2, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
DriverStationSim.setEnabled(false);
DriverStationSim.notifyNewData();
@@ -451,19 +451,19 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(1, robot.m_testInitCount.get());
assertEquals(1, robot.m_utilityInitCount.get());
assertEquals(3, robot.m_robotPeriodicCount.get());
assertEquals(3, robot.m_simulationPeriodicCount.get());
assertEquals(1, robot.m_disabledPeriodicCount.get());
assertEquals(0, robot.m_autonomousPeriodicCount.get());
assertEquals(0, robot.m_teleopPeriodicCount.get());
assertEquals(2, robot.m_testPeriodicCount.get());
assertEquals(2, robot.m_utilityPeriodicCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(1, robot.m_testExitCount.get());
assertEquals(1, robot.m_utilityExitCount.get());
robot.endCompetition();
try {
@@ -491,24 +491,24 @@ class TimedRobotTest {
assertEquals(0, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
SimHooks.stepTiming(kPeriod);
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(0, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(0, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
// Transition to autonomous
DriverStationSim.setEnabled(true);
@@ -520,12 +520,12 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(0, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_disabledExitCount.get());
assertEquals(0, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
// Transition to teleop
DriverStationSim.setEnabled(true);
@@ -537,16 +537,16 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(1, robot.m_teleopInitCount.get());
assertEquals(0, robot.m_testInitCount.get());
assertEquals(0, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_disabledExitCount.get());
assertEquals(1, robot.m_autonomousExitCount.get());
assertEquals(0, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
// Transition to test
// Transition to utility
DriverStationSim.setEnabled(true);
DriverStationSim.setRobotMode(RobotMode.TEST);
DriverStationSim.setRobotMode(RobotMode.UTILITY);
DriverStationSim.notifyNewData();
SimHooks.stepTiming(kPeriod);
@@ -554,12 +554,12 @@ class TimedRobotTest {
assertEquals(1, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(1, robot.m_teleopInitCount.get());
assertEquals(1, robot.m_testInitCount.get());
assertEquals(1, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_disabledExitCount.get());
assertEquals(1, robot.m_autonomousExitCount.get());
assertEquals(1, robot.m_teleopExitCount.get());
assertEquals(0, robot.m_testExitCount.get());
assertEquals(0, robot.m_utilityExitCount.get());
// Transition to disabled
DriverStationSim.setEnabled(false);
@@ -570,12 +570,12 @@ class TimedRobotTest {
assertEquals(2, robot.m_disabledInitCount.get());
assertEquals(1, robot.m_autonomousInitCount.get());
assertEquals(1, robot.m_teleopInitCount.get());
assertEquals(1, robot.m_testInitCount.get());
assertEquals(1, robot.m_utilityInitCount.get());
assertEquals(1, robot.m_disabledExitCount.get());
assertEquals(1, robot.m_autonomousExitCount.get());
assertEquals(1, robot.m_teleopExitCount.get());
assertEquals(1, robot.m_testExitCount.get());
assertEquals(1, robot.m_utilityExitCount.get());
robot.endCompetition();
try {

View File

@@ -64,16 +64,16 @@ class DriverStationSimTest {
HAL.initialize(500, 0);
DriverStationSim.resetData();
assertFalse(RobotState.isTest());
assertFalse(RobotState.isUtility());
EnumCallback callback = new EnumCallback();
try (CallbackStore cb = DriverStationSim.registerRobotModeCallback(callback, false)) {
DriverStationSim.setRobotMode(RobotMode.TEST);
DriverStationSim.setRobotMode(RobotMode.UTILITY);
DriverStationSim.notifyNewData();
assertEquals(RobotMode.TEST, DriverStationSim.getRobotMode());
assertTrue(RobotState.isTest());
assertEquals(RobotMode.TEST, RobotState.getRobotMode());
assertEquals(RobotMode.UTILITY, DriverStationSim.getRobotMode());
assertTrue(RobotState.isUtility());
assertEquals(RobotMode.UTILITY, RobotState.getRobotMode());
assertTrue(callback.wasTriggered());
assertEquals(RobotMode.TEST.getValue(), callback.getSetValue());
assertEquals(RobotMode.UTILITY.getValue(), callback.getSetValue());
}
}