diff options
| author | Nuno Lopes <nlopess@php.net> | 2006-12-02 21:39:28 +0000 |
|---|---|---|
| committer | Nuno Lopes <nlopess@php.net> | 2006-12-02 21:39:28 +0000 |
| commit | 0df2a37d1bb98d93ccbccc4d377c2c25dba4956e (patch) | |
| tree | fc9a8d1544bbb7d720f6c1e68384250e06b08eb2 /ext | |
| parent | 916673a345347b15c628f8fee9814f84ee5b2ff8 (diff) | |
| download | php-git-0df2a37d1bb98d93ccbccc4d377c2c25dba4956e.tar.gz | |
new tests. increase coverage for more than 90%
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/pcre/tests/001.phpt | 87 | ||||
| -rw-r--r-- | ext/pcre/tests/002.phpt | 40 | ||||
| -rw-r--r-- | ext/pcre/tests/003.phpt | 140 | ||||
| -rw-r--r-- | ext/pcre/tests/004.phpt | 149 |
4 files changed, 416 insertions, 0 deletions
diff --git a/ext/pcre/tests/001.phpt b/ext/pcre/tests/001.phpt new file mode 100644 index 0000000000..313f7fdc67 --- /dev/null +++ b/ext/pcre/tests/001.phpt @@ -0,0 +1,87 @@ +--TEST-- +abusing preg_match() +--FILE-- +<?php + +foreach (array('2006-05-13', '06-12-12', 'data: "12-Aug-87"') as $s) { + var_dump(preg_match('~ + (?P<date> + (?P<year>(\d{2})?\d\d) - + (?P<month>(?:\d\d|[a-zA-Z]{2,3})) - + (?P<day>[0-3]?\d)) + ~x', $s, $m)); + + var_dump($m); +} + +?> +--EXPECT-- +int(1) +array(10) { + [0]=> + string(10) "2006-05-13" + ["date"]=> + string(10) "2006-05-13" + [1]=> + string(10) "2006-05-13" + ["year"]=> + string(4) "2006" + [2]=> + string(4) "2006" + [3]=> + string(2) "20" + ["month"]=> + string(2) "05" + [4]=> + string(2) "05" + ["day"]=> + string(2) "13" + [5]=> + string(2) "13" +} +int(1) +array(10) { + [0]=> + string(8) "06-12-12" + ["date"]=> + string(8) "06-12-12" + [1]=> + string(8) "06-12-12" + ["year"]=> + string(2) "06" + [2]=> + string(2) "06" + [3]=> + string(0) "" + ["month"]=> + string(2) "12" + [4]=> + string(2) "12" + ["day"]=> + string(2) "12" + [5]=> + string(2) "12" +} +int(1) +array(10) { + [0]=> + string(8) "12-Aug-8" + ["date"]=> + string(8) "12-Aug-8" + [1]=> + string(8) "12-Aug-8" + ["year"]=> + string(2) "12" + [2]=> + string(2) "12" + [3]=> + string(0) "" + ["month"]=> + string(3) "Aug" + [4]=> + string(3) "Aug" + ["day"]=> + string(1) "8" + [5]=> + string(1) "8" +} diff --git a/ext/pcre/tests/002.phpt b/ext/pcre/tests/002.phpt new file mode 100644 index 0000000000..c0ec79910a --- /dev/null +++ b/ext/pcre/tests/002.phpt @@ -0,0 +1,40 @@ +--TEST-- +preg_* with bogus vals +--FILE-- +<?php + +var_dump(preg_match()); +var_dump(preg_match_all()); +var_dump(preg_match_all('//', '', $dummy, 0xdead)); + +var_dump(preg_quote()); +var_dump(preg_quote('')); + +var_dump(preg_replace('/(.)/', '${1}${1', 'abc')); +var_dump(preg_replace('/.++\d*+[/', 'for ($', 'abc')); +var_dump(preg_replace('/(.)/e', 'for ($', 'abc')); + +?> +--EXPECTF-- + +Warning: preg_match() expects at least 2 parameters, 0 given in %s002.php on line 3 +bool(false) + +Warning: preg_match_all() expects at least 3 parameters, 0 given in %s002.php on line 4 +bool(false) + +Warning: preg_match_all(): Invalid flags specified in %s002.php on line 5 +NULL + +Warning: preg_quote() expects at least 1 parameter, 0 given in %s002.php on line 7 +NULL +string(0) "" +string(12) "a${1b${1c${1" + +Warning: preg_replace(): Compilation failed: missing terminating ] for character class at offset 8 in %s002.php on line 11 +NULL + +Parse error: syntax error, unexpected T_FOR in %s002.php(12) : regexp code on line 1 + +Fatal error: preg_replace(): Failed evaluating code: +for ($ in %s002.php on line 12 diff --git a/ext/pcre/tests/003.phpt b/ext/pcre/tests/003.phpt new file mode 100644 index 0000000000..e697c375c6 --- /dev/null +++ b/ext/pcre/tests/003.phpt @@ -0,0 +1,140 @@ +--TEST-- +abusing preg_match_all() +--FILE-- +<?php + +foreach (array(PREG_PATTERN_ORDER, PREG_SET_ORDER) as $flag) { + var_dump(preg_match_all('~ + (?P<date> + (?P<year>(\d{2})?\d\d) - + (?P<month>(?:\d\d|[a-zA-Z]{2,3})) - + (?P<day>[0-3]?\d)) + ~x', + '2006-05-13 e outra data: "12-Aug-37"', $m, $flag)); + + var_dump($m); +} +?> +--EXPECT-- +int(2) +array(10) { + [0]=> + array(2) { + [0]=> + string(10) "2006-05-13" + [1]=> + string(9) "12-Aug-37" + } + ["date"]=> + array(2) { + [0]=> + string(10) "2006-05-13" + [1]=> + string(9) "12-Aug-37" + } + [1]=> + array(2) { + [0]=> + string(10) "2006-05-13" + [1]=> + string(9) "12-Aug-37" + } + ["year"]=> + array(2) { + [0]=> + string(4) "2006" + [1]=> + string(2) "12" + } + [2]=> + array(2) { + [0]=> + string(4) "2006" + [1]=> + string(2) "12" + } + [3]=> + array(2) { + [0]=> + string(2) "20" + [1]=> + string(0) "" + } + ["month"]=> + array(2) { + [0]=> + string(2) "05" + [1]=> + string(3) "Aug" + } + [4]=> + array(2) { + [0]=> + string(2) "05" + [1]=> + string(3) "Aug" + } + ["day"]=> + array(2) { + [0]=> + string(2) "13" + [1]=> + string(2) "37" + } + [5]=> + array(2) { + [0]=> + string(2) "13" + [1]=> + string(2) "37" + } +} +int(2) +array(2) { + [0]=> + array(10) { + [0]=> + string(10) "2006-05-13" + ["date"]=> + string(10) "2006-05-13" + [1]=> + string(10) "2006-05-13" + ["year"]=> + string(4) "2006" + [2]=> + string(4) "2006" + [3]=> + string(2) "20" + ["month"]=> + string(2) "05" + [4]=> + string(2) "05" + ["day"]=> + string(2) "13" + [5]=> + string(2) "13" + } + [1]=> + array(10) { + [0]=> + string(9) "12-Aug-37" + ["date"]=> + string(9) "12-Aug-37" + [1]=> + string(9) "12-Aug-37" + ["year"]=> + string(2) "12" + [2]=> + string(2) "12" + [3]=> + string(0) "" + ["month"]=> + string(3) "Aug" + [4]=> + string(3) "Aug" + ["day"]=> + string(2) "37" + [5]=> + string(2) "37" + } +} diff --git a/ext/pcre/tests/004.phpt b/ext/pcre/tests/004.phpt new file mode 100644 index 0000000000..b1e9586626 --- /dev/null +++ b/ext/pcre/tests/004.phpt @@ -0,0 +1,149 @@ +--TEST-- +abusing pcre +--FILE-- +<?php + +var_dump(preg_match_all('/((?:(?:unsigned|struct)\s+)?\w+)(?:\s*(\*+)\s+|\s+(\**))(\w+(?:\[\s*\w*\s*\])?)\s*(?:(=)[^,;]+)?((?:\s*,\s*\**\s*\w+(?:\[\s*\w*\s*\])?\s*(?:=[^,;]+)?)*)\s*;/S', 'unsigned int xpto = 124; short a, b;', $m, PREG_SET_ORDER)); +var_dump($m); + +var_dump(preg_match_all('/(?:\([^)]+\))?(&?)([\w>.()-]+(?:\[\w+\])?)\s*,?((?:\)*\s*=)?)/S', '&a, b, &c', $m, PREG_SET_ORDER)); +var_dump($m); + +var_dump(preg_match_all('/zend_parse_parameters(?:_ex\s*\([^,]+,[^,]+|\s*\([^,]+),\s*"([^"]*)"\s*,\s*([^{;]*)/S', 'zend_parse_parameters( 0, "addd|s/", a, b, &c);', $m, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)); +var_dump($m); + +var_dump(preg_replace(array('@//.*@S', '@/\*.*\*/@SsUe'), array('', 'preg_replace("/[^\r\n]+/S", "", \'$0\')'), "hello\n//x \n/*\ns\n*/")); + +var_dump(preg_split('/PHP_(?:NAMED_)?(?:FUNCTION|METHOD)\s*\((\w+(?:,\s*\w+)?)\)/S', "PHP_FUNCTION(s, preg_match)\n{\nlalala", -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE)); +?> +--EXPECT-- +int(2) +array(2) { + [0]=> + array(7) { + [0]=> + string(24) "unsigned int xpto = 124;" + [1]=> + string(12) "unsigned int" + [2]=> + string(0) "" + [3]=> + string(0) "" + [4]=> + string(4) "xpto" + [5]=> + string(1) "=" + [6]=> + string(0) "" + } + [1]=> + array(7) { + [0]=> + string(11) "short a, b;" + [1]=> + string(5) "short" + [2]=> + string(0) "" + [3]=> + string(0) "" + [4]=> + string(1) "a" + [5]=> + string(0) "" + [6]=> + string(3) ", b" + } +} +int(3) +array(3) { + [0]=> + array(4) { + [0]=> + string(3) "&a," + [1]=> + string(1) "&" + [2]=> + string(1) "a" + [3]=> + string(0) "" + } + [1]=> + array(4) { + [0]=> + string(2) "b," + [1]=> + string(0) "" + [2]=> + string(1) "b" + [3]=> + string(0) "" + } + [2]=> + array(4) { + [0]=> + string(2) "&c" + [1]=> + string(1) "&" + [2]=> + string(1) "c" + [3]=> + string(0) "" + } +} +int(1) +array(1) { + [0]=> + array(3) { + [0]=> + array(2) { + [0]=> + string(46) "zend_parse_parameters( 0, "addd|s/", a, b, &c)" + [1]=> + int(0) + } + [1]=> + array(2) { + [0]=> + string(7) "addd|s/" + [1]=> + int(27) + } + [2]=> + array(2) { + [0]=> + string(9) "a, b, &c)" + [1]=> + int(37) + } + } +} +string(9) "hello + + + +" +array(3) { + [0]=> + array(2) { + [0]=> + string(0) "" + [1]=> + int(0) + } + [1]=> + array(2) { + [0]=> + string(13) "s, preg_match" + [1]=> + int(13) + } + [2]=> + array(2) { + [0]=> + string(9) " +{ +lalala" + [1]=> + int(27) + } +} |
