From b86c747226d16f01596c8c455ede72dfd6141d80 Mon Sep 17 00:00:00 2001 From: Thomas Clark Date: Tue, 5 Aug 2014 09:26:57 -0400 Subject: [PATCH] Only set up once in the C++ tests TestEnvironment::SetUp() will only initialize the first time it's called. This allows the --gtest_repeat flag to be used to automatically repeat the tests. Change-Id: I20c857a37a88f48114d74ae68518d4a9d724d012 --- .../src/TestEnvironment.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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);