phpunit: Fix RecentChangeTest failure when coverage is enabled
authorTimo Tijhof <krinklemail@gmail.com>
Mon, 20 Mar 2017 21:55:22 +0000 (14:55 -0700)
committerReedy <reedy@wikimedia.org>
Mon, 20 Mar 2017 22:14:30 +0000 (22:14 +0000)
From <https://integration.wikimedia.org/ci/job/mediawiki-core-code-coverage/>

2) RecentChangeTest::testIsInRCLifespan with data set #0 (6000, 1490019080, 0, true)
   Failed asserting that false matches expected true.

3) RecentChangeTest::testIsInRCLifespan with data set #3 (3000, 1490016080, 6000, true)
   Failed asserting that false matches expected true.

Change-Id: I309bb229542f3af62e3e83025d88e77ecb55cd31

tests/phpunit/includes/changes/RecentChangeTest.php

index 995c4be..68f9079 100644 (file)
@@ -88,15 +88,14 @@ class RecentChangeTest extends MediaWikiTestCase {
        }
 
        /**
-        * 50 mins and 100 mins are used here as the tests never take that long!
         * @return array
         */
        public function provideIsInRCLifespan() {
                return [
-                       [ 6000, time() - 3000, 0, true ],
-                       [ 3000, time() - 6000, 0, false ],
-                       [ 6000, time() - 3000, 6000, true ],
-                       [ 3000, time() - 6000, 6000, true ],
+                       [ 6000, -3000, 0, true ],
+                       [ 3000, -6000, 0, false ],
+                       [ 6000, -3000, 6000, true ],
+                       [ 3000, -6000, 6000, true ],
                ];
        }
 
@@ -104,8 +103,12 @@ class RecentChangeTest extends MediaWikiTestCase {
         * @covers RecentChange::isInRCLifespan
         * @dataProvider provideIsInRCLifespan
         */
-       public function testIsInRCLifespan( $maxAge, $timestamp, $tolerance, $expected ) {
+       public function testIsInRCLifespan( $maxAge, $offset, $tolerance, $expected ) {
                $this->setMwGlobals( 'wgRCMaxAge', $maxAge );
+               // Calculate this here instead of the data provider because the provider
+               // is expanded early on and the full test suite may take longer than 100 minutes
+               // when coverage is enabled.
+               $timestamp = time() + $offset;
                $this->assertEquals( $expected, RecentChange::isInRCLifespan( $timestamp, $tolerance ) );
        }