From 3a69a5b8a3634b440ff8943ea3076720ecb603de Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 7 Jul 2021 10:53:02 +0200 Subject: add upstream patch for test suite with PHP 8.1 --- apcu-php81.patch | 310 +++++++++++++++++++++++++++++++++++++++++++++++++++++ php-pecl-apcu.spec | 16 +-- 2 files changed, 319 insertions(+), 7 deletions(-) create mode 100644 apcu-php81.patch diff --git a/apcu-php81.patch b/apcu-php81.patch new file mode 100644 index 0000000..8abf332 --- /dev/null +++ b/apcu-php81.patch @@ -0,0 +1,310 @@ +From 3d96f1aaf6e1eae26dd637a4795f8fee95b79c02 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +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-- + = 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-- ++= 80100) die("skip For PHP < 8.1"); ++?> ++--INI-- ++apc.enabled=1 ++apc.enable_cli=1 ++--FILE-- ++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 + = 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-- ++= 8.1'); ++?> ++--INI-- ++apc.enabled=1 ++apc.enable_cli=1 ++apc.serializer=php ++report_memleaks=0 ++--FILE-- ++ ++===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-- + = 7.0 @@ -157,6 +160,8 @@ mv %{pecl_name}-%{version} NTS %{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml} cd NTS +%patch0 -p1 -b .up + # Sanity check, really often broken extver=$(sed -n '/#define PHP_APCU_VERSION/{s/.* "//;s/".*$//;p}' php_apc.h) if test "x${extver}" != "x%{version}%{?prever}%{?gh_date:-dev}"; then @@ -241,12 +246,6 @@ done %check -%if "%{php_version}" > "8.1" -rm ?TS/tests/apc_003b.phpt -rm ?TS/tests/apc_006_php73.phpt -rm ?TS/tests/bug76145.phpt -%endif - cd NTS %{_bindir}/php -n \ -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ @@ -328,6 +327,9 @@ fi %changelog +* Wed Jul 7 2021 Remi Collet - 5.1.20-3 +- add upstream patch for test suite with PHP 8.1 + * Thu Jun 10 2021 Remi Collet - 5.1.20-2 - temporarily ignore 3 tests with PHP 8.1 -- cgit