mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Raise a more tailored error message when a third-party test engine returns bad results
Summary: Fixes T8714. When a test engine isn't returning the correct result type, shift suspicion onto it. Test Plan: Faked error, got exception blaming test engine. Reviewers: joshuaspence, btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T8714 Differential Revision: https://secure.phabricator.com/D13486
This commit is contained in:
parent
29839e8c72
commit
d54cb072fa
1 changed files with 41 additions and 0 deletions
|
@ -184,6 +184,9 @@ EOTEXT
|
|||
}
|
||||
|
||||
$results = $this->engine->run();
|
||||
|
||||
$this->validateUnitEngineResults($this->engine, $results);
|
||||
|
||||
$this->testResults = $results;
|
||||
|
||||
$console = PhutilConsole::getConsole();
|
||||
|
@ -368,4 +371,42 @@ EOTEXT
|
|||
return idx($known_formats, $format, 'full');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Raise a tailored error when a unit test engine returns results in an
|
||||
* invalid format.
|
||||
*
|
||||
* @param ArcanistUnitTestEngine The engine.
|
||||
* @param wild Results from the engine.
|
||||
*/
|
||||
private function validateUnitEngineResults(
|
||||
ArcanistUnitTestEngine $engine,
|
||||
$results) {
|
||||
|
||||
if (!is_array($results)) {
|
||||
throw new Exception(
|
||||
pht(
|
||||
'Unit test engine (of class "%s") returned invalid results when '.
|
||||
'run (with method "%s"). Expected a list of "%s" objects as results.',
|
||||
get_class($engine),
|
||||
'run()',
|
||||
'ArcanistUnitTestResult'));
|
||||
}
|
||||
|
||||
foreach ($results as $key => $result) {
|
||||
if (!($result instanceof ArcanistUnitTestResult)) {
|
||||
throw new Exception(
|
||||
pht(
|
||||
'Unit test engine (of class "%s") returned invalid results when '.
|
||||
'run (with method "%s"). Expected a list of "%s" objects as '.
|
||||
'results, but value with key "%s" is not valid.',
|
||||
get_class($engine),
|
||||
'run()',
|
||||
'ArcanistUnitTestResult',
|
||||
$key));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue