Refactored a bit. Extracted the code which checks for
test suite selection to a function.
This commit is contained in:
parent
16254c328a
commit
5379420c8a
1 changed files with 43 additions and 28 deletions
|
@ -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[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* 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[])
|
||||||
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[])
|
||||||
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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue