mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-23 03:05:48 +03:00
310 lines
6 KiB
Diff
310 lines
6 KiB
Diff
From 3d96f1aaf6e1eae26dd637a4795f8fee95b79c02 Mon Sep 17 00:00:00 2001
|
|
From: Nikita Popov <nikita.ppv@gmail.com>
|
|
Date: Thu, 10 Jun 2021 10:48:12 +0200
|
|
Subject: [PATCH] Fix tests for PHP 8.1
|
|
|
|
---
|
|
tests/apc_003b.phpt | 15 ++---
|
|
tests/apc_003b_legacy.phpt | 113 +++++++++++++++++++++++++++++++++++++
|
|
tests/apc_006_php73.phpt | 1 +
|
|
tests/apc_006_php81.phpt | 83 +++++++++++++++++++++++++++
|
|
tests/bug76145.phpt | 1 +
|
|
5 files changed, 206 insertions(+), 7 deletions(-)
|
|
create mode 100644 tests/apc_003b_legacy.phpt
|
|
create mode 100644 tests/apc_006_php81.phpt
|
|
|
|
diff --git a/tests/apc_003b.phpt b/tests/apc_003b.phpt
|
|
index 18b0d20..d7a18cc 100644
|
|
--- a/tests/apc_003b.phpt
|
|
+++ b/tests/apc_003b.phpt
|
|
@@ -2,7 +2,8 @@
|
|
APC: apcu_store/fetch with objects
|
|
--SKIPIF--
|
|
<?php
|
|
- require_once(dirname(__FILE__) . '/skipif.inc');
|
|
+require_once(dirname(__FILE__) . '/skipif.inc');
|
|
+if (PHP_VERSION_ID < 80100) die("skip For PHP >= 8.1");
|
|
?>
|
|
--INI--
|
|
apc.enabled=1
|
|
@@ -68,42 +69,42 @@ object(foo)#%d (1) {
|
|
bool(true)
|
|
}
|
|
object(baz)#%d (6) {
|
|
- ["pri":"baz":private]=>
|
|
- string(3) "baz"
|
|
["pub"]=>
|
|
string(3) "bar"
|
|
["pro":protected]=>
|
|
string(3) "bar"
|
|
["pri":"bar":private]=>
|
|
string(3) "bar"
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
["bar"]=>
|
|
bool(true)
|
|
["baz"]=>
|
|
bool(true)
|
|
}
|
|
object(baz)#%d (6) {
|
|
- ["pri":"baz":private]=>
|
|
- string(3) "baz"
|
|
["pub"]=>
|
|
string(3) "bar"
|
|
["pro":protected]=>
|
|
string(3) "bar"
|
|
["pri":"bar":private]=>
|
|
string(3) "mod"
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
["bar"]=>
|
|
bool(true)
|
|
["baz"]=>
|
|
bool(true)
|
|
}
|
|
object(baz)#%d (6) {
|
|
- ["pri":"baz":private]=>
|
|
- string(3) "baz"
|
|
["pub"]=>
|
|
string(3) "bar"
|
|
["pro":protected]=>
|
|
string(3) "bar"
|
|
["pri":"bar":private]=>
|
|
string(3) "mod"
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
["bar"]=>
|
|
bool(true)
|
|
["baz"]=>
|
|
diff --git a/tests/apc_003b_legacy.phpt b/tests/apc_003b_legacy.phpt
|
|
new file mode 100644
|
|
index 0000000..ca2fa08
|
|
--- /dev/null
|
|
+++ b/tests/apc_003b_legacy.phpt
|
|
@@ -0,0 +1,113 @@
|
|
+--TEST--
|
|
+APC: apcu_store/fetch with objects
|
|
+--SKIPIF--
|
|
+<?php
|
|
+require_once(dirname(__FILE__) . '/skipif.inc');
|
|
+if (PHP_VERSION_ID >= 80100) die("skip For PHP < 8.1");
|
|
+?>
|
|
+--INI--
|
|
+apc.enabled=1
|
|
+apc.enable_cli=1
|
|
+--FILE--
|
|
+<?php
|
|
+
|
|
+class foo { }
|
|
+$foo = new foo;
|
|
+var_dump($foo);
|
|
+apcu_store('foo',$foo);
|
|
+unset($foo);
|
|
+$bar = apcu_fetch('foo');
|
|
+var_dump($bar);
|
|
+$bar->a = true;
|
|
+var_dump($bar);
|
|
+
|
|
+class bar extends foo
|
|
+{
|
|
+ public $pub = 'bar';
|
|
+ protected $pro = 'bar';
|
|
+ private $pri = 'bar'; // we don't see this, we'd need php 5.1 new serialization
|
|
+
|
|
+ function __construct()
|
|
+ {
|
|
+ $this->bar = true;
|
|
+ }
|
|
+
|
|
+ function change()
|
|
+ {
|
|
+ $this->pri = 'mod';
|
|
+ }
|
|
+}
|
|
+
|
|
+class baz extends bar
|
|
+{
|
|
+ private $pri = 'baz';
|
|
+
|
|
+ function __construct()
|
|
+ {
|
|
+ parent::__construct();
|
|
+ $this->baz = true;
|
|
+ }
|
|
+}
|
|
+
|
|
+$baz = new baz;
|
|
+var_dump($baz);
|
|
+$baz->change();
|
|
+var_dump($baz);
|
|
+apcu_store('baz', $baz);
|
|
+unset($baz);
|
|
+var_dump(apcu_fetch('baz'));
|
|
+
|
|
+?>
|
|
+===DONE===
|
|
+--EXPECTF--
|
|
+object(foo)#%d (0) {
|
|
+}
|
|
+object(foo)#%d (0) {
|
|
+}
|
|
+object(foo)#%d (1) {
|
|
+ ["a"]=>
|
|
+ bool(true)
|
|
+}
|
|
+object(baz)#%d (6) {
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
+ ["pub"]=>
|
|
+ string(3) "bar"
|
|
+ ["pro":protected]=>
|
|
+ string(3) "bar"
|
|
+ ["pri":"bar":private]=>
|
|
+ string(3) "bar"
|
|
+ ["bar"]=>
|
|
+ bool(true)
|
|
+ ["baz"]=>
|
|
+ bool(true)
|
|
+}
|
|
+object(baz)#%d (6) {
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
+ ["pub"]=>
|
|
+ string(3) "bar"
|
|
+ ["pro":protected]=>
|
|
+ string(3) "bar"
|
|
+ ["pri":"bar":private]=>
|
|
+ string(3) "mod"
|
|
+ ["bar"]=>
|
|
+ bool(true)
|
|
+ ["baz"]=>
|
|
+ bool(true)
|
|
+}
|
|
+object(baz)#%d (6) {
|
|
+ ["pri":"baz":private]=>
|
|
+ string(3) "baz"
|
|
+ ["pub"]=>
|
|
+ string(3) "bar"
|
|
+ ["pro":protected]=>
|
|
+ string(3) "bar"
|
|
+ ["pri":"bar":private]=>
|
|
+ string(3) "mod"
|
|
+ ["bar"]=>
|
|
+ bool(true)
|
|
+ ["baz"]=>
|
|
+ bool(true)
|
|
+}
|
|
+===DONE===
|
|
diff --git a/tests/apc_006_php73.phpt b/tests/apc_006_php73.phpt
|
|
index 42bdfde..adc09b9 100644
|
|
--- a/tests/apc_006_php73.phpt
|
|
+++ b/tests/apc_006_php73.phpt
|
|
@@ -4,6 +4,7 @@ APC: apcu_store/fetch reference test
|
|
<?php
|
|
require_once(dirname(__FILE__) . '/skipif.inc');
|
|
if (PHP_VERSION_ID < 70300) die('skip Only for PHP >= 7.3');
|
|
+if (PHP_VERSION_ID >= 80100) die('skip Only for PHP < 8.1');
|
|
?>
|
|
--INI--
|
|
apc.enabled=1
|
|
diff --git a/tests/apc_006_php81.phpt b/tests/apc_006_php81.phpt
|
|
new file mode 100644
|
|
index 0000000..94219dc
|
|
--- /dev/null
|
|
+++ b/tests/apc_006_php81.phpt
|
|
@@ -0,0 +1,83 @@
|
|
+--TEST--
|
|
+APC: apcu_store/fetch reference test
|
|
+--SKIPIF--
|
|
+<?php
|
|
+require_once(dirname(__FILE__) . '/skipif.inc');
|
|
+if (PHP_VERSION_ID < 80100) die('skip Only for PHP >= 8.1');
|
|
+?>
|
|
+--INI--
|
|
+apc.enabled=1
|
|
+apc.enable_cli=1
|
|
+apc.serializer=php
|
|
+report_memleaks=0
|
|
+--FILE--
|
|
+<?php
|
|
+
|
|
+$a = 'a';
|
|
+$b = array($a);
|
|
+$c = array('c');
|
|
+$b[] = &$c;
|
|
+$b[] = &$c;
|
|
+$d = 'd';
|
|
+$b[] = &$d;
|
|
+$b[] = &$d;
|
|
+$b[] = &$d;
|
|
+$e = 'e';
|
|
+$b[] = $e;
|
|
+$b[] = $e;
|
|
+$f = array('f');
|
|
+$f[] = &$f;
|
|
+$b[] = &$f;
|
|
+apcu_store('test', $b);
|
|
+$x = apcu_fetch('test');
|
|
+debug_zval_dump($x);
|
|
+
|
|
+?>
|
|
+===DONE===
|
|
+--EXPECTF--
|
|
+array(9) refcount(2){
|
|
+ [0]=>
|
|
+ string(1) "a" interned
|
|
+ [1]=>
|
|
+ reference refcount(2) {
|
|
+ array(1) refcount(1){
|
|
+ [0]=>
|
|
+ string(1) "c" interned
|
|
+ }
|
|
+ }
|
|
+ [2]=>
|
|
+ reference refcount(2) {
|
|
+ array(1) refcount(1){
|
|
+ [0]=>
|
|
+ string(1) "c" interned
|
|
+ }
|
|
+ }
|
|
+ [3]=>
|
|
+ reference refcount(3) {
|
|
+ string(1) "d" interned
|
|
+ }
|
|
+ [4]=>
|
|
+ reference refcount(3) {
|
|
+ string(1) "d" interned
|
|
+ }
|
|
+ [5]=>
|
|
+ reference refcount(3) {
|
|
+ string(1) "d" interned
|
|
+ }
|
|
+ [6]=>
|
|
+ string(1) "e" interned
|
|
+ [7]=>
|
|
+ string(1) "e" interned
|
|
+ [8]=>
|
|
+ reference refcount(2) {
|
|
+ array(2) refcount(1){
|
|
+ [0]=>
|
|
+ string(1) "f" interned
|
|
+ [1]=>
|
|
+ reference refcount(2) {
|
|
+ *RECURSION*
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
+===DONE===
|
|
diff --git a/tests/bug76145.phpt b/tests/bug76145.phpt
|
|
index 8959a44..56f7e10 100644
|
|
--- a/tests/bug76145.phpt
|
|
+++ b/tests/bug76145.phpt
|
|
@@ -3,6 +3,7 @@ Bug #76145: Data corruption reading from APCu while unserializing
|
|
--INI--
|
|
apc.enabled=1
|
|
apc.enable_cli=1
|
|
+error_reporting=E_ALL&~E_DEPRECATED
|
|
--FILE--
|
|
<?php
|
|
|