Improvements to PCRE benchmarking tests.
* Add test file accidentally omitted from [34761]. * Bail properly from benchmarker when a `preg_last_error()` is found. Props miqrogroove. See #34121. git-svn-id: https://develop.svn.wordpress.org/trunk@34773 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
19df309491
commit
f408407620
@ -433,15 +433,16 @@ function benchmark_pcre_backtracking( $pattern, $subject, $strategy ) {
|
|||||||
continue;
|
continue;
|
||||||
case PREG_RECURSION_LIMIT_ERROR:
|
case PREG_RECURSION_LIMIT_ERROR:
|
||||||
trigger_error('PCRE recursion limit encountered before backtrack limit.');
|
trigger_error('PCRE recursion limit encountered before backtrack limit.');
|
||||||
break;
|
return;
|
||||||
case PREG_BAD_UTF8_ERROR:
|
case PREG_BAD_UTF8_ERROR:
|
||||||
trigger_error('UTF-8 error during PCRE benchmark.');
|
trigger_error('UTF-8 error during PCRE benchmark.');
|
||||||
break;
|
return;
|
||||||
case PREG_INTERNAL_ERROR:
|
case PREG_INTERNAL_ERROR:
|
||||||
trigger_error('Internal error during PCRE benchmark.');
|
trigger_error('Internal error during PCRE benchmark.');
|
||||||
break;
|
return;
|
||||||
default:
|
default:
|
||||||
trigger_error('Unexpected error during PCRE benchmark.');
|
trigger_error('Unexpected error during PCRE benchmark.');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
53
tests/phpunit/tests/formatting/WpHtmlSplit.php
Normal file
53
tests/phpunit/tests/formatting/WpHtmlSplit.php
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group formatting
|
||||||
|
*/
|
||||||
|
class Tests_Formatting_WpHtmlSplit extends WP_UnitTestCase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic functionality goes here.
|
||||||
|
*
|
||||||
|
* @dataProvider data_basic_features
|
||||||
|
*/
|
||||||
|
function test_basic_features( $input, $output ) {
|
||||||
|
return $this->assertEquals( $output, wp_html_split( $input ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
function data_basic_features() {
|
||||||
|
return array(
|
||||||
|
array(
|
||||||
|
'abcd efgh',
|
||||||
|
array( 'abcd efgh' ),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'abcd <html> efgh',
|
||||||
|
array( 'abcd ', '<html>', ' efgh' ),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'abcd <!-- <html> --> efgh',
|
||||||
|
array( 'abcd ', '<!-- <html> -->', ' efgh' ),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'abcd <![CDATA[ <html> ]]> efgh',
|
||||||
|
array( 'abcd ', '<![CDATA[ <html> ]]>', ' efgh' ),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automated performance testing of the main regex.
|
||||||
|
*
|
||||||
|
* @dataProvider data_whole_posts
|
||||||
|
*/
|
||||||
|
function test_pcre_performance( $input ) {
|
||||||
|
$regex = get_html_split_regex();
|
||||||
|
$result = benchmark_pcre_backtracking( $regex, $input, 'split' );
|
||||||
|
return $this->assertLessThan( 200, $result );
|
||||||
|
}
|
||||||
|
|
||||||
|
function data_whole_posts() {
|
||||||
|
require_once( DIR_TESTDATA . '/formatting/whole-posts.php' );
|
||||||
|
return data_whole_posts();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user