diff options
| author | advect <advect@gmail.com> | 2010-10-30 16:06:50 +0900 |
|---|---|---|
| committer | advect <advect@gmail.com> | 2010-10-30 16:06:50 +0900 |
| commit | bad69fd3977fca94d643a88d819badaca4839fd5 (patch) | |
| tree | 87ca7d41a9d66fdef51e5b035d39ba44d62380c7 /php/tests | |
| parent | b4ae6bf82c8bcd6012c805a2206fcb81ad39dd0b (diff) | |
| download | msgpack-python-bad69fd3977fca94d643a88d819badaca4839fd5.tar.gz | |
php: fiexed unpacker
Diffstat (limited to 'php/tests')
| -rw-r--r-- | php/tests/009.phpt | 28 | ||||
| -rw-r--r-- | php/tests/009b.phpt | 28 | ||||
| -rw-r--r-- | php/tests/024.phpt | 11 | ||||
| -rw-r--r-- | php/tests/024b.phpt | 11 | ||||
| -rw-r--r-- | php/tests/026.phpt | 52 | ||||
| -rw-r--r-- | php/tests/026b.phpt | 52 | ||||
| -rw-r--r-- | php/tests/028.phpt | 544 | ||||
| -rw-r--r-- | php/tests/028b.phpt | 544 | ||||
| -rw-r--r-- | php/tests/042.phpt | 2 | ||||
| -rw-r--r-- | php/tests/060.phpt | 12 | ||||
| -rw-r--r-- | php/tests/060b.phpt | 12 | ||||
| -rw-r--r-- | php/tests/061.phpt | 12 | ||||
| -rw-r--r-- | php/tests/061b.phpt | 12 | ||||
| -rw-r--r-- | php/tests/064.phpt | 315 | ||||
| -rw-r--r-- | php/tests/064b.phpt | 321 | ||||
| -rw-r--r-- | php/tests/065.phpt | 320 | ||||
| -rw-r--r-- | php/tests/065b.phpt | 326 | ||||
| -rw-r--r-- | php/tests/066.phpt | 70 | ||||
| -rw-r--r-- | php/tests/067.phpt | 74 | ||||
| -rw-r--r-- | php/tests/070.phpt | 12 | ||||
| -rw-r--r-- | php/tests/070b.phpt | 12 | ||||
| -rw-r--r-- | php/tests/071.phpt | 12 | ||||
| -rw-r--r-- | php/tests/071b.phpt | 12 | ||||
| -rw-r--r-- | php/tests/072.phpt | 12 | ||||
| -rw-r--r-- | php/tests/072b.phpt | 12 | ||||
| -rw-r--r-- | php/tests/073.phpt | 12 | ||||
| -rw-r--r-- | php/tests/073b.phpt | 12 |
27 files changed, 2134 insertions, 708 deletions
diff --git a/php/tests/009.phpt b/php/tests/009.phpt index 9992988..a1534c9 100644 --- a/php/tests/009.phpt +++ b/php/tests/009.phpt @@ -2,8 +2,8 @@ Check for reference serialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -74,13 +74,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } @@ -91,13 +85,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } @@ -107,13 +95,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/009b.phpt b/php/tests/009b.phpt index 7765d62..10e7259 100644 --- a/php/tests/009b.phpt +++ b/php/tests/009b.phpt @@ -2,8 +2,8 @@ Check for reference serialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -74,7 +74,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } @@ -85,7 +91,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } @@ -95,7 +107,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/024.phpt b/php/tests/024.phpt index 9b185f7..97db2a7 100644 --- a/php/tests/024.phpt +++ b/php/tests/024.phpt @@ -2,8 +2,8 @@ Recursive objects --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -160,11 +160,6 @@ object(Obj4)#%d (2) { [%r"?a"?:("Obj4":)?private"?%r]=> int(100) [%r"?obj"?:("Obj4":)?private"?%r]=> - object(Obj4)#%d (2) { - [%r"?a"?:("Obj4":)?private"?%r]=> - int(100) - [%r"?obj"?:("Obj4":)?private"?%r]=> - *RECURSION* - } + *RECURSION* } OK diff --git a/php/tests/024b.phpt b/php/tests/024b.phpt index 7c691be..c7612d7 100644 --- a/php/tests/024b.phpt +++ b/php/tests/024b.phpt @@ -2,8 +2,8 @@ Recursive objects --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -160,6 +160,11 @@ object(Obj4)#%d (2) { [%r"?a"?:("Obj4":)?private"?%r]=> int(100) [%r"?obj"?:("Obj4":)?private"?%r]=> - *RECURSION* + object(Obj4)#%d (2) { + [%r"?a"?:("Obj4":)?private"?%r]=> + int(100) + [%r"?obj"?:("Obj4":)?private"?%r]=> + *RECURSION* + } } OK diff --git a/php/tests/026.phpt b/php/tests/026.phpt index c243ef5..383289d 100644 --- a/php/tests/026.phpt +++ b/php/tests/026.phpt @@ -3,8 +3,8 @@ Cyclic array test --INI-- --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -62,17 +62,7 @@ array(2) { string(1) "e" } ["f"]=> - &array(2) { - ["a"]=> - array(2) { - ["b"]=> - string(1) "c" - ["d"]=> - string(1) "e" - } - ["f"]=> - *RECURSION* - } + *RECURSION* } } OK @@ -84,17 +74,7 @@ array(1) { [1]=> int(2) [2]=> - array(1) { - ["foo"]=> - &array(3) { - [0]=> - int(1) - [1]=> - int(2) - [2]=> - *RECURSION* - } - } + *RECURSION* } } array(1) { @@ -107,17 +87,7 @@ array(1) { [2]=> array(1) { ["foo"]=> - &array(3) { - [0]=> - int(1) - [1]=> - int(2) - [2]=> - array(1) { - ["foo"]=> - *RECURSION* - } - } + *RECURSION* } } } @@ -131,17 +101,7 @@ array(1) { [2]=> array(1) { ["foo"]=> - &array(3) { - [0]=> - int(1) - [1]=> - string(1) "b" - [2]=> - array(1) { - ["foo"]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/026b.phpt b/php/tests/026b.phpt index f7a3381..9eef7cb 100644 --- a/php/tests/026b.phpt +++ b/php/tests/026b.phpt @@ -3,8 +3,8 @@ Cyclic array test --INI-- --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -62,7 +62,17 @@ array(2) { string(1) "e" } ["f"]=> - *RECURSION* + &array(2) { + ["a"]=> + array(2) { + ["b"]=> + string(1) "c" + ["d"]=> + string(1) "e" + } + ["f"]=> + *RECURSION* + } } } OK @@ -74,7 +84,17 @@ array(1) { [1]=> int(2) [2]=> - *RECURSION* + array(1) { + ["foo"]=> + &array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + *RECURSION* + } + } } } array(1) { @@ -87,7 +107,17 @@ array(1) { [2]=> array(1) { ["foo"]=> - *RECURSION* + &array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + array(1) { + ["foo"]=> + *RECURSION* + } + } } } } @@ -101,7 +131,17 @@ array(1) { [2]=> array(1) { ["foo"]=> - *RECURSION* + &array(3) { + [0]=> + int(1) + [1]=> + string(1) "b" + [2]=> + array(1) { + ["foo"]=> + *RECURSION* + } + } } } } diff --git a/php/tests/028.phpt b/php/tests/028.phpt index 00db675..1d326ce 100644 --- a/php/tests/028.phpt +++ b/php/tests/028.phpt @@ -2,8 +2,8 @@ Serialize object into session, full set --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -107,281 +107,29 @@ array(3) { [%r"?d1"?:("Foo":)?private"?%r]=> object(Bar)#4 (3) { ["d1"]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d3"?:protected"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* } [%r"?d2"?:protected"?%r]=> object(Bar)#4 (3) { ["d1"]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d3"?:protected"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* } ["d3"]=> object(Bar)#4 (3) { ["d1"]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* [%r"?d3"?:protected"?%r]=> - object(Foo)#3 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - [%r"?d2"?:protected"?%r]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - ["d3"]=> - object(Bar)#4 (3) { - ["d1"]=> - *RECURSION* - [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* - [%r"?d3"?:protected"?%r]=> - *RECURSION* - } - } + *RECURSION* } } ["test"]=> @@ -391,281 +139,29 @@ array(3) { ["d1"]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:protected"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* ["d3"]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* } [%r"?d2"?:("Bar":)?private"?%r]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:protected"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* ["d3"]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* } [%r"?d3"?:protected"?%r]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* [%r"?d2"?:protected"?%r]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* ["d3"]=> - object(Bar)#5 (3) { - ["d1"]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d2"?:("Bar":)?private"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - [%r"?d3"?:protected"?%r]=> - object(Foo)#6 (3) { - [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* - [%r"?d2"?:protected"?%r]=> - *RECURSION* - ["d3"]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/028b.phpt b/php/tests/028b.phpt index 7331a57..0efba18 100644 --- a/php/tests/028b.phpt +++ b/php/tests/028b.phpt @@ -2,8 +2,8 @@ Serialize object into session, full set --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -107,29 +107,281 @@ array(3) { [%r"?d1"?:("Foo":)?private"?%r]=> object(Bar)#4 (3) { ["d1"]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d3"?:protected"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } } [%r"?d2"?:protected"?%r]=> object(Bar)#4 (3) { ["d1"]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d3"?:protected"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } } ["d3"]=> object(Bar)#4 (3) { ["d1"]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d2"?:("Bar":)?private"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } [%r"?d3"?:protected"?%r]=> - *RECURSION* + object(Foo)#3 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + [%r"?d2"?:protected"?%r]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + ["d3"]=> + object(Bar)#4 (3) { + ["d1"]=> + *RECURSION* + [%r"?d2"?:("Bar":)?private"?%r]=> + *RECURSION* + [%r"?d3"?:protected"?%r]=> + *RECURSION* + } + } } } ["test"]=> @@ -139,29 +391,281 @@ array(3) { ["d1"]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } [%r"?d2"?:protected"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } ["d3"]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } } [%r"?d2"?:("Bar":)?private"?%r]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } [%r"?d2"?:protected"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } ["d3"]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } } [%r"?d3"?:protected"?%r]=> object(Foo)#6 (3) { [%r"?d1"?:("Foo":)?private"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } [%r"?d2"?:protected"?%r]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } ["d3"]=> - *RECURSION* + object(Bar)#5 (3) { + ["d1"]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d2"?:("Bar":)?private"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + [%r"?d3"?:protected"?%r]=> + object(Foo)#6 (3) { + [%r"?d1"?:("Foo":)?private"?%r]=> + *RECURSION* + [%r"?d2"?:protected"?%r]=> + *RECURSION* + ["d3"]=> + *RECURSION* + } + } } } } diff --git a/php/tests/042.phpt b/php/tests/042.phpt index 2ba73ac..83e8bc7 100644 --- a/php/tests/042.phpt +++ b/php/tests/042.phpt @@ -3,7 +3,7 @@ Closure --SKIPIF-- <?php if (version_compare(PHP_VERSION, '5.3.0') < 0) { - echo "skip closures only for PHP 5.3.0+"; + echo "skip closures only for PHP 5.3.0 or newer"; } --FILE-- <?php diff --git a/php/tests/060.phpt b/php/tests/060.phpt index 649d788..3ea97eb 100644 --- a/php/tests/060.phpt +++ b/php/tests/060.phpt @@ -2,8 +2,8 @@ Check for buffered streaming unserialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -240,13 +240,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/060b.phpt b/php/tests/060b.phpt index 0b947c8..a2e50bc 100644 --- a/php/tests/060b.phpt +++ b/php/tests/060b.phpt @@ -2,8 +2,8 @@ Check for buffered streaming unserialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -240,7 +240,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/061.phpt b/php/tests/061.phpt index 7ecc0c9..2b42d31 100644 --- a/php/tests/061.phpt +++ b/php/tests/061.phpt @@ -2,8 +2,8 @@ Check for unbuffered streaming unserialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -245,13 +245,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/061b.phpt b/php/tests/061b.phpt index efb3a9b..21706db 100644 --- a/php/tests/061b.phpt +++ b/php/tests/061b.phpt @@ -2,8 +2,8 @@ Check for unbuffered streaming unserialization --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -245,7 +245,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/064.phpt b/php/tests/064.phpt new file mode 100644 index 0000000..a7a2f3b --- /dev/null +++ b/php/tests/064.phpt @@ -0,0 +1,315 @@ +--TEST-- +Check for buffered streaming unserialization (single) +--SKIPIF-- +<?php +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; +} +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + $serialized = msgpack_serialize($variable); + + global $unpacker; + + $length = strlen($serialized); + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str = substr($serialized, $i, $len); + + $unpacker->feed($str); + if ($unpacker->execute()) + { + $unserialized = $unpacker->data(); + var_dump($unserialized); + $unpacker->reset(); + } + + $i += $len; + } + + if (!is_bool($test)) + { + echo $unserialized === $variable ? 'OK' : 'ERROR', PHP_EOL; + } + else + { + echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL; + } +} + +test('null', null); + +test('bool: true', true); +test('bool: false', false); + +test('zero: 0', 0); +test('small: 1', 1); +test('small: -1', -1); +test('medium: 1000', 1000); +test('medium: -1000', -1000); +test('large: 100000', 100000); +test('large: -100000', -100000); + +test('double: 123.456', 123.456); + +test('empty: ""', ""); +test('string: "foobar"', "foobar"); + +test('array', array(), false); +test('array(1, 2, 3)', array(1, 2, 3), false); +test('array(array(1, 2, 3), arr...', array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)), false); + +test('array("foo", "foo", "foo")', array("foo", "foo", "foo"), false); +test('array("one" => 1, "two" => 2))', array("one" => 1, "two" => 2), false); +test('array("kek" => "lol", "lol" => "kek")', array("kek" => "lol", "lol" => "kek"), false); +test('array("" => "empty")', array("" => "empty"), false); + +$a = array('foo'); +test('array($a, $a)', array($a, $a), false); +test('array(&$a, &$a)', array(&$a, &$a), false); + +$a = array(null); +$b = array(&$a); +$a[0] = &$b; + +test('cyclic', $a, true); + +$a = array( + 'a' => array( + 'b' => 'c', + 'd' => 'e' + ), + 'f' => array( + 'g' => 'h' + ) + ); + +test('array', $a, false); + +class Obj { + public $a; + protected $b; + private $c; + + function __construct($a, $b, $c) { + $this->a = $a; + $this->b = $b; + $this->c = $c; + } +} + +test('object', new Obj(1, 2, 3), false); + +test('object', array(new Obj(1, 2, 3), new Obj(4, 5, 6)), false); + +$o = new Obj(1, 2, 3); + +test('object', array(&$o, &$o), false); +--EXPECTF-- +NULL +OK +bool(true) +OK +bool(false) +OK +int(0) +OK +int(1) +OK +int(-1) +OK +int(1000) +OK +int(-1000) +OK +int(100000) +OK +int(-100000) +OK +float(123.456) +OK +string(0) "" +OK +string(6) "foobar" +OK +array(0) { +} +OK +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +OK +array(3) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(3) { + [0]=> + int(4) + [1]=> + int(5) + [2]=> + int(6) + } + [2]=> + array(3) { + [0]=> + int(7) + [1]=> + int(8) + [2]=> + int(9) + } +} +OK +array(3) { + [0]=> + string(3) "foo" + [1]=> + string(3) "foo" + [2]=> + string(3) "foo" +} +OK +array(2) { + ["one"]=> + int(1) + ["two"]=> + int(2) +} +OK +array(2) { + ["kek"]=> + string(3) "lol" + ["lol"]=> + string(3) "kek" +} +OK +array(1) { + [""]=> + string(5) "empty" +} +OK +array(2) { + [0]=> + array(1) { + [0]=> + string(3) "foo" + } + [1]=> + array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(2) { + [0]=> + &array(1) { + [0]=> + string(3) "foo" + } + [1]=> + &array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } +} +OK +array(2) { + ["a"]=> + array(2) { + ["b"]=> + string(1) "c" + ["d"]=> + string(1) "e" + } + ["f"]=> + array(1) { + ["g"]=> + string(1) "h" + } +} +OK +object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) +} +OK +array(2) { + [0]=> + object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + object(Obj)#%d (3) { + ["a"]=> + int(4) + [%r"?b"?:protected"?%r]=> + int(5) + [%r"?c"?:("Obj":)?private"?%r]=> + int(6) + } +} +OK +array(2) { + [0]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } +} +OK diff --git a/php/tests/064b.phpt b/php/tests/064b.phpt new file mode 100644 index 0000000..aba7a2d --- /dev/null +++ b/php/tests/064b.phpt @@ -0,0 +1,321 @@ +--TEST-- +Check for buffered streaming unserialization (single) +--SKIPIF-- +<?php +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; +} +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + $serialized = msgpack_serialize($variable); + + global $unpacker; + + $length = strlen($serialized); + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str = substr($serialized, $i, $len); + + $unpacker->feed($str); + if ($unpacker->execute()) + { + $unserialized = $unpacker->data(); + var_dump($unserialized); + $unpacker->reset(); + } + + $i += $len; + } + + if (!is_bool($test)) + { + echo $unserialized === $variable ? 'OK' : 'ERROR', PHP_EOL; + } + else + { + echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL; + } +} + +test('null', null); + +test('bool: true', true); +test('bool: false', false); + +test('zero: 0', 0); +test('small: 1', 1); +test('small: -1', -1); +test('medium: 1000', 1000); +test('medium: -1000', -1000); +test('large: 100000', 100000); +test('large: -100000', -100000); + +test('double: 123.456', 123.456); + +test('empty: ""', ""); +test('string: "foobar"', "foobar"); + +test('array', array(), false); +test('array(1, 2, 3)', array(1, 2, 3), false); +test('array(array(1, 2, 3), arr...', array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)), false); + +test('array("foo", "foo", "foo")', array("foo", "foo", "foo"), false); +test('array("one" => 1, "two" => 2))', array("one" => 1, "two" => 2), false); +test('array("kek" => "lol", "lol" => "kek")', array("kek" => "lol", "lol" => "kek"), false); +test('array("" => "empty")', array("" => "empty"), false); + +$a = array('foo'); +test('array($a, $a)', array($a, $a), false); +test('array(&$a, &$a)', array(&$a, &$a), false); + +$a = array(null); +$b = array(&$a); +$a[0] = &$b; + +test('cyclic', $a, true); + +$a = array( + 'a' => array( + 'b' => 'c', + 'd' => 'e' + ), + 'f' => array( + 'g' => 'h' + ) + ); + +test('array', $a, false); + +class Obj { + public $a; + protected $b; + private $c; + + function __construct($a, $b, $c) { + $this->a = $a; + $this->b = $b; + $this->c = $c; + } +} + +test('object', new Obj(1, 2, 3), false); + +test('object', array(new Obj(1, 2, 3), new Obj(4, 5, 6)), false); + +$o = new Obj(1, 2, 3); + +test('object', array(&$o, &$o), false); +--EXPECTF-- +NULL +OK +bool(true) +OK +bool(false) +OK +int(0) +OK +int(1) +OK +int(-1) +OK +int(1000) +OK +int(-1000) +OK +int(100000) +OK +int(-100000) +OK +float(123.456) +OK +string(0) "" +OK +string(6) "foobar" +OK +array(0) { +} +OK +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +OK +array(3) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(3) { + [0]=> + int(4) + [1]=> + int(5) + [2]=> + int(6) + } + [2]=> + array(3) { + [0]=> + int(7) + [1]=> + int(8) + [2]=> + int(9) + } +} +OK +array(3) { + [0]=> + string(3) "foo" + [1]=> + string(3) "foo" + [2]=> + string(3) "foo" +} +OK +array(2) { + ["one"]=> + int(1) + ["two"]=> + int(2) +} +OK +array(2) { + ["kek"]=> + string(3) "lol" + ["lol"]=> + string(3) "kek" +} +OK +array(1) { + [""]=> + string(5) "empty" +} +OK +array(2) { + [0]=> + array(1) { + [0]=> + string(3) "foo" + } + [1]=> + array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(2) { + [0]=> + &array(1) { + [0]=> + string(3) "foo" + } + [1]=> + &array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } + } + } +} +OK +array(2) { + ["a"]=> + array(2) { + ["b"]=> + string(1) "c" + ["d"]=> + string(1) "e" + } + ["f"]=> + array(1) { + ["g"]=> + string(1) "h" + } +} +OK +object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) +} +OK +array(2) { + [0]=> + object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + object(Obj)#%d (3) { + ["a"]=> + int(4) + [%r"?b"?:protected"?%r]=> + int(5) + [%r"?c"?:("Obj":)?private"?%r]=> + int(6) + } +} +OK +array(2) { + [0]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } +} +OK diff --git a/php/tests/065.phpt b/php/tests/065.phpt new file mode 100644 index 0000000..c37ca12 --- /dev/null +++ b/php/tests/065.phpt @@ -0,0 +1,320 @@ +--TEST-- +Check for unbuffered streaming unserialization (single) +--SKIPIF-- +<?php +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; +} +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + $serialized = msgpack_serialize($variable); + + global $unpacker; + + $length = strlen($serialized); + + $str = ""; + $offset = 0; + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str .= substr($serialized, $i, $len); + + if ($unpacker->execute($str, $offset)) + { + $unserialized = $unpacker->data(); + var_dump($unserialized); + + $unpacker->reset(); + $str = ""; + $offset = 0; + } + + $i += $len; + } + + if (!is_bool($test)) + { + echo $unserialized === $variable ? 'OK' : 'ERROR', PHP_EOL; + } + else + { + echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL; + } +} + +test('null', null); + +test('boo:l true', true); +test('bool: true', false); + +test('zero: 0', 0); +test('small: 1', 1); +test('small: -1', -1); +test('medium: 1000', 1000); +test('medium: -1000', -1000); +test('large: 100000', 100000); +test('large: -100000', -100000); + +test('double: 123.456', 123.456); + +test('empty: ""', ""); +test('string: "foobar"', "foobar"); + +test('empty: array', array(), false); +test('empty: array(1, 2, 3)', array(1, 2, 3), false); +test('empty: array(array(1, 2, 3), arr...', array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)), false); + +test('array("foo", "foo", "foo")', array("foo", "foo", "foo"), false); +test('array("one" => 1, "two" => 2))', array("one" => 1, "two" => 2), false); +test('array("kek" => "lol", "lol" => "kek")', array("kek" => "lol", "lol" => "kek"), false); +test('array("" => "empty")', array("" => "empty"), false); + +$a = array('foo'); +test('array($a, $a)', array($a, $a), false); +test('array(&$a, &$a)', array(&$a, &$a), false); + +$a = array(null); +$b = array(&$a); +$a[0] = &$b; + +test('cyclic', $a, true); + +$a = array( + 'a' => array( + 'b' => 'c', + 'd' => 'e' + ), + 'f' => array( + 'g' => 'h' + ) + ); + +test('array', $a, false); + +class Obj { + public $a; + protected $b; + private $c; + + function __construct($a, $b, $c) { + $this->a = $a; + $this->b = $b; + $this->c = $c; + } +} + +test('object', new Obj(1, 2, 3), false); + +test('object', array(new Obj(1, 2, 3), new Obj(4, 5, 6)), false); + +$o = new Obj(1, 2, 3); + +test('object', array(&$o, &$o), false); +--EXPECTF-- +NULL +OK +bool(true) +OK +bool(false) +OK +int(0) +OK +int(1) +OK +int(-1) +OK +int(1000) +OK +int(-1000) +OK +int(100000) +OK +int(-100000) +OK +float(123.456) +OK +string(0) "" +OK +string(6) "foobar" +OK +array(0) { +} +OK +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +OK +array(3) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(3) { + [0]=> + int(4) + [1]=> + int(5) + [2]=> + int(6) + } + [2]=> + array(3) { + [0]=> + int(7) + [1]=> + int(8) + [2]=> + int(9) + } +} +OK +array(3) { + [0]=> + string(3) "foo" + [1]=> + string(3) "foo" + [2]=> + string(3) "foo" +} +OK +array(2) { + ["one"]=> + int(1) + ["two"]=> + int(2) +} +OK +array(2) { + ["kek"]=> + string(3) "lol" + ["lol"]=> + string(3) "kek" +} +OK +array(1) { + [""]=> + string(5) "empty" +} +OK +array(2) { + [0]=> + array(1) { + [0]=> + string(3) "foo" + } + [1]=> + array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(2) { + [0]=> + &array(1) { + [0]=> + string(3) "foo" + } + [1]=> + &array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } +} +OK +array(2) { + ["a"]=> + array(2) { + ["b"]=> + string(1) "c" + ["d"]=> + string(1) "e" + } + ["f"]=> + array(1) { + ["g"]=> + string(1) "h" + } +} +OK +object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) +} +OK +array(2) { + [0]=> + object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + object(Obj)#%d (3) { + ["a"]=> + int(4) + [%r"?b"?:protected"?%r]=> + int(5) + [%r"?c"?:("Obj":)?private"?%r]=> + int(6) + } +} +OK +array(2) { + [0]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } +} +OK diff --git a/php/tests/065b.phpt b/php/tests/065b.phpt new file mode 100644 index 0000000..c623d9a --- /dev/null +++ b/php/tests/065b.phpt @@ -0,0 +1,326 @@ +--TEST-- +Check for unbuffered streaming unserialization (single) +--SKIPIF-- +<?php +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; +} +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + $serialized = msgpack_serialize($variable); + + global $unpacker; + + $length = strlen($serialized); + + $str = ""; + $offset = 0; + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str .= substr($serialized, $i, $len); + + if ($unpacker->execute($str, $offset)) + { + $unserialized = $unpacker->data(); + var_dump($unserialized); + + $unpacker->reset(); + $str = ""; + $offset = 0; + } + + $i += $len; + } + + if (!is_bool($test)) + { + echo $unserialized === $variable ? 'OK' : 'ERROR', PHP_EOL; + } + else + { + echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL; + } +} + +test('null', null); + +test('boo:l true', true); +test('bool: true', false); + +test('zero: 0', 0); +test('small: 1', 1); +test('small: -1', -1); +test('medium: 1000', 1000); +test('medium: -1000', -1000); +test('large: 100000', 100000); +test('large: -100000', -100000); + +test('double: 123.456', 123.456); + +test('empty: ""', ""); +test('string: "foobar"', "foobar"); + +test('empty: array', array(), false); +test('empty: array(1, 2, 3)', array(1, 2, 3), false); +test('empty: array(array(1, 2, 3), arr...', array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)), false); + +test('array("foo", "foo", "foo")', array("foo", "foo", "foo"), false); +test('array("one" => 1, "two" => 2))', array("one" => 1, "two" => 2), false); +test('array("kek" => "lol", "lol" => "kek")', array("kek" => "lol", "lol" => "kek"), false); +test('array("" => "empty")', array("" => "empty"), false); + +$a = array('foo'); +test('array($a, $a)', array($a, $a), false); +test('array(&$a, &$a)', array(&$a, &$a), false); + +$a = array(null); +$b = array(&$a); +$a[0] = &$b; + +test('cyclic', $a, true); + +$a = array( + 'a' => array( + 'b' => 'c', + 'd' => 'e' + ), + 'f' => array( + 'g' => 'h' + ) + ); + +test('array', $a, false); + +class Obj { + public $a; + protected $b; + private $c; + + function __construct($a, $b, $c) { + $this->a = $a; + $this->b = $b; + $this->c = $c; + } +} + +test('object', new Obj(1, 2, 3), false); + +test('object', array(new Obj(1, 2, 3), new Obj(4, 5, 6)), false); + +$o = new Obj(1, 2, 3); + +test('object', array(&$o, &$o), false); +--EXPECTF-- +NULL +OK +bool(true) +OK +bool(false) +OK +int(0) +OK +int(1) +OK +int(-1) +OK +int(1000) +OK +int(-1000) +OK +int(100000) +OK +int(-100000) +OK +float(123.456) +OK +string(0) "" +OK +string(6) "foobar" +OK +array(0) { +} +OK +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +OK +array(3) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(3) { + [0]=> + int(4) + [1]=> + int(5) + [2]=> + int(6) + } + [2]=> + array(3) { + [0]=> + int(7) + [1]=> + int(8) + [2]=> + int(9) + } +} +OK +array(3) { + [0]=> + string(3) "foo" + [1]=> + string(3) "foo" + [2]=> + string(3) "foo" +} +OK +array(2) { + ["one"]=> + int(1) + ["two"]=> + int(2) +} +OK +array(2) { + ["kek"]=> + string(3) "lol" + ["lol"]=> + string(3) "kek" +} +OK +array(1) { + [""]=> + string(5) "empty" +} +OK +array(2) { + [0]=> + array(1) { + [0]=> + string(3) "foo" + } + [1]=> + array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(2) { + [0]=> + &array(1) { + [0]=> + string(3) "foo" + } + [1]=> + &array(1) { + [0]=> + string(3) "foo" + } +} +OK +array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } + } + } +} +OK +array(2) { + ["a"]=> + array(2) { + ["b"]=> + string(1) "c" + ["d"]=> + string(1) "e" + } + ["f"]=> + array(1) { + ["g"]=> + string(1) "h" + } +} +OK +object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) +} +OK +array(2) { + [0]=> + object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + object(Obj)#%d (3) { + ["a"]=> + int(4) + [%r"?b"?:protected"?%r]=> + int(5) + [%r"?c"?:("Obj":)?private"?%r]=> + int(6) + } +} +OK +array(2) { + [0]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } + [1]=> + &object(Obj)#%d (3) { + ["a"]=> + int(1) + [%r"?b"?:protected"?%r]=> + int(2) + [%r"?c"?:("Obj":)?private"?%r]=> + int(3) + } +} +OK diff --git a/php/tests/066.phpt b/php/tests/066.phpt new file mode 100644 index 0000000..d2e430d --- /dev/null +++ b/php/tests/066.phpt @@ -0,0 +1,70 @@ +--TEST-- +Extra bytes buffered streaming unserialization (single) +--SKIPIF-- +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + global $unpacker; + + foreach ($variable as $var) + { + $serialized = pack('H*', $var); + + $length = strlen($serialized); + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str = substr($serialized, $i, $len); + + $unpacker->feed($str); + + while (true) { + if ($unpacker->execute()) { + $unserialized = $unpacker->data(); + var_dump($unserialized); + $unpacker->reset(); + } else { + break; + } + } + $i += $len; + } + } +} + +test('array(1, 2, 3)', array('9301020392')); +test('array(1, 2, 3), array(3, 9), 4', array('9301020392', '030904')); +--EXPECTF-- +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +array(2) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(2) { + [0]=> + int(3) + [1]=> + int(9) + } +} +int(4) diff --git a/php/tests/067.phpt b/php/tests/067.phpt new file mode 100644 index 0000000..96c1442 --- /dev/null +++ b/php/tests/067.phpt @@ -0,0 +1,74 @@ +--TEST-- +Extra bytes unbuffered streaming unserialization (single) +--SKIPIF-- +--FILE-- +<?php +if(!extension_loaded('msgpack')) { + dl('msgpack.' . PHP_SHLIB_SUFFIX); +} + +$unpacker = new MessagePackUnpacker(); + +function test($type, $variable, $test = null) { + global $unpacker; + + $str = ""; + $offset = 0; + + foreach ($variable as $var) + { + $serialized = pack('H*', $var); + + $length = strlen($serialized); + + for ($i = 0; $i < $length;) { + $len = rand(1, 10); + $str .= substr($serialized, $i, $len); + + while (true) { + if ($unpacker->execute($str, $offset)) { + $unserialized = $unpacker->data(); + var_dump($unserialized); + + $unpacker->reset(); + $str = substr($str, $offset); + $offset = 0; + } else { + break; + } + } + $i += $len; + } + } +} + +test('array(1, 2, 3)', array('9301020392')); +test('array(1, 2, 3), array(3, 9), 4', array('9301020392', '030904')); +--EXPECTF-- +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +} +array(2) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } + [1]=> + array(2) { + [0]=> + int(3) + [1]=> + int(9) + } +} +int(4) diff --git a/php/tests/070.phpt b/php/tests/070.phpt index 893023b..affcc72 100644 --- a/php/tests/070.phpt +++ b/php/tests/070.phpt @@ -2,8 +2,8 @@ Check for alias functions --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -224,13 +224,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/070b.phpt b/php/tests/070b.phpt index 109ddc1..0aaa4e7 100644 --- a/php/tests/070b.phpt +++ b/php/tests/070b.phpt @@ -2,8 +2,8 @@ Check for alias functions --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -224,7 +224,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/071.phpt b/php/tests/071.phpt index 431303b..20041d4 100644 --- a/php/tests/071.phpt +++ b/php/tests/071.phpt @@ -2,8 +2,8 @@ Check for class methods --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -226,13 +226,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/071b.phpt b/php/tests/071b.phpt index 770d06e..f663073 100644 --- a/php/tests/071b.phpt +++ b/php/tests/071b.phpt @@ -2,8 +2,8 @@ Check for class methods --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -226,7 +226,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/072.phpt b/php/tests/072.phpt index ea79a56..0f89e0a 100644 --- a/php/tests/072.phpt +++ b/php/tests/072.phpt @@ -2,8 +2,8 @@ Check for class methods unpacker --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -266,13 +266,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/072b.phpt b/php/tests/072b.phpt index c7b0c3c..05fe41e 100644 --- a/php/tests/072b.phpt +++ b/php/tests/072b.phpt @@ -2,8 +2,8 @@ Check for class methods unpacker --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -266,7 +266,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } diff --git a/php/tests/073.phpt b/php/tests/073.phpt index d3a7637..f6a91a6 100644 --- a/php/tests/073.phpt +++ b/php/tests/073.phpt @@ -2,8 +2,8 @@ Check for class unpacker --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.3') >= 0) { - echo "skip tests in PHP 5.3.2 and lower"; +if (version_compare(PHP_VERSION, '5.3.2') <= 0) { + echo "skip tests in PHP 5.3.3 or newer"; } --FILE-- <?php @@ -267,13 +267,7 @@ array(1) { [0]=> &array(1) { [0]=> - &array(1) { - [0]=> - &array(1) { - [0]=> - *RECURSION* - } - } + *RECURSION* } } } diff --git a/php/tests/073b.phpt b/php/tests/073b.phpt index 131a534..065a2aa 100644 --- a/php/tests/073b.phpt +++ b/php/tests/073b.phpt @@ -2,8 +2,8 @@ Check for class unpacker --SKIPIF-- <?php -if (version_compare(PHP_VERSION, '5.3.2') <= 0) { - echo "skip tests in PHP 5.3.3"; +if (version_compare(PHP_VERSION, '5.3.3') >= 0) { + echo "skip tests in PHP 5.3.2 or older"; } --FILE-- <?php @@ -267,7 +267,13 @@ array(1) { [0]=> &array(1) { [0]=> - *RECURSION* + &array(1) { + [0]=> + &array(1) { + [0]=> + *RECURSION* + } + } } } } |
