diff options
author | Remi Collet <remi@remirepo.net> | 2019-04-16 13:32:31 +0200 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2019-04-16 13:32:31 +0200 |
commit | ca2fbf651ebb2e36a44a7b4a010127191293072d (patch) | |
tree | 01e29a65f5d0bba6081081cacbb95b2704156030 | |
parent | e021d2dec5c80dcae94295d3f88c177350f4d273 (diff) |
v7.3.5RC1
-rw-r--r-- | failed.txt | 2 | ||||
-rw-r--r-- | php-bug77653.patch | 159 | ||||
-rw-r--r-- | php-upstream.patch | 1443 | ||||
-rw-r--r-- | php.spec | 17 |
4 files changed, 9 insertions, 1612 deletions
@@ -1,4 +1,4 @@ -===== 7.3.4 (2019-04-04) +===== 7.3.5RC1 (2019-04-18) $ grep -ar 'Tests failed' /var/lib/mock/scl73*/build.log diff --git a/php-bug77653.patch b/php-bug77653.patch deleted file mode 100644 index 98fc4d1..0000000 --- a/php-bug77653.patch +++ /dev/null @@ -1,159 +0,0 @@ -From 06dd1d78a7ec1678b53ef657033c2021f4dc902f Mon Sep 17 00:00:00 2001 -From: Jakub Zelenka <bukka@php.net> -Date: Sun, 31 Mar 2019 16:56:17 +0100 -Subject: [PATCH 1/2] Fix logging in shutdown function - ---- - sapi/fpm/fpm/fpm_stdio.c | 20 +++++++-- - sapi/fpm/tests/log-bm-in-shutdown-fn.phpt | 49 +++++++++++++++++++++++ - 2 files changed, 65 insertions(+), 4 deletions(-) - create mode 100644 sapi/fpm/tests/log-bm-in-shutdown-fn.phpt - -diff --git a/sapi/fpm/fpm/fpm_stdio.c b/sapi/fpm/fpm/fpm_stdio.c -index 03d15cbf0d7c..75c4d8e9c262 100644 ---- a/sapi/fpm/fpm/fpm_stdio.c -+++ b/sapi/fpm/fpm/fpm_stdio.c -@@ -106,9 +106,11 @@ int fpm_stdio_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ - } - /* }}} */ - -+#define FPM_STDIO_CMD_FLUSH "\0fscf" -+ - int fpm_stdio_flush_child() /* {{{ */ - { -- return write(STDERR_FILENO, "\0", 1); -+ return write(STDERR_FILENO, FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH)); - } - /* }}} */ - -@@ -162,10 +164,20 @@ static void fpm_stdio_child_said(struct fpm_event_s *ev, short which, void *arg) - } - } else { - in_buf += res; -- /* if buffer ends with \0, then the stream will be finished */ -- if (!buf[in_buf - 1]) { -+ /* check if buffer should be flushed */ -+ if (!buf[in_buf - 1] && in_buf >= sizeof(FPM_STDIO_CMD_FLUSH) && -+ !memcmp(buf + in_buf - sizeof(FPM_STDIO_CMD_FLUSH), -+ FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH))) { -+ /* if buffer ends with flush cmd, then the stream will be finished */ -+ finish_log_stream = 1; -+ in_buf -= sizeof(FPM_STDIO_CMD_FLUSH); -+ } else if (!buf[0] && in_buf > sizeof(FPM_STDIO_CMD_FLUSH) && -+ !memcmp(buf, FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH))) { -+ /* if buffer starts with flush cmd, then the stream will be finished */ - finish_log_stream = 1; -- in_buf--; -+ in_buf -= sizeof(FPM_STDIO_CMD_FLUSH); -+ /* move data behind the flush cmd */ -+ memmove(buf, buf + sizeof(FPM_STDIO_CMD_FLUSH), in_buf); - } - } - } -diff --git a/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt b/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt -new file mode 100644 -index 000000000000..f968bf9f08bc ---- /dev/null -+++ b/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt -@@ -0,0 +1,49 @@ -+--TEST-- -+FPM: Log message in shutdown function -+--SKIPIF-- -+<?php include "skipif.inc"; ?> -+--FILE-- -+<?php -+ -+require_once "tester.inc"; -+ -+$cfg = <<<EOT -+[global] -+error_log = {{FILE:LOG}} -+log_limit = 1024 -+log_buffering = yes -+[unconfined] -+listen = {{ADDR}} -+pm = dynamic -+pm.max_children = 5 -+pm.start_servers = 1 -+pm.min_spare_servers = 1 -+pm.max_spare_servers = 3 -+catch_workers_output = yes -+EOT; -+ -+$code = <<<EOT -+<?php -+register_shutdown_function(function() { -+ error_log(str_repeat('e', 80)); -+}); -+EOT; -+ -+$tester = new FPM\Tester($cfg, $code); -+$tester->start(); -+$tester->expectLogStartNotices(); -+$tester->request()->expectEmptyBody(); -+$tester->terminate(); -+$tester->expectFastCGIErrorMessage('e', 1050, 80); -+$tester->expectLogMessage('NOTICE: PHP message: ' . str_repeat('e', 80), 1050); -+$tester->close(); -+ -+?> -+Done -+--EXPECT-- -+Done -+--CLEAN-- -+<?php -+require_once "tester.inc"; -+FPM\Tester::clean(); -+?> - -From 72c010309bb0a7bb032677ca599424ceb2ad4883 Mon Sep 17 00:00:00 2001 -From: Jakub Zelenka <bukka@php.net> -Date: Sun, 31 Mar 2019 17:55:29 +0100 -Subject: [PATCH 2/2] Move stdio flush behind request shutdown - ---- - sapi/fpm/fpm/fpm_main.c | 3 +++ - sapi/fpm/fpm/fpm_request.c | 2 -- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c -index 483fabe9d850..bfd82a1c2e11 100644 ---- a/sapi/fpm/fpm/fpm_main.c -+++ b/sapi/fpm/fpm/fpm_main.c -@@ -90,6 +90,7 @@ int __riscosify_control = __RISCOSIFY_STRICT_UNIX_SPECS; - #include "fpm.h" - #include "fpm_request.h" - #include "fpm_status.h" -+#include "fpm_stdio.h" - #include "fpm_conf.h" - #include "fpm_php.h" - #include "fpm_log.h" -@@ -1977,6 +1978,8 @@ consult the installation file that came with this distribution, or visit \n\ - - php_request_shutdown((void *) 0); - -+ fpm_stdio_flush_child(); -+ - requests++; - if (UNEXPECTED(max_requests && (requests == max_requests))) { - fcgi_request_set_keep(request, 0); -diff --git a/sapi/fpm/fpm/fpm_request.c b/sapi/fpm/fpm/fpm_request.c -index 65f9c4ae441c..2aa503891ed9 100644 ---- a/sapi/fpm/fpm/fpm_request.c -+++ b/sapi/fpm/fpm/fpm_request.c -@@ -16,7 +16,6 @@ - #include "fpm_children.h" - #include "fpm_scoreboard.h" - #include "fpm_status.h" --#include "fpm_stdio.h" - #include "fpm_request.h" - #include "fpm_log.h" - -@@ -200,7 +199,6 @@ void fpm_request_end(void) /* {{{ */ - #endif - proc->memory = memory; - fpm_scoreboard_proc_release(proc); -- fpm_stdio_flush_child(); - } - /* }}} */ - diff --git a/php-upstream.patch b/php-upstream.patch deleted file mode 100644 index 6d95d13..0000000 --- a/php-upstream.patch +++ /dev/null @@ -1,1443 +0,0 @@ -From a467a89f167e9e03b4acc4bd9b1430e0d52133fa Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Wed, 20 Mar 2019 14:07:26 +0100 -Subject: [PATCH] Fix tests after fix for #76717 - ---- - .../general_functions/var_export-locale.phpt | 3 + - .../var_export-locale_32.phpt | 1148 +++++++++++++++++ - .../general_functions/var_export_basic1.phpt | 6 + - .../var_export_basic1_32.phpt | 147 +++ - 4 files changed, 1304 insertions(+) - create mode 100644 ext/standard/tests/general_functions/var_export-locale_32.phpt - create mode 100644 ext/standard/tests/general_functions/var_export_basic1_32.phpt - -diff --git a/ext/standard/tests/general_functions/var_export-locale.phpt b/ext/standard/tests/general_functions/var_export-locale.phpt -index 7503e789b093..37625f4201ad 100644 ---- a/ext/standard/tests/general_functions/var_export-locale.phpt -+++ b/ext/standard/tests/general_functions/var_export-locale.phpt -@@ -7,6 +7,9 @@ serialize_precision=17 - if (!setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8")) { - die("skip locale needed for this test is not supported on this platform"); - } -+if (PHP_INT_SIZE < 8) { -+ die("skip 64-bit only"); -+} - ?> - --FILE-- - <?php -diff --git a/ext/standard/tests/general_functions/var_export-locale_32.phpt b/ext/standard/tests/general_functions/var_export-locale_32.phpt -new file mode 100644 -index 000000000000..39efdec7dfcb ---- /dev/null -+++ b/ext/standard/tests/general_functions/var_export-locale_32.phpt -@@ -0,0 +1,1148 @@ -+--TEST-- -+Test var_export() function with locale -+--INI-- -+serialize_precision=17 -+--SKIPIF-- -+<?php -+if (!setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8")) { -+ die("skip locale needed for this test is not supported on this platform"); -+} -+if (PHP_INT_SIZE > 4) { -+ die("skip 32-bit only"); -+} -+?> -+--FILE-- -+<?php -+setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8"); -+/* Prototype: mixed var_export( mixed expression [, bool return]); -+ * Description: Returns the variable representation when the return parameter is used and evaluates to TRUE. Otherwise, this function will return NULL. -+ -+*/ -+ -+echo "*** Testing var_export() with integer values ***\n"; -+// different integer vlaues -+$valid_ints = array( -+ '0', -+ '1', -+ '-1', -+ '-2147483648', // max negative integer value -+ '-2147483647', -+ 2147483647, // max positive integer value -+ 2147483640, -+ 0x123B, // integer as hexadecimal -+ '0x12ab', -+ '0Xfff', -+ '0XFA', -+ -0x7fffffff - 1, // max negative integer as hexadecimal -+ '0x7fffffff', // max positive integer as hexadecimal -+ 0x7FFFFFFF, // max positive integer as hexadecimal -+ '0123', // integer as octal -+ 01, // should be quivalent to octal 1 -+ -017777777777 - 1, // max negative integer as octal -+ 017777777777, // max positive integer as octal -+ ); -+$counter = 1; -+/* Loop to check for above integer values with var_export() */ -+echo "\n*** Output for integer values ***\n"; -+foreach($valid_ints as $int_value) { -+echo "\nIteration ".$counter."\n"; -+var_export( $int_value ); -+echo "\n"; -+var_export( $int_value, FALSE); -+echo "\n"; -+var_dump( var_export( $int_value, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid boolean values ***\n"; -+// different valid boolean vlaues -+$valid_bool = array( -+ 1, -+ TRUE, -+ true, -+ 0, -+ FALSE, -+ false -+ ); -+$counter = 1; -+/* Loop to check for above boolean values with var_export() */ -+echo "\n*** Output for boolean values ***\n"; -+foreach($valid_bool as $bool_value) { -+echo "\nIteration ".$counter."\n"; -+var_export( $bool_value ); -+echo "\n"; -+var_export( $bool_value, FALSE); -+echo "\n"; -+var_dump( var_export( $bool_value, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid float values ***\n"; -+// different valid float vlaues -+$valid_floats = array( -+ (float)-2147483649, // float value -+ (float)2147483648, // float value -+ (float)-0x80000001, // float value, beyond max negative int -+ (float)0x800000001, // float value, beyond max positive int -+ (float)020000000001, // float value, beyond max positive int -+ (float)-020000000001, // float value, beyond max negative int -+ 0.0, -+ -0.1, -+ 10.0000000000000000005, -+ 10.5e+5, -+ 1e5, -+ 1e-5, -+ 1e+5, -+ 1E5, -+ 1E+5, -+ 1E-5, -+ .5e+7, -+ .6e-19, -+ .05E+44, -+ .0034E-30 -+); -+$counter = 1; -+/* Loop to check for above float values with var_export() */ -+echo "\n*** Output for float values ***\n"; -+foreach($valid_floats as $float_value) { -+echo "\nIteration ".$counter."\n"; -+var_export( $float_value ); -+echo "\n"; -+var_export( $float_value, FALSE); -+echo "\n"; -+var_dump( var_export( $float_value, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid strings ***\n"; -+// different valid string -+$valid_strings = array( -+ "", -+ " ", -+ '', -+ ' ', -+ "string", -+ 'string', -+ "NULL", -+ 'null', -+ "FALSE", -+ 'false', -+ "\x0b", -+ "\0", -+ '\0', -+ '\060', -+ "\070" -+ ); -+$counter = 1; -+/* Loop to check for above strings with var_export() */ -+echo "\n*** Output for strings ***\n"; -+foreach($valid_strings as $str) { -+echo "\nIteration ".$counter."\n"; -+var_export( $str ); -+echo "\n"; -+var_export( $str, FALSE); -+echo "\n"; -+var_dump( var_export( $str, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid arrays ***\n"; -+// different valid arrays -+$valid_arrays = array( -+ array(), -+ array(NULL), -+ array(null), -+ array(true), -+ array(""), -+ array(''), -+ array(array(), array()), -+ array(array(1, 2), array('a', 'b')), -+ array(1 => 'One'), -+ array("test" => "is_array"), -+ array(0), -+ array(-1), -+ array(10.5, 5.6), -+ array("string", "test"), -+ array('string', 'test') -+ ); -+$counter = 1; -+/* Loop to check for above arrays with var_export() */ -+echo "\n*** Output for arrays ***\n"; -+foreach($valid_arrays as $arr) { -+echo "\nIteration ".$counter."\n"; -+var_export( $arr ); -+echo "\n"; -+var_export( $arr, FALSE); -+echo "\n"; -+var_dump( var_export( $arr, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid objects ***\n"; -+ -+// class with no members -+class foo -+{ -+// no members -+} -+ -+// abstract class -+abstract class abstractClass -+{ -+ abstract protected function getClassName(); -+ public function printClassName () { -+ echo $this->getClassName() . "\n"; -+ } -+} -+// implement abstract class -+class concreteClass extends abstractClass -+{ -+ protected function getClassName() { -+ return "concreteClass"; -+ } -+} -+ -+// interface class -+interface iValue -+{ -+ public function setVal ($name, $val); -+ public function dumpVal (); -+} -+// implement the interface -+class Value implements iValue -+{ -+ private $vars = array (); -+ -+ public function setVal ( $name, $val ) { -+ $this->vars[$name] = $val; -+ } -+ -+ public function dumpVal () { -+ var_export ( $vars ); -+ } -+} -+ -+// a gereral class -+class myClass -+{ -+ var $foo_object; -+ public $public_var; -+ public $public_var1; -+ private $private_var; -+ protected $protected_var; -+ -+ function __construct ( ) { -+ $this->foo_object = new foo(); -+ $this->public_var = 10; -+ $this->public_var1 = new foo(); -+ $this->private_var = new foo(); -+ $this->proected_var = new foo(); -+ } -+} -+ -+// create a object of each class defined above -+$myClass_object = new myClass(); -+$foo_object = new foo(); -+$Value_object = new Value(); -+$concreteClass_object = new concreteClass(); -+ -+$valid_objects = array( -+ new stdclass, -+ new foo, -+ new concreteClass, -+ new Value, -+ new myClass, -+ $myClass_object, -+ $myClass_object->foo_object, -+ $myClass_object->public_var1, -+ $foo_object, -+ $Value_object, -+ $concreteClass_object -+ ); -+ $counter = 1; -+/* Loop to check for above objects with var_export() */ -+echo "\n*** Output for objects ***\n"; -+foreach($valid_objects as $obj) { -+echo "\nIteration ".$counter."\n"; -+var_export( $obj ); -+echo "\n"; -+var_export( $obj, FALSE); -+echo "\n"; -+var_dump( var_export( $obj, TRUE) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "*** Testing var_export() with valid null values ***\n"; -+// different valid null vlaues -+$unset_var = array(); -+unset ($unset_var); // now a null -+$null_var = NULL; -+ -+$valid_nulls = array( -+ NULL, -+ null, -+ $null_var, -+ ); -+ $counter = 1; -+/* Loop to check for above null values with var_export() */ -+echo "\n*** Output for null values ***\n"; -+foreach($valid_nulls as $null_value) { -+echo "\nIteration ".$counter."\n"; -+var_export( $null_value ); -+echo "\n"; -+var_export( $null_value, FALSE); -+echo "\n"; -+var_dump( var_export( $null_value, true) ); -+echo "\n"; -+$counter++; -+} -+ -+echo "\n*** Testing error conditions ***\n"; -+//Zero argument -+var_export( var_export() ); -+ -+//arguments more than expected -+var_export( var_export(TRUE, FALSE, TRUE) ); -+ -+echo "\n\nDone"; -+ -+ -+?> -+--EXPECTF-- -+*** Testing var_export() with integer values *** -+ -+*** Output for integer values *** -+ -+Iteration 1 -+'0' -+'0' -+string(3) "'0'" -+ -+ -+Iteration 2 -+'1' -+'1' -+string(3) "'1'" -+ -+ -+Iteration 3 -+'-1' -+'-1' -+string(4) "'-1'" -+ -+ -+Iteration 4 -+'-2147483648' -+'-2147483648' -+string(13) "'-2147483648'" -+ -+ -+Iteration 5 -+'-2147483647' -+'-2147483647' -+string(13) "'-2147483647'" -+ -+ -+Iteration 6 -+2147483647 -+2147483647 -+string(10) "2147483647" -+ -+ -+Iteration 7 -+2147483640 -+2147483640 -+string(10) "2147483640" -+ -+ -+Iteration 8 -+4667 -+4667 -+string(4) "4667" -+ -+ -+Iteration 9 -+'0x12ab' -+'0x12ab' -+string(8) "'0x12ab'" -+ -+ -+Iteration 10 -+'0Xfff' -+'0Xfff' -+string(7) "'0Xfff'" -+ -+ -+Iteration 11 -+'0XFA' -+'0XFA' -+string(6) "'0XFA'" -+ -+ -+Iteration 12 -+-2147483647-1 -+-2147483647-1 -+string(13) "-2147483647-1" -+ -+ -+Iteration 13 -+'0x7fffffff' -+'0x7fffffff' -+string(12) "'0x7fffffff'" -+ -+ -+Iteration 14 -+2147483647 -+2147483647 -+string(10) "2147483647" -+ -+ -+Iteration 15 -+'0123' -+'0123' -+string(6) "'0123'" -+ -+ -+Iteration 16 -+1 -+1 -+string(1) "1" -+ -+ -+Iteration 17 -+-2147483647-1 -+-2147483647-1 -+string(13) "-2147483647-1" -+ -+ -+Iteration 18 -+2147483647 -+2147483647 -+string(10) "2147483647" -+ -+*** Testing var_export() with valid boolean values *** -+ -+*** Output for boolean values *** -+ -+Iteration 1 -+1 -+1 -+string(1) "1" -+ -+ -+Iteration 2 -+true -+true -+string(4) "true" -+ -+ -+Iteration 3 -+true -+true -+string(4) "true" -+ -+ -+Iteration 4 -+0 -+0 -+string(1) "0" -+ -+ -+Iteration 5 -+false -+false -+string(5) "false" -+ -+ -+Iteration 6 -+false -+false -+string(5) "false" -+ -+*** Testing var_export() with valid float values *** -+ -+*** Output for float values *** -+ -+Iteration 1 -+-2147483649.0 -+-2147483649.0 -+string(13) "-2147483649.0" -+ -+ -+Iteration 2 -+2147483648.0 -+2147483648.0 -+string(12) "2147483648.0" -+ -+ -+Iteration 3 -+-2147483649.0 -+-2147483649.0 -+string(13) "-2147483649.0" -+ -+ -+Iteration 4 -+34359738369.0 -+34359738369.0 -+string(13) "34359738369.0" -+ -+ -+Iteration 5 -+2147483649.0 -+2147483649.0 -+string(12) "2147483649.0" -+ -+ -+Iteration 6 -+-2147483649.0 -+-2147483649.0 -+string(13) "-2147483649.0" -+ -+ -+Iteration 7 -+0.0 -+0.0 -+string(3) "0.0" -+ -+ -+Iteration 8 -+-0.10000000000000001 -+-0.10000000000000001 -+string(20) "-0.10000000000000001" -+ -+ -+Iteration 9 -+10.0 -+10.0 -+string(4) "10.0" -+ -+ -+Iteration 10 -+1050000.0 -+1050000.0 -+string(9) "1050000.0" -+ -+ -+Iteration 11 -+100000.0 -+100000.0 -+string(8) "100000.0" -+ -+ -+Iteration 12 -+1.0000000000000001E-5 -+1.0000000000000001E-5 -+string(21) "1.0000000000000001E-5" -+ -+ -+Iteration 13 -+100000.0 -+100000.0 -+string(8) "100000.0" -+ -+ -+Iteration 14 -+100000.0 -+100000.0 -+string(8) "100000.0" -+ -+ -+Iteration 15 -+100000.0 -+100000.0 -+string(8) "100000.0" -+ -+ -+Iteration 16 -+1.0000000000000001E-5 -+1.0000000000000001E-5 -+string(21) "1.0000000000000001E-5" -+ -+ -+Iteration 17 -+5000000.0 -+5000000.0 -+string(9) "5000000.0" -+ -+ -+Iteration 18 -+6.0000000000000006E-20 -+6.0000000000000006E-20 -+string(22) "6.0000000000000006E-20" -+ -+ -+Iteration 19 -+5.0000000000000001E+42 -+5.0000000000000001E+42 -+string(22) "5.0000000000000001E+42" -+ -+ -+Iteration 20 -+3.4000000000000001E-33 -+3.4000000000000001E-33 -+string(22) "3.4000000000000001E-33" -+ -+*** Testing var_export() with valid strings *** -+ -+*** Output for strings *** -+ -+Iteration 1 -+'' -+'' -+string(2) "''" -+ -+ -+Iteration 2 -+' ' -+' ' -+string(3) "' '" -+ -+ -+Iteration 3 -+'' -+'' -+string(2) "''" -+ -+ -+Iteration 4 -+' ' -+' ' -+string(3) "' '" -+ -+ -+Iteration 5 -+'string' -+'string' -+string(8) "'string'" -+ -+ -+Iteration 6 -+'string' -+'string' -+string(8) "'string'" -+ -+ -+Iteration 7 -+'NULL' -+'NULL' -+string(6) "'NULL'" -+ -+ -+Iteration 8 -+'null' -+'null' -+string(6) "'null'" -+ -+ -+Iteration 9 -+'FALSE' -+'FALSE' -+string(7) "'FALSE'" -+ -+ -+Iteration 10 -+'false' -+'false' -+string(7) "'false'" -+ -+ -+Iteration 11 -+'' -+'' -+string(3) "''" -+ -+ -+Iteration 12 -+'' . "\0" . '' -+'' . "\0" . '' -+string(14) "'' . "\0" . ''" -+ -+ -+Iteration 13 -+'\\0' -+'\\0' -+string(5) "'\\0'" -+ -+ -+Iteration 14 -+'\\060' -+'\\060' -+string(7) "'\\060'" -+ -+ -+Iteration 15 -+'8' -+'8' -+string(3) "'8'" -+ -+*** Testing var_export() with valid arrays *** -+ -+*** Output for arrays *** -+ -+Iteration 1 -+array ( -+) -+array ( -+) -+string(9) "array ( -+)" -+ -+ -+Iteration 2 -+array ( -+ 0 => NULL, -+) -+array ( -+ 0 => NULL, -+) -+string(22) "array ( -+ 0 => NULL, -+)" -+ -+ -+Iteration 3 -+array ( -+ 0 => NULL, -+) -+array ( -+ 0 => NULL, -+) -+string(22) "array ( -+ 0 => NULL, -+)" -+ -+ -+Iteration 4 -+array ( -+ 0 => true, -+) -+array ( -+ 0 => true, -+) -+string(22) "array ( -+ 0 => true, -+)" -+ -+ -+Iteration 5 -+array ( -+ 0 => '', -+) -+array ( -+ 0 => '', -+) -+string(20) "array ( -+ 0 => '', -+)" -+ -+ -+Iteration 6 -+array ( -+ 0 => '', -+) -+array ( -+ 0 => '', -+) -+string(20) "array ( -+ 0 => '', -+)" -+ -+ -+Iteration 7 -+array ( -+ 0 => -+ array ( -+ ), -+ 1 => -+ array ( -+ ), -+) -+array ( -+ 0 => -+ array ( -+ ), -+ 1 => -+ array ( -+ ), -+) -+string(55) "array ( -+ 0 => -+ array ( -+ ), -+ 1 => -+ array ( -+ ), -+)" -+ -+ -+Iteration 8 -+array ( -+ 0 => -+ array ( -+ 0 => 1, -+ 1 => 2, -+ ), -+ 1 => -+ array ( -+ 0 => 'a', -+ 1 => 'b', -+ ), -+) -+array ( -+ 0 => -+ array ( -+ 0 => 1, -+ 1 => 2, -+ ), -+ 1 => -+ array ( -+ 0 => 'a', -+ 1 => 'b', -+ ), -+) -+string(107) "array ( -+ 0 => -+ array ( -+ 0 => 1, -+ 1 => 2, -+ ), -+ 1 => -+ array ( -+ 0 => 'a', -+ 1 => 'b', -+ ), -+)" -+ -+ -+Iteration 9 -+array ( -+ 1 => 'One', -+) -+array ( -+ 1 => 'One', -+) -+string(23) "array ( -+ 1 => 'One', -+)" -+ -+ -+Iteration 10 -+array ( -+ 'test' => 'is_array', -+) -+array ( -+ 'test' => 'is_array', -+) -+string(33) "array ( -+ 'test' => 'is_array', -+)" -+ -+ -+Iteration 11 -+array ( -+ 0 => 0, -+) -+array ( -+ 0 => 0, -+) -+string(19) "array ( -+ 0 => 0, -+)" -+ -+ -+Iteration 12 -+array ( -+ 0 => -1, -+) -+array ( -+ 0 => -1, -+) -+string(20) "array ( -+ 0 => -1, -+)" -+ -+ -+Iteration 13 -+array ( -+ 0 => 10.5, -+ 1 => 5.5999999999999996, -+) -+array ( -+ 0 => 10.5, -+ 1 => 5.5999999999999996, -+) -+string(49) "array ( -+ 0 => 10.5, -+ 1 => 5.5999999999999996, -+)" -+ -+ -+Iteration 14 -+array ( -+ 0 => 'string', -+ 1 => 'test', -+) -+array ( -+ 0 => 'string', -+ 1 => 'test', -+) -+string(41) "array ( -+ 0 => 'string', -+ 1 => 'test', -+)" -+ -+ -+Iteration 15 -+array ( -+ 0 => 'string', -+ 1 => 'test', -+) -+array ( -+ 0 => 'string', -+ 1 => 'test', -+) -+string(41) "array ( -+ 0 => 'string', -+ 1 => 'test', -+)" -+ -+*** Testing var_export() with valid objects *** -+ -+*** Output for objects *** -+ -+Iteration 1 -+stdClass::__set_state(array( -+)) -+stdClass::__set_state(array( -+)) -+string(31) "stdClass::__set_state(array( -+))" -+ -+ -+Iteration 2 -+foo::__set_state(array( -+)) -+foo::__set_state(array( -+)) -+string(26) "foo::__set_state(array( -+))" -+ -+ -+Iteration 3 -+concreteClass::__set_state(array( -+)) -+concreteClass::__set_state(array( -+)) -+string(36) "concreteClass::__set_state(array( -+))" -+ -+ -+Iteration 4 -+Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+)) -+Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+)) -+string(57) "Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+))" -+ -+ -+Iteration 5 -+myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+)) -+myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+)) -+string(293) "myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+))" -+ -+ -+Iteration 6 -+myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+)) -+myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+)) -+string(293) "myClass::__set_state(array( -+ 'foo_object' => -+ foo::__set_state(array( -+ )), -+ 'public_var' => 10, -+ 'public_var1' => -+ foo::__set_state(array( -+ )), -+ 'private_var' => -+ foo::__set_state(array( -+ )), -+ 'protected_var' => NULL, -+ 'proected_var' => -+ foo::__set_state(array( -+ )), -+))" -+ -+ -+Iteration 7 -+foo::__set_state(array( -+)) -+foo::__set_state(array( -+)) -+string(26) "foo::__set_state(array( -+))" -+ -+ -+Iteration 8 -+foo::__set_state(array( -+)) -+foo::__set_state(array( -+)) -+string(26) "foo::__set_state(array( -+))" -+ -+ -+Iteration 9 -+foo::__set_state(array( -+)) -+foo::__set_state(array( -+)) -+string(26) "foo::__set_state(array( -+))" -+ -+ -+Iteration 10 -+Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+)) -+Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+)) -+string(57) "Value::__set_state(array( -+ 'vars' => -+ array ( -+ ), -+))" -+ -+ -+Iteration 11 -+concreteClass::__set_state(array( -+)) -+concreteClass::__set_state(array( -+)) -+string(36) "concreteClass::__set_state(array( -+))" -+ -+*** Testing var_export() with valid null values *** -+ -+*** Output for null values *** -+ -+Iteration 1 -+NULL -+NULL -+string(4) "NULL" -+ -+ -+Iteration 2 -+NULL -+NULL -+string(4) "NULL" -+ -+ -+Iteration 3 -+NULL -+NULL -+string(4) "NULL" -+ -+ -+*** Testing error conditions *** -+ -+Warning: var_export() expects at least 1 parameter, 0 given in %s on line %d -+NULL -+Warning: var_export() expects at most 2 parameters, 3 given in %s on line %d -+NULL -+ -+Done -diff --git a/ext/standard/tests/general_functions/var_export_basic1.phpt b/ext/standard/tests/general_functions/var_export_basic1.phpt -index 2dfd28785bc8..a7d3142ddc29 100644 ---- a/ext/standard/tests/general_functions/var_export_basic1.phpt -+++ b/ext/standard/tests/general_functions/var_export_basic1.phpt -@@ -1,5 +1,11 @@ - --TEST-- - Test var_export() function with integer values -+--SKIPIF-- -+<?php -+if (PHP_INT_SIZE < 8) { -+ die("skip 64-bit only"); -+} -+?> - --FILE-- - <?php - /* Prototype : mixed var_export(mixed var [, bool return]) -diff --git a/ext/standard/tests/general_functions/var_export_basic1_32.phpt b/ext/standard/tests/general_functions/var_export_basic1_32.phpt -new file mode 100644 -index 000000000000..95596800d690 ---- /dev/null -+++ b/ext/standard/tests/general_functions/var_export_basic1_32.phpt -@@ -0,0 +1,147 @@ -+--TEST-- -+Test var_export() function with integer values -+--SKIPIF-- -+<?php -+if (PHP_INT_SIZE > 4) { -+ die("skip 32-bit only"); -+} -+?> -+--FILE-- -+<?php -+/* Prototype : mixed var_export(mixed var [, bool return]) -+ * Description: Outputs or returns a string representation of a variable -+ * Source code: ext/standard/var.c -+ * Alias to functions: -+ */ -+ -+echo "*** Testing var_export() with integer values ***\n"; -+// different integer vlaues -+$valid_ints = array( -+ '0' => '0', -+ '1' => '1', -+ '-1' => '-1', -+ '-2147483648' => '-2147483648', // max negative integer value -+ '-2147483647' => '-2147483647', -+ '2147483647' => 2147483647, // max positive integer value -+ '2147483640' => 2147483640, -+ '0x123B' => 0x123B, // integer as hexadecimal -+ "'0x12ab'" => '0x12ab', -+ "'0Xfff'" => '0Xfff', -+ "'0XFA'" => '0XFA', -+ "-0x80000000" => -0x7FFFFFFF - 1, // max negative integer as hexadecimal -+ "'0x7fffffff'" => '0x7fffffff', // max positive integer as hexadecimal -+ "0x7FFFFFFF" => 0x7FFFFFFF, // max positive integer as hexadecimal -+ "'0123'" => '0123', // integer as octal -+ "01912" => 01, // should be quivalent to octal 1 -+ "-020000000000" => -017777777777 - 1, // max negative integer as octal -+ "017777777777" => 017777777777, // max positive integer as octal -+); -+ -+/* Loop to check for above integer values with var_export() */ -+echo "\n*** Output for integer values ***\n"; -+foreach($valid_ints as $key => $int_value) { -+ echo "\n-- Iteration: $key --\n"; -+ var_export( $int_value ); -+ echo "\n"; -+ var_export( $int_value, FALSE); -+ echo "\n"; -+ var_dump( var_export( $int_value, TRUE) ); -+} -+ -+?> -+===DONE=== -+--EXPECT-- -+*** Testing var_export() with integer values *** -+ -+*** Output for integer values *** -+ -+-- Iteration: 0 -- -+'0' -+'0' -+string(3) "'0'" -+ -+-- Iteration: 1 -- -+'1' -+'1' -+string(3) "'1'" -+ -+-- Iteration: -1 -- -+'-1' -+'-1' -+string(4) "'-1'" -+ -+-- Iteration: -2147483648 -- -+'-2147483648' -+'-2147483648' -+string(13) "'-2147483648'" -+ -+-- Iteration: -2147483647 -- -+'-2147483647' -+'-2147483647' -+string(13) "'-2147483647'" -+ -+-- Iteration: 2147483647 -- -+2147483647 -+2147483647 -+string(10) "2147483647" -+ -+-- Iteration: 2147483640 -- -+2147483640 -+2147483640 -+string(10) "2147483640" -+ -+-- Iteration: 0x123B -- -+4667 -+4667 -+string(4) "4667" -+ -+-- Iteration: '0x12ab' -- -+'0x12ab' -+'0x12ab' -+string(8) "'0x12ab'" -+ -+-- Iteration: '0Xfff' -- -+'0Xfff' -+'0Xfff' -+string(7) "'0Xfff'" -+ -+-- Iteration: '0XFA' -- -+'0XFA' -+'0XFA' -+string(6) "'0XFA'" -+ -+-- Iteration: -0x80000000 -- -+-2147483647-1 -+-2147483647-1 -+string(13) "-2147483647-1" -+ -+-- Iteration: '0x7fffffff' -- -+'0x7fffffff' -+'0x7fffffff' -+string(12) "'0x7fffffff'" -+ -+-- Iteration: 0x7FFFFFFF -- -+2147483647 -+2147483647 -+string(10) "2147483647" -+ -+-- Iteration: '0123' -- -+'0123' -+'0123' -+string(6) "'0123'" -+ -+-- Iteration: 01912 -- -+1 -+1 -+string(1) "1" -+ -+-- Iteration: -020000000000 -- -+-2147483647-1 -+-2147483647-1 -+string(13) "-2147483647-1" -+ -+-- Iteration: 017777777777 -- -+2147483647 -+2147483647 -+string(10) "2147483647" -+===DONE=== -From c421d9afeca772968e185092950b70fdcd98f1e6 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Tue, 19 Mar 2019 16:15:14 +0100 -Subject: [PATCH] fix test for upcoming pcre2 10.33 - -"group name ..." => "subpattern name ..." ---- - ext/pcre/tests/bug37911.phpt | 2 +- - ext/pcre/tests/match_flags3.phpt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ext/pcre/tests/bug37911.phpt b/ext/pcre/tests/bug37911.phpt -index 2b7481a464de..4f3cb3574d08 100644 ---- a/ext/pcre/tests/bug37911.phpt -+++ b/ext/pcre/tests/bug37911.phpt -@@ -37,5 +37,5 @@ array(3) { - string(4) "blub" - } - --Warning: preg_replace_callback(): Compilation failed: group name must start with a non-digit at offset %d in %sbug37911.php on line %d -+Warning: preg_replace_callback(): Compilation failed: %s name must start with a non-digit at offset %d in %sbug37911.php on line %d - NULL -diff --git a/ext/pcre/tests/match_flags3.phpt b/ext/pcre/tests/match_flags3.phpt -index 695f0c1e81b5..6511c715e11e 100644 ---- a/ext/pcre/tests/match_flags3.phpt -+++ b/ext/pcre/tests/match_flags3.phpt -@@ -41,5 +41,5 @@ array(1) { - } - } - --Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset %d in %smatch_flags3.php on line %d -+Warning: preg_match(): Compilation failed: %s name must start with a non-digit at offset %d in %smatch_flags3.php on line %d - bool(false) -From 2e9dccef78d169be9a4a37c813e0b5d624bd5ac7 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Fri, 22 Mar 2019 15:00:31 +0100 -Subject: [PATCH] ensure pcre.jit=1 for these tests - ---- - ext/pcre/tests/preg_match_error3.phpt | 3 +++ - ext/standard/tests/general_functions/ini_get_all.phpt | 6 ++++++ - 2 files changed, 9 insertions(+) - -diff --git a/ext/pcre/tests/preg_match_error3.phpt b/ext/pcre/tests/preg_match_error3.phpt -index 2e91e24466ba..8b9d59fc58bd 100644 ---- a/ext/pcre/tests/preg_match_error3.phpt -+++ b/ext/pcre/tests/preg_match_error3.phpt -@@ -5,6 +5,9 @@ Test preg_match() function : error conditions - jit stacklimit exhausted - if (ini_get("pcre.jit") === FALSE) { - die("skip no jit built"); - } -+?> -+--INI-- -+pcre.jit=1 - --FILE-- - <?php - var_dump(preg_match('/^(foo)+$/', str_repeat('foo', 1024*8192))); -diff --git a/ext/standard/tests/general_functions/ini_get_all.phpt b/ext/standard/tests/general_functions/ini_get_all.phpt -index b97a945ee588..72ce86deaad4 100644 ---- a/ext/standard/tests/general_functions/ini_get_all.phpt -+++ b/ext/standard/tests/general_functions/ini_get_all.phpt -@@ -1,6 +1,7 @@ - --TEST-- - ini_get_all() tests - --INI-- -+pcre.jit=1 - pcre.backtrack_limit=1000000 - pcre.recursion_limit=100000 - --SKIPIF-- - -From e68fd40e22e695e17d94da24a1c0ca0087a61898 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Fri, 22 Mar 2019 15:31:36 +0100 -Subject: [PATCH] ensure pcre.jit=1 for this test - ---- - ext/pcre/tests/grep2.phpt | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/ext/pcre/tests/grep2.phpt b/ext/pcre/tests/grep2.phpt -index a739cb60ac3b..4c6f9b155f26 100644 ---- a/ext/pcre/tests/grep2.phpt -+++ b/ext/pcre/tests/grep2.phpt -@@ -2,6 +2,8 @@ - preg_grep() 2nd test - --SKIPIF-- - <?php if (!PCRE_JIT_SUPPORT) die("skip no pcre jit support"); ?> -+--INI-- -+pcre.jit=1 - --FILE-- - <?php - @@ -125,14 +125,14 @@ %global db_devel libdb-devel %endif -%global upver 7.3.4 -#global rcver RC1 -#global lower RC1 +%global upver 7.3.5 +%global rcver RC1 +%global lower RC1 Summary: PHP scripting language for creating dynamic web sites -Name: %{?scl_prefix}php +Name: %{?scl_prefix}php Version: %{upver}%{?rcver:~%{lower}} -Release: 3%{?dist} +Release: 1%{?dist} # All files licensed under PHP version 3.01, except # Zend is licensed under Zend # TSRM is licensed under BSD @@ -187,8 +187,6 @@ Patch48: php-7.3.3-pdooci.patch Patch91: php-7.2.0-oci8conf.patch # Upstream fixes (100+) -Patch100: php-upstream.patch -Patch101: php-bug77653.patch # Security fixes (200+) @@ -942,8 +940,6 @@ low-level PHP extension for the libsodium cryptographic library. %patch91 -p1 -b .remi-oci8 # upstream patches -%patch100 -p1 -b .up -%patch101 -p1 -b .bug77653 # security patches @@ -1886,6 +1882,9 @@ fi %changelog +* Tue Apr 16 2019 Remi Collet <remi@remirepo.net> - 7.3.5~RC1-1 +- update to 7.3.5RC1 + * Fri Apr 5 2019 Remi Collet <remi@remirepo.net> - 7.3.4-3 - build with system oniguruma5 |