Commit 5379420c authored by Markus Kauppila's avatar Markus Kauppila

Refactored a bit. Extracted the code which checks for

test suite selection to a function.
parent 16254c32
...@@ -315,8 +315,6 @@ ParseOptions(int argc, char *argv[]) ...@@ -315,8 +315,6 @@ ParseOptions(int argc, char *argv[])
memset(selected_suite_name, 0, NAME_BUFFER_SIZE); memset(selected_suite_name, 0, NAME_BUFFER_SIZE);
strcpy(selected_suite_name, suiteName); strcpy(selected_suite_name, suiteName);
printf("%s\n", selected_suite_name);
} }
else { else {
printf("runner: unknown command '%s'\n", arg); printf("runner: unknown command '%s'\n", arg);
...@@ -327,6 +325,44 @@ ParseOptions(int argc, char *argv[]) ...@@ -327,6 +325,44 @@ ParseOptions(int argc, char *argv[])
} }
/*!
* Tests if the given test suite is selected for execution.
* If only_selected_suite flag is zero, then all the suites are
* automatically selected. If the flags is non-zero, only the suite
* which matches the selected suite is selected.
*
* \param testSuiteName Name of the test suite
*
* \return 1 if given suite is selected, otherwise 0
*/
int
SuiteIsSelected(char *testSuiteName) {
int retVal = 1;
if(only_selected_suite) {
// extract the suite name. Rips the tests/ and file suffix from the suite name
char buffer[NAME_BUFFER_SIZE];
int len = strlen(testSuiteName);
//! \todo Fix this, it's rather horrible way to do it
#define DIR_NAME_LENGTH 6
#if defined(linux) || defined( __linux)
#define FILE_EXT_LENGTH 3
#else
#define FILE_EXT_LENGTH 6
#endif
int length = len - DIR_NAME_LENGTH - FILE_EXT_LENGTH;
memset(buffer, 0, NAME_BUFFER_SIZE);
memcpy(buffer, testSuiteName + 6, length);
retVal = SDL_strncmp(selected_suite_name, buffer, NAME_BUFFER_SIZE) == 0;
}
return retVal;
}
/*! /*!
* Entry point for test runner * Entry point for test runner
* *
...@@ -349,27 +385,9 @@ main(int argc, char *argv[]) ...@@ -349,27 +385,9 @@ main(int argc, char *argv[])
char *testSuiteName = NULL; char *testSuiteName = NULL;
int suiteCounter = 0; int suiteCounter = 0;
for(testSuiteName = testSuiteNames[suiteCounter]; testSuiteName; testSuiteName = testSuiteNames[++suiteCounter]) { for(testSuiteName = testSuiteNames[suiteCounter]; testSuiteName; testSuiteName = testSuiteNames[++suiteCounter]) {
// if the current suite isn't selected, go to next suite
if(only_selected_suite) { if(SuiteIsSelected(testSuiteName) == 0) {
// extract the suite name. Rips the tests/ and file suffix from the suite name continue;
char buffer[NAME_BUFFER_SIZE];
int len = strlen(testSuiteName);
//! \todo Fix this, it's rather horrible way to do it
#define DIR_NAME_LENGTH 6
#if defined(linux) || defined( __linux)
#define FILE_EXT_LENGTH 3
#else
#define FILE_EXT_LENGTH 6
#endif
int length = len - DIR_NAME_LENGTH - FILE_EXT_LENGTH;
memset(buffer, 0, NAME_BUFFER_SIZE);
memcpy(buffer, testSuiteName + 6, length);
if(SDL_strncmp(selected_suite_name, buffer, NAME_BUFFER_SIZE) != 0) {
continue;
}
} }
void *suite = LoadTestSuite(testSuiteName); void *suite = LoadTestSuite(testSuiteName);
...@@ -378,11 +396,8 @@ main(int argc, char *argv[]) ...@@ -378,11 +396,8 @@ main(int argc, char *argv[])
TestCaseReference *reference = NULL; TestCaseReference *reference = NULL;
int counter = 0; int counter = 0;
for(reference = tests[counter]; reference; reference = tests[++counter]) { for(reference = tests[counter]; reference; reference = tests[++counter]) {
if(only_selected_test && SDL_strncmp(selected_test_name, reference->name, NAME_BUFFER_SIZE) != 0) {
if(only_selected_test) { continue;
if(SDL_strncmp(selected_test_name, reference->name, NAME_BUFFER_SIZE) != 0) {
continue;
}
} }
if(reference->enabled == TEST_DISABLED) { if(reference->enabled == TEST_DISABLED) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment