diff options
author | Petri Latvala <petri.latvala@intel.com> | 2018-10-03 16:08:45 +0300 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2018-10-04 14:03:20 +0300 |
commit | 48432b44832c382f5001238524c9f888f34a8f24 (patch) | |
tree | 7ef19f0d9e7677125a5e0b2a44c32f3e1e1eb388 /runner/executor.c | |
parent | bba38422e7f903094562f1b78cc3579683c0a667 (diff) |
runner: Don't try to execute an empty set of subtests
If we resume a test run with igt_resume, or if resume is done
automatically from a test timeout, the runner will execute the last
attempted test with the subtest selection set to original set minus
the subtests already journaled to have started. If this results in an
empty set, we get a harmless but misleading message from the test
saying
"igt_core-WARNING: Unknown subtest: subtest-name,!subtest-name"
If the journal already contains as many subtests as we have requested
(when we know the set), assume we have them all already and move to
the next job list entry instead.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'runner/executor.c')
-rw-r--r-- | runner/executor.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/runner/executor.c b/runner/executor.c index 4552b02c..8b87a421 100644 --- a/runner/executor.c +++ b/runner/executor.c @@ -140,7 +140,8 @@ static bool prune_from_journal(struct job_list_entry *entry, int fd) { char *subtest; FILE *f; - bool any_pruned = false; + size_t pruned = 0; + size_t old_count = entry->subtest_count; /* * Each journal line is a subtest that has been started, or @@ -169,11 +170,19 @@ static bool prune_from_journal(struct job_list_entry *entry, int fd) prune_subtest(entry, subtest); free(subtest); - any_pruned = true; + pruned++; } fclose(f); - return any_pruned; + + /* + * If we know the subtests we originally wanted to run, check + * if we got an equal amount already. + */ + if (old_count > 0 && pruned >= old_count) + entry->binary[0] = '\0'; + + return pruned > 0; } static const char *filenames[_F_LAST] = { |