Patched to Drupal 8.4.8 level. See https://www.drupal.org/sa-core-2018-004 and patch...
[yaffs-website] / web / core / lib / Drupal / Core / Test / TestStatus.php
1 <?php
2
3 namespace Drupal\Core\Test;
4
5 /**
6  * Consolidates test result status information.
7  *
8  * For our test runners, a $status of 0 = passed test, 1 = failed test,
9  * 2 = exception, >2 indicates segfault timeout, or other type of system
10  * failure.
11  */
12 class TestStatus {
13
14   /**
15    * Signify that the test result was a passed test.
16    */
17   const PASS = 0;
18
19   /**
20    * Signify that the test result was a failed test.
21    */
22   const FAIL = 1;
23
24   /**
25    * Signify that the test result was an exception or code error.
26    *
27    * This means that the test runner was able to exit and report an error.
28    */
29   const EXCEPTION = 2;
30
31   /**
32    * Signify a system error where the test runner was unable to complete.
33    *
34    * Note that SYSTEM actually represents the lowest value of system errors, and
35    * the returned value could be as high as 127. Since that's the case, this
36    * constant should be used for range comparisons, and not just for equality.
37    *
38    * @see http://php.net/manual/en/pcntl.constants.php
39    */
40   const SYSTEM = 3;
41
42   /**
43    * Turns a status code into a human-readable string.
44    *
45    * @param int $status
46    *   A test runner return code.
47    *
48    * @return string
49    *   The human-readable version of the status code.
50    */
51   public static function label($status) {
52     $statusMap = [
53       static::PASS => 'pass',
54       static::FAIL => 'fail',
55       static::EXCEPTION => 'exception',
56       static::SYSTEM => 'error',
57     ];
58     // For status 3 and higher, we want 'error.'
59     $label = $statusMap[$status > static::SYSTEM ? static::SYSTEM : $status];
60     return $label;
61   }
62
63 }