diff options
| -rw-r--r-- | failed.txt | 22 | ||||
| -rw-r--r-- | php-upstream.patch | 1416 | ||||
| -rw-r--r-- | php73.spec | 9 | 
3 files changed, 1436 insertions, 11 deletions
@@ -2,24 +2,26 @@  $ grep -r 'Tests failed' /var/lib/mock/{fc,el}*/build.log -/var/lib/mock/el6i/build.log:Tests failed    :     2 +/var/lib/mock/el6i/build.log:Tests failed    :     1  /var/lib/mock/el6x/build.log:Tests failed    :     0  /var/lib/mock/el7x/build.log:Tests failed    :     0  /var/lib/mock/el8x73/build.log:Tests failed  :    13 -/var/lib/mock/fc27i/build.log:Tests failed    :    2 +/var/lib/mock/fc27i/build.log:Tests failed    :    0  /var/lib/mock/fc27x/build.log:Tests failed    :    0 -/var/lib/mock/fc28i/build.log:Tests failed    :    2 +/var/lib/mock/fc28i/build.log:Tests failed    :    1  /var/lib/mock/fc28x/build.log:Tests failed    :    0 -/var/lib/mock/fc29i/build.log:Tests failed    :    2 -/var/lib/mock/fc29x/build.log:Tests failed    :    0 -/var/lib/mock/fc30i/build.log:Tests failed    :    1 +/var/lib/mock/fc29i/build.log:Tests failed    :    0 +/var/lib/mock/fc29x/build.log:Tests failed    :    1 +/var/lib/mock/fc30i/build.log:Tests failed    :    0  /var/lib/mock/fc30x/build.log:Tests failed    :    0 -el6i, fc27i, fc28i, fc29i -	2	Test var_export() function with locale [ext/standard/tests/general_functions/var_export-locale.phpt] -el6i, fc27i, fc28i, fc29i, fc30i -	2	Test var_export() function with integer values [ext/standard/tests/general_functions/var_export_basic1.phpt] +el6i +	1	Bug #64438 proc_open hangs with stdin/out with 4097+ bytes [ext/standard/tests/streams/proc_open_bug64438.phpt] +fc28i +		Server bitwise stream crypto flag assignment [ext/openssl/tests/stream_crypto_flags_003.phpt] +fc29x +		Bug #69521      Segfault in gc_collect_cycles() [ext/standard/tests/streams/bug69521.phpt]  el8x:  	5	buildroot issue with openssl under investigation diff --git a/php-upstream.patch b/php-upstream.patch new file mode 100644 index 0000000..b842532 --- /dev/null +++ b/php-upstream.patch @@ -0,0 +1,1416 @@ +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 5c8d69bf6fde2bbb3d6c168833bc9a70f0a5bc1f Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Thu, 21 Mar 2019 09:19:42 +0100 +Subject: [PATCH] fix test + +--- + .../general_functions/var_export-locale_32.phpt      | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/ext/standard/tests/general_functions/var_export-locale_32.phpt b/ext/standard/tests/general_functions/var_export-locale_32.phpt +index 39efdec7dfcb..af9efd9e24fb 100644 +--- a/ext/standard/tests/general_functions/var_export-locale_32.phpt ++++ b/ext/standard/tests/general_functions/var_export-locale_32.phpt +@@ -917,12 +917,12 @@ string(41) "array ( + *** Output for objects *** +  + Iteration 1 +-stdClass::__set_state(array( +-)) +-stdClass::__set_state(array( +-)) +-string(31) "stdClass::__set_state(array( +-))" ++(object) array( ++) ++(object) array( ++) ++string(17) "(object) array( ++)" +  +  + Iteration 2 @@ -125,7 +125,7 @@  Summary: PHP scripting language for creating dynamic web sites  Name: php  Version: %{upver}%{?rcver:~%{lower}} -Release: 1%{?dist} +Release: 2%{?dist}  # All files licensed under PHP version 3.01, except  # Zend is licensed under Zend  # TSRM is licensed under BSD @@ -183,6 +183,7 @@ Patch48: php-7.3.3-pdooci.patch  Patch91: php-7.2.0-oci8conf.patch  # Upstream fixes (100+) +Patch100: php-upstream.patch  # Security fixes (200+) @@ -228,6 +229,7 @@ BuildRequires: %{?dtsprefix}systemtap-sdt-devel  %endif  BuildRequires: libargon2-devel  #BuildRequires: bison +# used for tests  BuildRequires: /bin/ps  %if 0%{?rhel} @@ -1137,6 +1139,7 @@ low-level PHP extension for the libsodium cryptographic library.  %patch91 -p1 -b .remi-oci8  # upstream patches +%patch100 -p1 -b .up  # security patches @@ -2208,6 +2211,10 @@ fi  %changelog +* Thu Mar 21 2019 Remi Collet <remi@remirepo.net> - 7.3.4~RC1-2 +- update to 7.3.4RC1 new tag +- add upstream patches for failed tests +  * Tue Mar 19 2019 Remi Collet <remi@remirepo.net> - 7.3.4~RC1-1  - update to 7.3.4RC1  | 
