Remove useless sleep() in JobQueueTest
authorAntoine Musso <hashar@free.fr>
Wed, 22 Oct 2014 21:22:10 +0000 (23:22 +0200)
committerAntoine Musso <hashar@free.fr>
Fri, 24 Oct 2014 12:31:00 +0000 (14:31 +0200)
I noticed JobQueueTest::testRootDeduplication takes ~ 6.5 seconds, which
is due to the test method using sleep(1) and being passed the provider
provider_queueLists which yields six items.

The reason is to have the array returned by Job::newRootJobParams() to
have an incread value for 'rootJobTimestamp'.  Instead, just copy the
previous array of parameters and increment the UNIX timestamp and
converting back to TS_MW format.

Change-Id: I75066df73f9f92e56b89eb6d928c41e949a2d6a9

tests/phpunit/includes/jobqueue/JobQueueTest.php

index 69e4006..ea1a4f6 100644 (file)
@@ -247,8 +247,13 @@ class JobQueueTest extends MediaWikiTestCase {
                        $this->assertNull( $queue->push( $this->newJob( 0, $root1 ) ), "Push worked ($desc)" );
                }
                $queue->deduplicateRootJob( $this->newJob( 0, $root1 ) );
-               sleep( 1 ); // roo job timestamp will increase
-               $root2 = Job::newRootJobParams( "nulljobspam:$id" ); // task ID/timestamp
+
+               $root2 = $root1;
+               # Add a second to UNIX epoch and format back to TS_MW
+               $root2_ts = strtotime( $root2['rootJobTimestamp'] );
+               $root2_ts++;
+               $root2['rootJobTimestamp'] = wfTimestamp( TS_MW, $root2_ts );
+
                $this->assertNotEquals( $root1['rootJobTimestamp'], $root2['rootJobTimestamp'],
                        "Root job signatures have different timestamps." );
                for ( $i = 0; $i < 5; ++$i ) {