summaryrefslogtreecommitdiffstatshomepage
path: root/tests/phpunit/includes/phpunit7
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/phpunit7')
-rw-r--r--tests/phpunit/includes/phpunit7/speed-trap-listener.php307
1 files changed, 0 insertions, 307 deletions
diff --git a/tests/phpunit/includes/phpunit7/speed-trap-listener.php b/tests/phpunit/includes/phpunit7/speed-trap-listener.php
deleted file mode 100644
index a0d95ea20c..0000000000
--- a/tests/phpunit/includes/phpunit7/speed-trap-listener.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-
-/**
- * A PHPUnit TestListener that exposes your slowest running tests by outputting
- * results directly to the console.
- */
-class SpeedTrapListener implements PHPUnit_Framework_TestListener {
-
- /**
- * Internal tracking for test suites.
- *
- * Increments as more suites are run, then decremented as they finish. All
- * suites have been run when returns to 0.
- *
- * @var integer
- */
- protected $suites = 0;
-
- /**
- * Time in milliseconds at which a test will be considered "slow" and be
- * reported by this listener.
- *
- * @var int
- */
- protected $slow_threshold;
-
- /**
- * Number of tests to report on for slowness.
- *
- * @var int
- */
- protected $report_length;
-
- /**
- * Collection of slow tests.
- *
- * @var array
- */
- protected $slow = array();
-
- /**
- * Construct a new instance.
- *
- * @param array $options
- */
- public function __construct( array $options = array() ) {
- $this->loadOptions( $options );
- }
-
- /**
- * An error occurred.
- *
- * @param PHPUnit_Framework_Test $test
- * @param Exception $e
- * @param float $time
- */
- public function addError( PHPUnit\Framework\Test $test, Throwable $t, float $time ): void {
- }
-
- /**
- * A warning occurred.
- *
- * @param PHPUnit_Framework_Test $test
- * @param PHPUnit_Framework_Warning $e
- * @param float $time
- * @since Method available since Release 5.1.0
- */
- public function addWarning( PHPUnit\Framework\Test $test, PHPUnit\Framework\Warning $e, float $time ): void {
- }
-
- /**
- * A failure occurred.
- *
- * @param PHPUnit_Framework_Test $test
- * @param PHPUnit_Framework_AssertionFailedError $e
- * @param float $time
- */
- public function addFailure( PHPUnit\Framework\Test $test, PHPUnit\Framework\AssertionFailedError $e, float $time ): void {
- }
-
- /**
- * Incomplete test.
- *
- * @param PHPUnit_Framework_Test $test
- * @param Exception $e
- * @param float $time
- */
- public function addIncompleteTest( PHPUnit\Framework\Test $test, Throwable $t, float $time ): void {
- }
-
- /**
- * Risky test.
- *
- * @param PHPUnit_Framework_Test $test
- * @param Exception $e
- * @param float $time
- * @since Method available since Release 4.0.0
- */
- public function addRiskyTest( PHPUnit\Framework\Test $test, Throwable $t, float $time ): void {
- }
-
- /**
- * Skipped test.
- *
- * @param PHPUnit_Framework_Test $test
- * @param Exception $e
- * @param float $time
- */
- public function addSkippedTest( PHPUnit\Framework\Test $test, Throwable $t, float $time ): void {
- }
-
- /**
- * A test started.
- *
- * @param PHPUnit_Framework_Test $test
- */
- public function startTest( PHPUnit\Framework\Test $test ): void {
- }
-
- /**
- * A test ended.
- *
- * @param PHPUnit_Framework_Test $test
- * @param float $time
- */
- public function endTest( PHPUnit\Framework\Test $test, float $time ): void {
- if ( ! $test instanceof PHPUnit_Framework_TestCase ) {
- return;
- }
-
- $time = $this->toMilliseconds( $time );
- $threshold = $this->getSlowThreshold( $test );
-
- if ( $this->isSlow( $time, $threshold ) ) {
- $this->addSlowTest( $test, $time );
- }
- }
-
- /**
- * A test suite started.
- *
- * @param PHPUnit_Framework_TestSuite $suite
- */
- public function startTestSuite( PHPUnit\Framework\TestSuite $suite ): void {
- $this->suites++;
- }
-
- /**
- * A test suite ended.
- *
- * @param PHPUnit_Framework_TestSuite $suite
- */
- public function endTestSuite( PHPUnit\Framework\TestSuite $suite ): void {
- $this->suites--;
-
- if ( 0 === $this->suites && $this->hasSlowTests() ) {
- arsort( $this->slow ); // Sort longest running tests to the top.
-
- $this->renderHeader();
- $this->renderBody();
- $this->renderFooter();
- }
- }
-
- /**
- * Whether the given test execution time is considered slow.
- *
- * @param int $time Test execution time in milliseconds
- * @param int $slow_threshold Test execution time at which a test should be considered slow (milliseconds)
- * @return bool
- */
- protected function isSlow( $time, $slow_threshold ) {
- return $time >= $slow_threshold;
- }
-
- /**
- * Stores a test as slow.
- *
- * @param PHPUnit_Framework_TestCase $test
- * @param int $time Test execution time in milliseconds
- */
- protected function addSlowTest( PHPUnit_Framework_TestCase $test, $time ) {
- $label = $this->makeLabel( $test );
-
- $this->slow[ $label ] = $time;
- }
-
- /**
- * Whether at least one test has been considered slow.
- *
- * @return bool
- */
- protected function hasSlowTests() {
- return ! empty( $this->slow );
- }
-
- /**
- * Convert PHPUnit's reported test time (microseconds) to milliseconds.
- *
- * @param float $time
- * @return int
- */
- protected function toMilliseconds( $time ) {
- return (int) round( $time * 1000 );
- }
-
- /**
- * Label for describing a test.
- *
- * @param PHPUnit_Framework_TestCase $test
- * @return string
- */
- protected function makeLabel( PHPUnit_Framework_TestCase $test ) {
- return sprintf( '%s:%s', get_class( $test ), $test->getName() );
- }
-
- /**
- * Calculate number of slow tests to report about.
- *
- * @return int
- */
- protected function getReportLength() {
- return min( count( $this->slow ), $this->report_length );
- }
-
- /**
- * Find how many slow tests occurred that won't be shown due to list length.
- *
- * @return int Number of hidden slow tests
- */
- protected function getHiddenCount() {
- $total = count( $this->slow );
- $showing = $this->getReportLength( $this->slow );
-
- $hidden = 0;
- if ( $total > $showing ) {
- $hidden = $total - $showing;
- }
-
- return $hidden;
- }
-
- /**
- * Renders slow test report header.
- */
- protected function renderHeader() {
- echo sprintf( "\n\nYou should really fix these slow tests (>%sms)...\n", $this->slow_threshold );
- }
-
- /**
- * Renders slow test report body.
- */
- protected function renderBody() {
- $slow_tests = $this->slow;
-
- $length = $this->getReportLength( $slow_tests );
- for ( $i = 1; $i <= $length; ++$i ) {
- $label = key( $slow_tests );
- $time = array_shift( $slow_tests );
-
- echo sprintf( " %s. %sms to run %s\n", $i, $time, $label );
- }
- }
-
- /**
- * Renders slow test report footer.
- */
- protected function renderFooter() {
- $hidden = $this->getHiddenCount( $this->slow );
- if ( $hidden ) {
- echo sprintf( '...and there %s %s more above your threshold hidden from view', 1 === $hidden ? 'is' : 'are', $hidden );
- }
- }
-
- /**
- * Populate options into class internals.
- *
- * @param array $options
- */
- protected function loadOptions( array $options ) {
- $this->slow_threshold = isset( $options['slowThreshold'] ) ? $options['slowThreshold'] : 500;
- $this->report_length = isset( $options['reportLength'] ) ? $options['reportLength'] : 10;
- }
-
- /**
- * Get slow test threshold for given test. A TestCase can override the
- * suite-wide slow threshold by using the annotation @slowThreshold with
- * the threshold value in milliseconds.
- *
- * The following test will only be considered slow when its execution time
- * reaches 5000ms (5 seconds):
- *
- * <code>
- *
- * @slowThreshold 5000
- * public function testLongRunningProcess() {}
- * </code>
- *
- * @param PHPUnit_Framework_TestCase $test
- * @return int
- */
- protected function getSlowThreshold( PHPUnit_Framework_TestCase $test ) {
- $ann = $test->getAnnotations();
-
- return isset( $ann['method']['slowThreshold'][0] ) ? $ann['method']['slowThreshold'][0] : $this->slow_threshold;
- }
-}