Test cases executed in their own process can now bail out if
assertion fails. Note: Bailing out doesn't work with --in-proc option.
This commit is contained in:
parent
103124ac9f
commit
87e1417923
4 changed files with 23 additions and 5 deletions
|
@ -69,7 +69,7 @@ typedef struct TestCaseReference {
|
||||||
*
|
*
|
||||||
* \param execKey Execution key for the test
|
* \param execKey Execution key for the test
|
||||||
*/
|
*/
|
||||||
void _InitTestEnvironment(Uint64 execKey);
|
void _InitTestEnvironment(Uint64 execKey, SDL_bool inproc);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Deinitializes the test environment and
|
* Deinitializes the test environment and
|
||||||
|
|
|
@ -40,11 +40,16 @@ int _testAssertsFailed;
|
||||||
/*! \brief counts the passed asserts */
|
/*! \brief counts the passed asserts */
|
||||||
int _testAssertsPassed;
|
int _testAssertsPassed;
|
||||||
|
|
||||||
|
/*! \brief is the execution done in-process? */
|
||||||
|
SDL_bool canBailOut;
|
||||||
|
|
||||||
void
|
void
|
||||||
_InitTestEnvironment(Uint64 execKey)
|
_InitTestEnvironment(Uint64 execKey, SDL_bool inproc)
|
||||||
{
|
{
|
||||||
InitFuzzer(execKey);
|
InitFuzzer(execKey);
|
||||||
|
|
||||||
|
canBailOut = inproc == 0;
|
||||||
|
|
||||||
_testReturnValue = TEST_RESULT_PASS;
|
_testReturnValue = TEST_RESULT_PASS;
|
||||||
_testAssertsFailed = 0;
|
_testAssertsFailed = 0;
|
||||||
_testAssertsPassed = 0;
|
_testAssertsPassed = 0;
|
||||||
|
@ -87,7 +92,10 @@ AssertEquals(int expected, int actual, char *message, ...)
|
||||||
|
|
||||||
_testReturnValue = TEST_RESULT_FAILURE;
|
_testReturnValue = TEST_RESULT_FAILURE;
|
||||||
_testAssertsFailed++;
|
_testAssertsFailed++;
|
||||||
} else {
|
|
||||||
|
if(canBailOut)
|
||||||
|
exit(TEST_RESULT_FAILURE); // bail out from the test
|
||||||
|
} else {
|
||||||
AssertWithValues("AssertEquals", 1, buf,
|
AssertWithValues("AssertEquals", 1, buf,
|
||||||
actual, expected, time(0));
|
actual, expected, time(0));
|
||||||
|
|
||||||
|
@ -95,6 +103,7 @@ AssertEquals(int expected, int actual, char *message, ...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AssertTrue(int condition, char *message, ...)
|
AssertTrue(int condition, char *message, ...)
|
||||||
{
|
{
|
||||||
|
@ -109,6 +118,9 @@ AssertTrue(int condition, char *message, ...)
|
||||||
|
|
||||||
_testReturnValue = TEST_RESULT_FAILURE;
|
_testReturnValue = TEST_RESULT_FAILURE;
|
||||||
_testAssertsFailed++;
|
_testAssertsFailed++;
|
||||||
|
|
||||||
|
if(canBailOut)
|
||||||
|
exit(TEST_RESULT_FAILURE); // bail out from the test
|
||||||
} else {
|
} else {
|
||||||
Assert("AssertTrue", 1, buf, time(0));
|
Assert("AssertTrue", 1, buf, time(0));
|
||||||
|
|
||||||
|
@ -131,6 +143,7 @@ AssertPass(char *message, ...)
|
||||||
_testAssertsPassed++;
|
_testAssertsPassed++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AssertFail(char *message, ...)
|
AssertFail(char *message, ...)
|
||||||
{
|
{
|
||||||
|
@ -145,5 +158,8 @@ AssertFail(char *message, ...)
|
||||||
|
|
||||||
_testReturnValue = TEST_RESULT_FAILURE;
|
_testReturnValue = TEST_RESULT_FAILURE;
|
||||||
_testAssertsFailed++;
|
_testAssertsFailed++;
|
||||||
|
|
||||||
|
if(canBailOut)
|
||||||
|
exit(TEST_RESULT_FAILURE); // bail out from the test
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
//!< Function pointer to a test case function
|
//!< Function pointer to a test case function
|
||||||
typedef void (*TestCaseFp)(void *arg);
|
typedef void (*TestCaseFp)(void *arg);
|
||||||
//!< Function pointer to a test case init function
|
//!< Function pointer to a test case init function
|
||||||
typedef void (*InitTestInvironmentFp)(Uint64);
|
typedef void (*InitTestInvironmentFp)(Uint64, SDL_bool);
|
||||||
//!< Function pointer to a test case quit function
|
//!< Function pointer to a test case quit function
|
||||||
typedef int (*QuitTestInvironmentFp)(void);
|
typedef int (*QuitTestInvironmentFp)(void);
|
||||||
//!< Function pointer to a test case set up function
|
//!< Function pointer to a test case set up function
|
||||||
|
@ -825,7 +825,7 @@ RunTest(TestCase *testCase, Uint64 execKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testCase->initTestEnvironment(execKey);
|
testCase->initTestEnvironment(execKey, execute_inproc);
|
||||||
|
|
||||||
if(testCase->testSetUp) {
|
if(testCase->testSetUp) {
|
||||||
testCase->testSetUp(0x0);
|
testCase->testSetUp(0x0);
|
||||||
|
|
|
@ -142,6 +142,8 @@ test_dummy2(void *arg)
|
||||||
char *msg = "eello";
|
char *msg = "eello";
|
||||||
//msg[0] = 'H';
|
//msg[0] = 'H';
|
||||||
AssertTrue(1, "Assert message");
|
AssertTrue(1, "Assert message");
|
||||||
|
AssertTrue(0, "Assert message");
|
||||||
|
AssertTrue(1, "Assert message");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue