mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
Adds a test to make sure WaitForData is properly waiting (#258)
This commit is contained in:
committed by
Peter Johnson
parent
7070162b98
commit
a59e00e901
33
wpilibcIntegrationTests/src/DriverStationTest.cpp
Normal file
33
wpilibcIntegrationTests/src/DriverStationTest.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2014-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "DriverStation.h" // NOLINT(build/include_order)
|
||||
|
||||
#include "TestBench.h"
|
||||
#include "Utility.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
constexpr double TIMER_TOLERANCE = 0.2;
|
||||
constexpr int64_t TIMER_RUNTIME = 1000000; // 1 second
|
||||
|
||||
class DriverStationTest : public testing::Test {};
|
||||
|
||||
/**
|
||||
* Test if the WaitForData function works
|
||||
*/
|
||||
TEST_F(DriverStationTest, WaitForData) {
|
||||
uint64_t initialTime = GetFPGATime();
|
||||
|
||||
for (int i = 0; i < 50; i++) {
|
||||
DriverStation::GetInstance().WaitForData();
|
||||
}
|
||||
|
||||
uint64_t finalTime = GetFPGATime();
|
||||
|
||||
EXPECT_NEAR(TIMER_RUNTIME, finalTime - initialTime,
|
||||
TIMER_TOLERANCE * TIMER_RUNTIME);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
package edu.wpi.first.wpilibj;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import edu.wpi.first.wpilibj.test.AbstractComsSetup;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
|
||||
public class DriverStationTest extends AbstractComsSetup {
|
||||
private static final Logger logger = Logger.getLogger(TimerTest.class.getName());
|
||||
private static final double TIMER_TOLERANCE = 0.2;
|
||||
private static final long TIMER_RUNTIME = 1000000; // 1 second
|
||||
|
||||
@Override
|
||||
protected Logger getClassLogger() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void waitForDataTest() {
|
||||
long startTime = Utility.getFPGATime();
|
||||
|
||||
// Wait for data 50 times
|
||||
for (int i = 0; i < 50; i++) {
|
||||
DriverStation.getInstance().waitForData();
|
||||
}
|
||||
long endTime = Utility.getFPGATime();
|
||||
long difference = endTime - startTime;
|
||||
|
||||
assertEquals("DriverStation waitForData did not wait long enough", TIMER_RUNTIME, difference,
|
||||
TIMER_TOLERANCE * TIMER_RUNTIME);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,10 +21,10 @@ import edu.wpi.first.wpilibj.test.AbstractTestSuite;
|
||||
@SuiteClasses({AnalogCrossConnectTest.class, AnalogPotentiometerTest.class,
|
||||
BuiltInAccelerometerTest.class, CANTalonTest.class,
|
||||
CircularBufferTest.class, ConstantsPortsTest.class, CounterTest.class,
|
||||
DigitalGlitchFilterTest.class, DIOCrossConnectTest.class, EncoderTest.class,
|
||||
FilterNoiseTest.class, FilterOutputTest.class, GyroTest.class, MotorEncoderTest.class,
|
||||
MotorInvertingTest.class, PCMTest.class, PDPTest.class, PIDTest.class,
|
||||
PIDToleranceTest.class, PreferencesTest.class, RelayCrossConnectTest.class,
|
||||
DigitalGlitchFilterTest.class, DIOCrossConnectTest.class, DriverStationTest.class,
|
||||
EncoderTest.class, FilterNoiseTest.class, FilterOutputTest.class, GyroTest.class,
|
||||
MotorEncoderTest.class, MotorInvertingTest.class, PCMTest.class, PDPTest.class,
|
||||
PIDTest.class, PIDToleranceTest.class, PreferencesTest.class, RelayCrossConnectTest.class,
|
||||
SampleTest.class, TimerTest.class})
|
||||
public class WpiLibJTestSuite extends AbstractTestSuite {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user