diff --git a/wpilibc/wpilibC++IntegrationTests/src/TestEnvironment.cpp b/wpilibc/wpilibC++IntegrationTests/src/TestEnvironment.cpp index 94d7a56e4d..fde45f97f9 100644 --- a/wpilibc/wpilibC++IntegrationTests/src/TestEnvironment.cpp +++ b/wpilibc/wpilibC++IntegrationTests/src/TestEnvironment.cpp @@ -9,17 +9,26 @@ #include "WPILib.h" class TestEnvironment : public testing::Environment { + bool m_alreadySetUp; + public: + TestEnvironment(): m_alreadySetUp(false) {} + virtual void SetUp() { + /* Only set up once. This allows gtest_repeat to be used to + automatically repeat tests. */ + if(m_alreadySetUp) return; + m_alreadySetUp = true; + if(!HALInitialize()) { std::cerr << "FATAL ERROR: HAL could not be initialized" << std::endl; exit(-1); } /* This sets up the network communications library to enable the driver - station. After starting network coms, it will loop until the driver - station returns that the robot is enabled, to ensure that tests will be - able to run on the hardware. */ + station. After starting network coms, it will loop until the driver + station returns that the robot is enabled, to ensure that tests + will be able to run on the hardware. */ HALNetworkCommunicationObserveUserProgramStarting(); LiveWindow::GetInstance()->SetEnabled(false);