carlwgeorge / rpms / php

Forked from rpms/php 5 years ago
Clone
Blob Blame History Raw
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)