X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpreprocessorFuzzTest.php;h=4d38710e1fb4cf74ef5aad85b858bc612d188cac;hb=0183ae1453588efe8c8f8318224fcdfa1d1e225c;hp=0a1a9f6f117ba8924d4fbc41c3f5bba876120ae3;hpb=ace9be9562a8301c80ef2295601b606aee4e9ce1;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/preprocessorFuzzTest.php b/maintenance/preprocessorFuzzTest.php index 0a1a9f6f11..4d38710e1f 100644 --- a/maintenance/preprocessorFuzzTest.php +++ b/maintenance/preprocessorFuzzTest.php @@ -21,7 +21,7 @@ * @ingroup Maintenance */ -require_once( __DIR__ . '/commandLine.inc' ); +require_once __DIR__ . '/commandLine.inc'; $wgHooks['BeforeParserFetchTemplateAndtitle'][] = 'PPFuzzTester::templateHook'; @@ -45,7 +45,8 @@ class PPFuzzTester { // public $outputTypes = array( 'OT_HTML', 'OT_WIKI', 'OT_PREPROCESS' ); public $entryPoints = array( 'testSrvus', 'testPst', 'testPreprocess' ); public $verbose = false; - static $currentTest = false; + + private static $currentTest = false; function execute() { if ( !file_exists( 'results' ) ) { @@ -63,7 +64,7 @@ class PPFuzzTester { self::$currentTest = new PPFuzzTest( $this ); self::$currentTest->execute(); $passed = 'passed'; - } catch ( MWException $e ) { + } catch ( Exception $e ) { $testReport = self::$currentTest->getReport(); $exceptionReport = $e->getText(); $hash = md5( $testReport ); @@ -120,6 +121,7 @@ class PPFuzzTester { // It's done by the MW UI, so it's a reasonably legitimate thing to do. global $wgContLang; $s = $wgContLang->normalize( $s ); + return $s; } @@ -135,7 +137,8 @@ class PPFuzzTester { function pickEntryPoint() { $count = count( $this->entryPoints ); - return $this->entryPoints[ mt_rand( 0, $count - 1 ) ]; + + return $this->entryPoints[mt_rand( 0, $count - 1 )]; } } @@ -155,7 +158,8 @@ class PPFuzzTest { } /** - * @param $title Title + * @param Title $title + * @return array */ function templateHook( $title ) { $titleText = $title->getPrefixedDBkey(); @@ -181,6 +185,7 @@ class PPFuzzTest { 'text' => $text, 'finalTitle' => $finalTitle ); } + return $this->templates[$titleText]; } @@ -195,15 +200,22 @@ class PPFuzzTest { $options = ParserOptions::newFromUser( $wgUser ); $options->setTemplateCallback( array( $this, 'templateHook' ) ); $options->setTimestamp( wfTimestampNow() ); - $this->output = call_user_func( array( $wgParser, $this->entryPoint ), $this->mainText, $this->title, $options ); + $this->output = call_user_func( + array( $wgParser, $this->entryPoint ), + $this->mainText, + $this->title, + $options + ); + return $this->output; } function getReport() { $s = "Title: " . $this->title->getPrefixedDBkey() . "\n" . -// "Output type: {$this->outputType}\n" . +// "Output type: {$this->outputType}\n" . "Entry point: {$this->entryPoint}\n" . - "User: " . ( $this->fancySig ? 'fancy' : 'no-fancy' ) . ' ' . var_export( $this->nickname, true ) . "\n" . + "User: " . ( $this->fancySig ? 'fancy' : 'no-fancy' ) . + ' ' . var_export( $this->nickname, true ) . "\n" . "Main text: " . var_export( $this->mainText, true ) . "\n"; foreach ( $this->templates as $titleText => $template ) { $finalTitle = $template['finalTitle']; @@ -214,6 +226,7 @@ class PPFuzzTest { } } $s .= "Output: " . var_export( $this->output, true ) . "\n"; + return $s; } }