int i;
struct subtest_state *subtest_state;
bool subtest_failed;
+ bool subtest_filtered;
bool print_subtest;
/* we do not print anything in the worker thread */
for (i = 0; i < test_state->subtest_num; i++) {
subtest_state = &test_state->subtest_states[i];
subtest_failed = subtest_state->error_cnt;
+ subtest_filtered = subtest_state->filtered;
print_subtest = verbose() || force_log || subtest_failed;
- if (skip_ok_subtests && !subtest_failed)
+ if ((skip_ok_subtests && !subtest_failed) || subtest_filtered)
continue;
if (subtest_state->log_cnt && print_subtest) {
state->subtest_num,
test->test_name,
subtest_name)) {
- subtest_state->skipped = true;
+ subtest_state->filtered = true;
return false;
}
subtest_state->name = strdup(msg.subtest_done.name);
subtest_state->error_cnt = msg.subtest_done.error_cnt;
subtest_state->skipped = msg.subtest_done.skipped;
+ subtest_state->filtered = msg.subtest_done.filtered;
/* collect all logs */
if (msg.subtest_done.have_log)
msg.subtest_done.error_cnt = subtest_state->error_cnt;
msg.subtest_done.skipped = subtest_state->skipped;
+ msg.subtest_done.filtered = subtest_state->filtered;
msg.subtest_done.have_log = false;
if (verbose() || state->force_log || subtest_state->error_cnt) {