summaryrefslogtreecommitdiffstats
path: root/igbinary-tests.patch
diff options
context:
space:
mode:
Diffstat (limited to 'igbinary-tests.patch')
-rw-r--r--igbinary-tests.patch388
1 files changed, 0 insertions, 388 deletions
diff --git a/igbinary-tests.patch b/igbinary-tests.patch
deleted file mode 100644
index 8df5caa..0000000
--- a/igbinary-tests.patch
+++ /dev/null
@@ -1,388 +0,0 @@
-From: Tyson Andre <tysonandre775@hotmail.com>
-Date: Sun, 23 Aug 2020 17:35:38 -0400
-Subject: [PATCH] Update tests for php 8.0
-
-Fixes #278
----
- .appveyor.yml | 15 +-
- .travis.yml | 9 +-
- ci/run-tests-parallel.php | 486 ++++++++++++++++++++++------------
- package.xml | 23 +-
- src/php7/igbinary.h | 2 +-
- tests/igbinary_009b.phpt | 3 +
- tests/igbinary_009b_php8.phpt | 114 ++++++++
- tests/igbinary_026.phpt | 5 +-
- tests/igbinary_026_php8.phpt | 100 +++++++
- tests/igbinary_026b.phpt | 3 +
- tests/igbinary_026b_php8.phpt | 86 ++++++
- 11 files changed, 663 insertions(+), 183 deletions(-)
- create mode 100644 tests/igbinary_009b_php8.phpt
- create mode 100644 tests/igbinary_026_php8.phpt
- create mode 100644 tests/igbinary_026b_php8.phpt
-
-diff --git a/tests/igbinary_009b.phpt b/tests/igbinary_009b.phpt
-index 75fb2be..6322011 100644
---- a/tests/igbinary_009b.phpt
-+++ b/tests/igbinary_009b.phpt
-@@ -5,6 +5,9 @@ Check for reference serialization (Original example, not using var_dump)
- if (!extension_loaded('igbinary')) {
- echo "skip no igbinary";
- }
-+if (PHP_MAJOR_VERSION > 7) {
-+ echo "skip requires php 7.x\n";
-+}
- --INI--
- pcre.jit=0
- --FILE--
-diff --git a/tests/igbinary_009b_php8.phpt b/tests/igbinary_009b_php8.phpt
-new file mode 100644
-index 0000000..483576a
---- /dev/null
-+++ b/tests/igbinary_009b_php8.phpt
-@@ -0,0 +1,114 @@
-+--TEST--
-+Check for reference serialization in php 8 (Original example, not using var_dump)
-+--SKIPIF--
-+<?php
-+if (!extension_loaded('igbinary')) {
-+ echo "skip no igbinary";
-+}
-+if (PHP_MAJOR_VERSION < 8) {
-+ echo "skip requires php 8.0+\n";
-+}
-+--INI--
-+pcre.jit=0
-+--FILE--
-+<?php
-+error_reporting(E_ALL|E_STRICT);
-+// Verify that $type[0] is the same zval as $type[0][0][0], but different from $type[0]
-+function test_cyclic2($type, $variable) {
-+ $serialized = igbinary_serialize($variable);
-+ $unserialized = igbinary_unserialize($serialized);
-+ echo $type, "\n";
-+ echo substr(bin2hex($serialized), 8), "\n";
-+ // Can't use === or == on two recursive arrays in some cases
-+ echo array_keys($unserialized) === array_keys($variable) && array_keys($unserialized[0]) === array_keys($variable[0]) ? 'OK' : 'ERROR', "\n";
-+ ob_start();
-+ var_dump($variable);
-+ $dump_exp = ob_get_clean();
-+ ob_start();
-+ var_dump($unserialized);
-+ $dump_act = ob_get_clean();
-+ if (preg_replace('/&array/', 'array', $dump_act) !== preg_replace('/&array/', 'array', $dump_exp)) {
-+ echo "But var dump differs:\nActual:\n", $dump_act, "\nExpected\n", $dump_exp, "\n";
-+ echo "(Was normalized)\n";
-+ }
-+
-+ if (!isset($unserialized[0]) || count($unserialized) != 1) {
-+ printf("Unexpected keys: %s\n", array_keys($unserialized));
-+ return;
-+ } else if (!is_array($unserialized)) {
-+ printf("\$a[0] is not an array, it is %s", gettype($unserialized));
-+ return;
-+ }
-+ // Set a key, check for the presence of the key 2 levels deeper (Should find it) and 1 level deeper (Should not find it)
-+ $unserialized[0]['test'] = 'foo';
-+ if ($unserialized[0][0][0]['test'] !== 'foo') {
-+ echo "Expected the unserialized array to be cyclic\n";
-+ }
-+ if (isset($unserialized[0][0]['test'])) {
-+ echo "Expected the unserialized array to be cyclic AND of cycle depth 2, but cycle depth is 1\n";
-+ }
-+}
-+$a = [null];
-+$b = [&$a];
-+$a[0] = &$b;
-+// 1401060025140106002514010600250101 could also be serialized as 14010600251401060014010600250101 if we normalized the references which only occurred once in the serialization
-+// (Replace middle &array(&$a) with array(&$array), i.e. second 2514 with 14)
-+test_cyclic2('cyclic $a = array(&array(&$a)) - testing functionality', $a);
-+unset($a);
-+$a = null;
-+$a = [[&$a]];
-+test_cyclic2('cyclic $a = array(array(&$a)); $a[0] - testing functionality', $a[0]);
-+// $a serializes as 140106001401060025140106000101 - This is a bug, probably exists in php5 as well.
-+--EXPECT--
-+cyclic $a = array(&array(&$a)) - testing functionality
-+1401060025140106002514010600250101
-+OK
-+But var dump differs:
-+Actual:
-+array(1) {
-+ [0]=>
-+ &array(1) {
-+ [0]=>
-+ array(1) {
-+ [0]=>
-+ *RECURSION*
-+ }
-+ }
-+}
-+
-+Expected
-+array(1) {
-+ [0]=>
-+ &array(1) {
-+ [0]=>
-+ *RECURSION*
-+ }
-+}
-+
-+(Was normalized)
-+cyclic $a = array(array(&$a)); $a[0] - testing functionality
-+14010600251401060014010600250101
-+OK
-+But var dump differs:
-+Actual:
-+array(1) {
-+ [0]=>
-+ &array(1) {
-+ [0]=>
-+ array(1) {
-+ [0]=>
-+ *RECURSION*
-+ }
-+ }
-+}
-+
-+Expected
-+array(1) {
-+ [0]=>
-+ &array(1) {
-+ [0]=>
-+ *RECURSION*
-+ }
-+}
-+
-+(Was normalized)
-\ No newline at end of file
-diff --git a/tests/igbinary_026.phpt b/tests/igbinary_026.phpt
-index 950a218..c3f4386 100644
---- a/tests/igbinary_026.phpt
-+++ b/tests/igbinary_026.phpt
-@@ -4,9 +4,12 @@ Cyclic array test
- report_memleaks=0
- --SKIPIF--
- <?php
--if(!extension_loaded('igbinary')) {
-+if (!extension_loaded('igbinary')) {
- echo "skip no igbinary";
- }
-+if (PHP_MAJOR_VERSION > 7) {
-+ echo "skip requires php 7.x\n";
-+}
- --FILE--
- <?php
-
-diff --git a/tests/igbinary_026_php8.phpt b/tests/igbinary_026_php8.phpt
-new file mode 100644
-index 0000000..91313d1
---- /dev/null
-+++ b/tests/igbinary_026_php8.phpt
-@@ -0,0 +1,100 @@
-+--TEST--
-+Cyclic array test
-+--INI--
-+report_memleaks=0
-+--SKIPIF--
-+<?php
-+if (!extension_loaded('igbinary')) {
-+ echo "skip no igbinary\n";
-+}
-+if (PHP_MAJOR_VERSION < 8) {
-+ echo "skip requires php 8.0+\n";
-+}
-+--FILE--
-+<?php
-+
-+function test($type, $variable, $test) {
-+ $serialized = igbinary_serialize($variable);
-+ $unserialized = igbinary_unserialize($serialized);
-+
-+ echo $type, "\n";
-+ echo substr(bin2hex($serialized), 8), "\n";
-+ echo !$test || $unserialized == $variable ? 'OK' : 'ERROR', "\n";
-+}
-+
-+$a = array(
-+ 'a' => array(
-+ 'b' => 'c',
-+ 'd' => 'e'
-+ ),
-+);
-+
-+$a['f'] = &$a;
-+
-+test('array', $a, false);
-+
-+$a = array("foo" => &$b);
-+$b = array(1, 2, $a);
-+
-+$exp = $a;
-+$act = igbinary_unserialize(igbinary_serialize($a));
-+
-+ob_start();
-+var_dump($exp);
-+$dump_exp = ob_get_clean();
-+ob_start();
-+var_dump($act);
-+$dump_act = ob_get_clean();
-+
-+if ($dump_act !== $dump_exp) {
-+ echo "Var dump differs:\nActual:\n", $dump_act, "\nExpected:\n", $dump_exp, "\n";
-+} else {
-+ echo "Var dump OK\n";
-+}
-+
-+$act['foo'][1] = 'test value';
-+$exp['foo'][1] = 'test value';
-+if ($act['foo'][1] !== $act['foo'][2]['foo'][1]) {
-+ echo "Recursive elements differ:\n";
-+ echo "Actual\n";
-+ var_dump($act);
-+ var_dump($act['foo']);
-+ echo "Expected\n";
-+ var_dump($exp);
-+ var_dump($exp['foo']);
-+}
-+
-+?>
-+--EXPECT--
-+array
-+140211016114021101621101631101641101651101662514020e0001010e05250102
-+OK
-+Var dump differs:
-+Actual:
-+array(1) {
-+ ["foo"]=>
-+ &array(3) {
-+ [0]=>
-+ int(1)
-+ [1]=>
-+ int(2)
-+ [2]=>
-+ array(1) {
-+ ["foo"]=>
-+ *RECURSION*
-+ }
-+ }
-+}
-+
-+Expected:
-+array(1) {
-+ ["foo"]=>
-+ &array(3) {
-+ [0]=>
-+ int(1)
-+ [1]=>
-+ int(2)
-+ [2]=>
-+ *RECURSION*
-+ }
-+}
-diff --git a/tests/igbinary_026b.phpt b/tests/igbinary_026b.phpt
-index ba17ae3..6d0ad0d 100644
---- a/tests/igbinary_026b.phpt
-+++ b/tests/igbinary_026b.phpt
-@@ -7,6 +7,9 @@ report_memleaks=0
- if (!extension_loaded('igbinary')) {
- echo "skip no igbinary";
- }
-+if (PHP_MAJOR_VERSION > 7) {
-+ echo "skip requires php 7.x\n";
-+}
- --FILE--
- <?php
-
-diff --git a/tests/igbinary_026b_php8.phpt b/tests/igbinary_026b_php8.phpt
-new file mode 100644
-index 0000000..b5ffa9c
---- /dev/null
-+++ b/tests/igbinary_026b_php8.phpt
-@@ -0,0 +1,86 @@
-+--TEST--
-+Cyclic array test 2
-+--INI--
-+report_memleaks=0
-+--SKIPIF--
-+<?php
-+if (!extension_loaded('igbinary')) {
-+ echo "skip no igbinary\n";
-+}
-+if (PHP_MAJOR_VERSION < 8) {
-+ echo "skip requires php 8\n";
-+}
-+--FILE--
-+<?php
-+
-+$a = array("foo" => &$b);
-+$b = array(1, 2, $a);
-+
-+/* all three statements below should produce same output however PHP stock
-+ * unserialize/serialize produces different output (5.2.16). I consider this is
-+ * a PHP bug. - Oleg Grenrus
-+ */
-+
-+/* NOTE: This is different in php 8 because igbinary_unserialize() is declared to return a reference, not a value */
-+
-+//$k = $a;
-+//$k = unserialize(serialize($a));
-+$k = igbinary_unserialize(igbinary_serialize($a));
-+
-+function check($a, $k) {
-+ ob_start();
-+ var_dump($a);
-+ $a_str = ob_get_clean();
-+ ob_start();
-+ var_dump($k);
-+ $k_str = ob_get_clean();
-+
-+ if ($a_str !== $k_str) {
-+ echo "Output differs\n";
-+ echo "Expected:\n", $a_str, "\n";
-+ echo "Actual:\n", $k_str, "\n";
-+ } else {
-+ echo "OK\n";
-+ }
-+}
-+
-+check($a, $k);
-+
-+$a["foo"][2]["foo"][1] = "b";
-+$k["foo"][2]["foo"][1] = "b";
-+
-+check($a, $k);
-+
-+?>
-+--EXPECT--
-+Output differs
-+Expected:
-+array(1) {
-+ ["foo"]=>
-+ &array(3) {
-+ [0]=>
-+ int(1)
-+ [1]=>
-+ int(2)
-+ [2]=>
-+ *RECURSION*
-+ }
-+}
-+
-+Actual:
-+array(1) {
-+ ["foo"]=>
-+ &array(3) {
-+ [0]=>
-+ int(1)
-+ [1]=>
-+ int(2)
-+ [2]=>
-+ array(1) {
-+ ["foo"]=>
-+ *RECURSION*
-+ }
-+ }
-+}
-+
-+OK
-\ No newline at end of file