Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Test/TestStatus.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Test/TestStatus.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,63 @@ +<?php + +namespace Drupal\Core\Test; + +/** + * Consolidates test result status information. + * + * For our test runners, a $status of 0 = passed test, 1 = failed test, + * 2 = exception, >2 indicates segfault timeout, or other type of system + * failure. + */ +class TestStatus { + + /** + * Signify that the test result was a passed test. + */ + const PASS = 0; + + /** + * Signify that the test result was a failed test. + */ + const FAIL = 1; + + /** + * Signify that the test result was an exception or code error. + * + * This means that the test runner was able to exit and report an error. + */ + const EXCEPTION = 2; + + /** + * Signify a system error where the test runner was unable to complete. + * + * Note that SYSTEM actually represents the lowest value of system errors, and + * the returned value could be as high as 127. Since that's the case, this + * constant should be used for range comparisons, and not just for equality. + * + * @see http://php.net/manual/en/pcntl.constants.php + */ + const SYSTEM = 3; + + /** + * Turns a status code into a human-readable string. + * + * @param int $status + * A test runner return code. + * + * @return string + * The human-readable version of the status code. + */ + public static function label($status) { + $statusMap = [ + static::PASS => 'pass', + static::FAIL => 'fail', + static::EXCEPTION => 'exception', + static::SYSTEM => 'error', + ]; + // For status 3 and higher, we want 'error.' + $label = $statusMap[$status > static::SYSTEM ? static::SYSTEM : $status]; + return $label; + } + +}