X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fparser%2FParser_DiffTest.php;h=920b6f662171d6077c5de6e3031803ca6744ad9a;hb=58e0f0bd236fddda02e177e17264357949507ef2;hp=bc7369ef424fff5ff615d3d0b7ba551ed55b5f3e;hpb=ccacba9f3acba87d4eddca936a0d772771dc2606;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/Parser_DiffTest.php b/includes/parser/Parser_DiffTest.php index bc7369ef42..920b6f6621 100644 --- a/includes/parser/Parser_DiffTest.php +++ b/includes/parser/Parser_DiffTest.php @@ -1,4 +1,25 @@ conf = $conf; - $this->dtUniqPrefix = "\x7fUNIQ" . Parser::getRandomString(); } function init() { @@ -70,16 +90,21 @@ class Parser_DiffTest } if ( $mismatch ) { if ( count( $results ) == 2 ) { - $results2 = array_values( $results ); - $diff = wfDiff( var_export( $results2[0], true ), var_export( $results2[1], true ) ); + $resultsList = array(); + foreach ( $this->parsers as $i => $parser ) { + $resultsList[] = var_export( $results[$i], true ); + } + $diff = wfDiff( $resultsList[0], $resultsList[1] ); } else { $diff = '[too many parsers]'; } - throw new MWException( "Parser_DiffTest: results mismatch on call to $name\n" . - 'Arguments: ' . $this->formatArray( $args ) . "\n" . - 'Results: ' . $this->formatArray( $results ) . "\n" . - "Diff: $diff\n" - ); + $msg = "Parser_DiffTest: results mismatch on call to $name\n"; + if ( !$this->shortOutput ) { + $msg .= 'Arguments: ' . $this->formatArray( $args ) . "\n"; + } + $msg .= 'Results: ' . $this->formatArray( $results ) . "\n" . + "Diff: $diff\n"; + throw new MWException( $msg ); } return $lastResult; } @@ -97,14 +122,22 @@ class Parser_DiffTest function setFunctionHook( $id, $callback, $flags = 0 ) { $this->init(); - foreach ( $this->parsers as $i => $parser ) { + foreach ( $this->parsers as $parser ) { $parser->setFunctionHook( $id, $callback, $flags ); } } + /** + * @param Parser $parser + * @return bool + */ function onClearState( &$parser ) { // hack marker prefixes to get identical output - $parser->mUniqPrefix = $this->dtUniqPrefix; + if ( !isset( $this->dtUniqPrefix ) ) { + $this->dtUniqPrefix = $parser->uniqPrefix(); + } else { + $parser->mUniqPrefix = $this->dtUniqPrefix; + } return true; } }