Harness: Add empty test case detection.

Niklas Hauser 2015-11-12 11:39:44 +00:00 committed by Martin Kojtal
parent 2bbf725bcc
commit e2a5d97f77
3 changed files with 13 additions and 0 deletions

View File

@ -70,6 +70,11 @@ Case::get_description() const {
return description;
}
bool
Case::is_empty() const {
return !(handler || control_flow_handler || set_up_handler || tear_down_handler);
}
AsyncCase::AsyncCase(const char *description,
const case_handler_t handler,

View File

@ -31,6 +31,8 @@ const char* failureToString(failure_t failure)
return "Unspecified Failure";
case FAILURE_CASES:
return "Test Cases Failed";
case FAILURE_EMPTY_CASE:
return "Test Case is Empty";
case FAILURE_SETUP:
return "Setup Failed";
case FAILURE_TEARDOWN:

View File

@ -165,6 +165,12 @@ void Harness::run_next_case()
handlers.case_tear_down = defaults.get_handler(case_current->tear_down_handler);
handlers.case_failure = defaults.get_handler(case_current->failure_handler);
if (case_current->is_empty()) {
raise_failure(FAILURE_EMPTY_CASE);
schedule_next_case();
return;
}
if (!case_failed && !case_passed) {
size_t index = test_index_of_case++;
if (handlers.case_set_up && (handlers.case_set_up(case_current, index) != STATUS_CONTINUE)) {