summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <awilcox@wilcox-tech.com>2019-04-27 10:08:24 +0000
committerA. Wilcox <awilcox@wilcox-tech.com>2019-04-27 10:08:24 +0000
commitacfe3293f30caea9fc3d6f28f739e73ca605a701 (patch)
tree070ec6491264927951eb2606ae67ebcaae6ff008
parent1b5f36062887f3af038ef894e7684b2c7c820d3a (diff)
parentd83150ef41013d852192942fb121a04587370810 (diff)
downloadpackages-acfe3293f30caea9fc3d6f28f739e73ca605a701.tar.gz
packages-acfe3293f30caea9fc3d6f28f739e73ca605a701.tar.bz2
packages-acfe3293f30caea9fc3d6f28f739e73ca605a701.tar.xz
packages-acfe3293f30caea9fc3d6f28f739e73ca605a701.zip
Merge branch 'php7-32bit' into 'master'
user/php7: fix tests on 32 bit arches See merge request !225
-rw-r--r--user/php7/APKBUILD6
-rw-r--r--user/php7/fix-32bit-int-min.patch1351
2 files changed, 1355 insertions, 2 deletions
diff --git a/user/php7/APKBUILD b/user/php7/APKBUILD
index 8da8caab5..c220704c6 100644
--- a/user/php7/APKBUILD
+++ b/user/php7/APKBUILD
@@ -92,7 +92,8 @@ source="https://www.php.net/distributions/$_pkgname-$pkgver.tar.bz2
allow-build-recode-and-imap-together.patch
fix-tests-devserver.patch
pwbuflen.patch
- enchant-2.patch"
+ enchant-2.patch
+ fix-32bit-int-min.patch"
builddir="$srcdir/$_pkgname-$pkgver"
_libdir="/usr/lib/$_pkgname"
_extension_dir="$_libdir/modules"
@@ -536,4 +537,5 @@ a77dd3bdf9dc7a0f2c06ff3e7c425d062bbaa29902c17402ce98701dc99499be863ad543aa5e6a7d
f8ecae241a90cbc3e98aa4deb3d5d35ef555f51380e29f4e182a8060dffeb84be74f030a14c6b452668471030d78964f52795ca74275db05543ccad20ef1f2cc allow-build-recode-and-imap-together.patch
f8bb322e56df79dd9f391737fb8737945cc730b14c7dc2ae8688979c565a9b97f5f2a12c9fcd0d8124624a9d09bd10228147d9e999bb94909bbe249f0a50646c fix-tests-devserver.patch
8e538063d872f6770a57cdb844226a771ccda3d387dd1f199bb08c274b94fbe12ec0ef6df75c32071f308cb8f4ab51b91b520c7c2ed687adf96d0d322788e463 pwbuflen.patch
-03de56676449ddc1ba1fc9c4fee2b2ed620cd1a8ce52d288c91b42e081182871ade55c8dbbe1c8286bc4eadcd92d497a62ac7b689ea8d6b1bcb5eb25225595c4 enchant-2.patch"
+03de56676449ddc1ba1fc9c4fee2b2ed620cd1a8ce52d288c91b42e081182871ade55c8dbbe1c8286bc4eadcd92d497a62ac7b689ea8d6b1bcb5eb25225595c4 enchant-2.patch
+90c29989b88fcec1b5700b525c7e9f39dee67ca32cf66109908ac750eb2930270de5e13bc2ba3f5720a57c5613e39bc04475fa2bc001ca47c9505bff7e14a9d9 fix-32bit-int-min.patch"
diff --git a/user/php7/fix-32bit-int-min.patch b/user/php7/fix-32bit-int-min.patch
new file mode 100644
index 000000000..d121d26bc
--- /dev/null
+++ b/user/php7/fix-32bit-int-min.patch
@@ -0,0 +1,1351 @@
+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===