mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 15:44:36 +00:00
Allow stress tests to be quarantined.
This commit is contained in:
parent
b34b1a70fa
commit
867997f398
2 changed files with 29 additions and 7 deletions
|
|
@ -69,12 +69,24 @@ class TorqueUnitTestListener : public ::testing::EmptyTestEventListener
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
DefineConsoleFunction( runAllUnitTests, int, (),,
|
DefineConsoleFunction( runAllUnitTests, int, (bool includeStressTests), (false),
|
||||||
"" )
|
"Runs all engine unit tests. Some tests are marked as 'stress' tests which do "
|
||||||
|
"not necessarily check correctness, just performance or possible nondeterministic "
|
||||||
|
"glitches. These tests can take some time, so they are not included unless "
|
||||||
|
"specified.\n\n"
|
||||||
|
"@param includeStressTests Run stress tests as well as unit tests. Default is false." )
|
||||||
{
|
{
|
||||||
// Set-up some empty arguments.
|
|
||||||
S32 testArgc = 0;
|
S32 testArgc = 0;
|
||||||
char** testArgv = NULL;
|
char** testArgv = NULL;
|
||||||
|
if ( includeStressTests )
|
||||||
|
{
|
||||||
|
// Yes, I never free this memory, because it seems to be mangled by gtest.
|
||||||
|
// Also it's a negligible space leak that will only occur once.
|
||||||
|
testArgv = new char*[2];
|
||||||
|
testArgv[0] = new char( '\0' );
|
||||||
|
testArgv[1] = new char[26];
|
||||||
|
dStrcpy( testArgv[1], "--gtest_filter=-*Stress.*" );
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize Google Test.
|
// Initialize Google Test.
|
||||||
testing::InitGoogleTest( &testArgc, testArgv );
|
testing::InitGoogleTest( &testArgc, testArgv );
|
||||||
|
|
|
||||||
|
|
@ -27,16 +27,26 @@
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
/// Convenience to define a test fixture with a Fixture suffix for use with
|
||||||
|
/// TEST_FIX.
|
||||||
|
#define FIXTURE(test_fixture)\
|
||||||
|
class test_fixture##Fixture : public ::testing::Test
|
||||||
|
|
||||||
/// Allow test fixtures named with a Fixture suffix, so that we can name tests
|
/// Allow test fixtures named with a Fixture suffix, so that we can name tests
|
||||||
/// after a class name rather than having to call them XXTest.
|
/// after a class name rather than having to call them XXTest.
|
||||||
#define TEST_FIX(test_fixture, test_name)\
|
#define TEST_FIX(test_fixture, test_name)\
|
||||||
GTEST_TEST_(test_fixture, test_name, test_fixture##Fixture, \
|
GTEST_TEST_(test_fixture, test_name, test_fixture##Fixture, \
|
||||||
::testing::internal::GetTypeId<test_fixture##Fixture>())
|
::testing::internal::GetTypeId<test_fixture##Fixture>())
|
||||||
|
|
||||||
/// Convenience to define a test fixture with a Fixture suffix for use with
|
/// Define a stress test. The test name is suffixed with Stress, so it will be
|
||||||
/// TEST_FIX.
|
/// excluded from normal unit test runs.
|
||||||
#define FIXTURE(test_fixture)\
|
#define TEST_STRESS(test_case_name, test_name)\
|
||||||
class test_fixture##Fixture : public ::testing::Test
|
TEST(test_case_name##Stress, test_name)
|
||||||
|
|
||||||
|
/// Define a stress test with a fixture.
|
||||||
|
#define TEST_STRESS_FIX(test_fixture, test_name)\
|
||||||
|
GTEST_TEST_(test_fixture##Stress, test_name, test_fixture##Fixture, \
|
||||||
|
::testing::internal::GetTypeId<test_fixture##Fixture>())
|
||||||
|
|
||||||
#endif // TORQUE_TESTS_ENABLED
|
#endif // TORQUE_TESTS_ENABLED
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue