resourceloader: Remove slow structure test for checking getVersionHash
authorTimo Tijhof <krinklemail@gmail.com>
Thu, 1 Aug 2019 00:19:45 +0000 (01:19 +0100)
committerAaron Schulz <aschulz@wikimedia.org>
Thu, 1 Aug 2019 15:33:23 +0000 (15:33 +0000)
This isn't needed because the startup module validates this already.

The vast majority of modules are FileModule instances which can't be invalid,
because a separate test asserts that class already. This test existed for
validating the format of version hashes returned by a theoretical Module
sub class in an extension that (badly) overrides the getVersionHash method.

As of writing, no extension overrides that method. And more importantly,
the startup module already validates this at run-time, and logs a warning.
This commit turns that into an exception, which would get logged in a way
that Jenkins will fail the build if encountered.

This structure test, which computed the response for all registered modules,
previously took 3-5 seconds in CI.

Bug: T225730
Change-Id: Id2e37434b0ccd95dd2279f04e2230e9c06b09ccb

includes/resourceloader/ResourceLoaderStartUpModule.php
tests/phpunit/structure/ResourcesTest.php

index 6b38ee4..dbf6b21 100644 (file)
@@ -283,8 +283,9 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        }
 
                        if ( $versionHash !== '' && strlen( $versionHash ) !== 7 ) {
-                               $this->getLogger()->warning(
-                                       "Module '{module}' produced an invalid version hash: '{version}'.",
+                               $e = new RuntimeException( "Badly formatted module version hash" );
+                               $resourceLoader->outputErrorAndLog( $e,
+                                               "Module '{module}' produced an invalid version hash: '{version}'.",
                                        [
                                                'module' => $name,
                                                'version' => $versionHash,
index 4f9664f..acd8a19 100644 (file)
@@ -36,14 +36,6 @@ class ResourcesTest extends MediaWikiTestCase {
                );
        }
 
-       public function testVersionHash() {
-               $data = self::getAllModules();
-               foreach ( $data['modules'] as $moduleName => $module ) {
-                       $version = $module->getVersionHash( $data['context'] );
-                       $this->assertEquals( 7, strlen( $version ), "$moduleName must use ResourceLoader::makeHash" );
-               }
-       }
-
        /**
         * Verify that all modules specified as dependencies of other modules actually
         * exist and are not illegal.