From a895479719295830d96bc61225cccfca2a180edf Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 10 Jun 2015 17:26:59 +0200 Subject: php 5.4: add some patch to improve test results --- failed.txt | 27 +---- php-5.4.42-datetests-1.patch | 258 +++++++++++++++++++++++++++++++++++++++++++ php-5.4.42-datetests-2.patch | 54 +++++++++ php-5.4.42-oldpcre.patch | 39 +++++++ php.spec | 14 +++ 5 files changed, 370 insertions(+), 22 deletions(-) create mode 100644 php-5.4.42-datetests-1.patch create mode 100644 php-5.4.42-datetests-2.patch create mode 100644 php-5.4.42-oldpcre.patch diff --git a/failed.txt b/failed.txt index 1214dea..2416368 100644 --- a/failed.txt +++ b/failed.txt @@ -2,32 +2,15 @@ $ grep -r 'Tests failed' /var/lib/mock/scl54*/build.log -/var/lib/mock/scl54fc19x/build.log:Tests failed : 4 ( 0.0%) ( 0.1%) - Bug #37911 (preg_replace_callback ignores named groups) [ext/pcre/tests/bug37911.phpt] - preg_grep() 2nd test [ext/pcre/tests/grep2.phpt] - preg_match() flags 3 [ext/pcre/tests/match_flags3.phpt] - Test setlocale() function : usage variations - Setting all available locales in the platform [ext/standard/tests/strings/setlocale_variation2.phpt] - -/var/lib/mock/scl54fc20x/build.log:Tests failed : 4 ( 0.0%) ( 0.1%) - idem f19 - -/var/lib/mock/scl54fc21x/build.log:Tests failed : 10 ( 0.1%) ( 0.1%) - Test DateTimeZone::getTransitions() function : basic functionality [ext/date/tests/DateTimeZone_getTransitions_basic1.phpt] - DateTime::add() -- massive [ext/date/tests/DateTime_add-massive.phpt] - DateTime::diff() -- massive [ext/date/tests/DateTime_diff-massive.phpt] - DateTime::sub() -- massive [ext/date/tests/DateTime_sub-massive.phpt] - Bug #48058 (Year formatter goes wrong with out-of-int range) [ext/date/tests/bug48058.phpt] - Test getdate() function : usage variation - Passing high positive and negative float values to timestamp. [ext/date/tests/getdate_variation7.phpt] - mktime() [3] (64-bit) [ext/date/tests/mktime-3-64bit.phpt] - Test timezone_transitions_get() function : basic functionality [ext/date/tests/timezone_transitions_get_basic1.phpt] - Test setlocale() function : usage variations - Setting all available locales in the platform [ext/standard/tests/strings/setlocale_variation2.phpt] +/var/lib/mock/scl54fc19x/build.log:Tests failed : 0 ( 0.0%) ( 0.0%) +/var/lib/mock/scl54fc20x/build.log:Tests failed : 0 ( 0.0%) ( 0.0%) +/var/lib/mock/scl54fc21x/build.log:Tests failed : 1 ( 0.0%) ( 0.0%) Test strptime() function : basic functionality [ext/standard/tests/time/strptime_basic.phpt] -/var/lib/mock/scl54fc22x/build.log:Tests failed : 10 ( 0.1%) ( 0.1%) +/var/lib/mock/scl54fc22x/build.log:Tests failed : 1 ( 0.0%) ( 0.0%) idem f21 /var/lib/mock/scl54el6x/build.log:Tests failed : 1 ( 0.0%) ( 0.0%) Bug #32001 (xml_parse*() goes into infinite loop when autodetection in effect), using UTF-* [ext/xml/tests/bug32001.phpt] -/var/lib/mock/scl54el7x/build.log:Tests failed : 4 ( 0.0%) ( 0.1%) - idem f19 +/var/lib/mock/scl54el7x/build.log:Tests failed : 0 ( 0.0%) ( 0.0%) diff --git a/php-5.4.42-datetests-1.patch b/php-5.4.42-datetests-1.patch new file mode 100644 index 0000000..28a6109 --- /dev/null +++ b/php-5.4.42-datetests-1.patch @@ -0,0 +1,258 @@ +From c39e777722f9b566ecff521602fb49ea20bb2961 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sat, 18 Apr 2015 07:47:47 +0200 +Subject: [PATCH] Make date transitions tests more flexible + +zic in recent glibc (2.20) introduce a new transitionn +so use a range to avoid failure when total number +of transitions is different (243/244) +--- + ext/date/tests/DateTimeZone_getTransitions_basic1.phpt | 6 +++--- + ext/date/tests/timezone_transitions_get_basic1.phpt | 10 +++++----- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt b/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt +index f3640d1..d178080 100644 +--- a/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt ++++ b/ext/date/tests/DateTimeZone_getTransitions_basic1.phpt +@@ -16,7 +16,7 @@ date_default_timezone_set("Europe/London"); + // Create a DateTimeZone object + $tz = new DateTimeZone("Europe/London"); + +-$tran = $tz->getTransitions(); ++$tran = $tz->getTransitions(-306972000, -37241999); + + if (!is_array($tran)) { + echo "TEST FAILED: Expected an array\n"; +@@ -25,14 +25,14 @@ if (!is_array($tran)) { + echo "\n-- Total number of transitions: " . count($tran). " --\n"; + + echo "\n-- Format a sample entry for Spring 1963 --\n"; +-var_dump( $tran[97] ); ++var_dump( $tran[6] ); + + ?> + ===DONE=== + --EXPECT-- + *** Testing DateTimeZone::getTransitions() : basic functionality *** + +--- Total number of transitions: 243 -- ++-- Total number of transitions: 18 -- + + -- Format a sample entry for Spring 1963 -- + array(5) { +diff --git a/ext/date/tests/timezone_transitions_get_basic1.phpt b/ext/date/tests/timezone_transitions_get_basic1.phpt +index eb6cf99..97c5f0c 100644 +--- a/ext/date/tests/timezone_transitions_get_basic1.phpt ++++ b/ext/date/tests/timezone_transitions_get_basic1.phpt +@@ -18,24 +18,24 @@ $tz = timezone_open("Europe/London"); + + $tran = timezone_transitions_get($tz); + +-echo "\n-- Get all transitions --\n"; +-$tran = timezone_transitions_get($tz); ++echo "\n-- Get all 60s transitions --\n"; ++$tran = timezone_transitions_get($tz, -306972000, -37241999); + var_dump( gettype($tran) ); + + echo "\n-- Total number of transitions: " . count($tran). " --\n"; + + echo "\n-- Format a sample entry pfor Spring 1963 --\n"; +-var_dump( $tran[97] ); ++var_dump( $tran[6] ); + + ?> + ===DONE=== + --EXPECT-- + *** Testing timezone_transitions_get() : basic functionality *** + +--- Get all transitions -- ++-- Get all 60s transitions -- + string(5) "array" + +--- Total number of transitions: 243 -- ++-- Total number of transitions: 18 -- + + -- Format a sample entry pfor Spring 1963 -- + array(5) { +-- +2.1.4 + +From ba41b340c227ccfa61ba7b52d5d8cd07be512340 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sat, 18 Apr 2015 09:11:39 +0200 +Subject: [PATCH] relax bigbang content (new zic) + +--- + ext/date/tests/bug48058.phpt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ext/date/tests/bug48058.phpt b/ext/date/tests/bug48058.phpt +index 46a1918..87d2190 100644 +--- a/ext/date/tests/bug48058.phpt ++++ b/ext/date/tests/bug48058.phpt +@@ -20,10 +20,10 @@ array(5) { + ["time"]=> + string(%d) "%s" + ["offset"]=> +- int(3600) ++ int(%s) + ["isdst"]=> +- bool(true) ++ bool(%s) + ["abbr"]=> +- string(3) "BST" ++ string(%d) "%s" + } + 10000002008-02-28T12:00:00+0000 +-- +2.1.4 + +From 194e64982e4408ba54cec143612e1a1aaa0fb937 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sat, 18 Apr 2015 09:28:29 +0200 +Subject: [PATCH] relax test for date < INT32_MIN (new zic) + +--- + ext/date/tests/mktime-3-64bit.phpt | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/ext/date/tests/mktime-3-64bit.phpt b/ext/date/tests/mktime-3-64bit.phpt +index a3649cd..cbb441f 100644 +--- a/ext/date/tests/mktime-3-64bit.phpt ++++ b/ext/date/tests/mktime-3-64bit.phpt +@@ -24,7 +24,7 @@ foreach ($tzs as $tz) { + echo "\n"; + } + ?> +---EXPECT-- ++--EXPECTF-- + America/Toronto + Y: 0 - January 2000-01-01T01:01:01-0500 + Y: 69 - January 2069-01-01T01:01:01-0500 +@@ -32,11 +32,11 @@ Y: 70 - January 1970-01-01T01:01:01-0500 + Y: 71 - January 1971-01-01T01:01:01-0500 + Y: 99 - January 1999-01-01T01:01:01-0500 + Y: 100 - January 2000-01-01T01:01:01-0500 +-Y: 101 - January 0101-01-01T01:01:01-0500 +-Y: 105 - January 0105-01-01T01:01:01-0500 +-Y: 110 - January 0110-01-01T01:01:01-0500 +-Y: 1900 - January 1900-01-01T01:01:01-0500 +-Y: 1901 - January 1901-01-01T01:01:01-0500 ++Y: 101 - January 0101-01-01T01:01:01-0%d ++Y: 105 - January 0105-01-01T01:01:01-0%d ++Y: 110 - January 0110-01-01T01:01:01-0%d ++Y: 1900 - January 1900-01-01T01:01:01-0%d ++Y: 1901 - January 1901-01-01T01:01:01-0%d + Y: 1902 - January 1902-01-01T01:01:01-0500 + Y: 1999 - January 1999-01-01T01:01:01-0500 + Y: 2000 - January 2000-01-01T01:01:01-0500 +@@ -49,11 +49,11 @@ Y: 70 - January 1970-01-01T01:01:01+0100 + Y: 71 - January 1971-01-01T01:01:01+0100 + Y: 99 - January 1999-01-01T01:01:01+0100 + Y: 100 - January 2000-01-01T01:01:01+0100 +-Y: 101 - January 0101-01-01T01:01:01+0100 +-Y: 105 - January 0105-01-01T01:01:01+0100 +-Y: 110 - January 0110-01-01T01:01:01+0100 +-Y: 1900 - January 1900-01-01T01:01:01+0100 +-Y: 1901 - January 1901-01-01T01:01:01+0100 ++Y: 101 - January 0101-01-01T01:01:01+0%d ++Y: 105 - January 0105-01-01T01:01:01+0%d ++Y: 110 - January 0110-01-01T01:01:01+0%d ++Y: 1900 - January 1900-01-01T01:01:01+0%d ++Y: 1901 - January 1901-01-01T01:01:01+0%d + Y: 1902 - January 1902-01-01T01:01:01+0100 + Y: 1999 - January 1999-01-01T01:01:01+0100 + Y: 2000 - January 2000-01-01T01:01:01+0100 +-- +2.1.4 + +From c1e84a3bdee216d8951fce8678daede24798ea94 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sat, 18 Apr 2015 09:37:06 +0200 +Subject: [PATCH] ignore second value for huge timestamp test (new zic) + +--- + ext/date/tests/getdate_variation7.phpt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext/date/tests/getdate_variation7.phpt b/ext/date/tests/getdate_variation7.phpt +index 2088fa1..c757ac7 100644 +--- a/ext/date/tests/getdate_variation7.phpt ++++ b/ext/date/tests/getdate_variation7.phpt +@@ -27,7 +27,7 @@ var_dump( getdate($timestamp) ); + -- Testing getdate\(\) function by passing float 12.3456789000e10 value to timestamp -- + array\(11\) { + \["seconds"\]=> +- int\((36|0)\) ++ int\((.+)\) + \["minutes"\]=> + int\((43|0)\) + \["hours"\]=> +@@ -53,7 +53,7 @@ array\(11\) { + -- Testing getdate\(\) function by passing float -12.3456789000e10 value to timestamp -- + array\(11\) { + \["seconds"\]=> +- int\((44|12|20)\) ++ int\((.+)\) + \["minutes"\]=> + int\((39|23)\) + \["hours"\]=> +-- +2.1.4 + +From 97fcbf041af509bcb5c129b15ba5b6ce98f81cb6 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Sat, 18 Apr 2015 10:00:15 +0200 +Subject: [PATCH] relax tests with huge year (new zic) + +--- + ext/date/tests/DateTime_add-massive.phpt | 6 +++--- + ext/date/tests/DateTime_diff-massive.phpt | 6 +++--- + ext/date/tests/DateTime_sub-massive.phpt | 6 +++--- + 3 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/ext/date/tests/DateTime_add-massive.phpt b/ext/date/tests/DateTime_add-massive.phpt +index ca5bef9..6093d05 100644 +--- a/ext/date/tests/DateTime_add-massive.phpt ++++ b/ext/date/tests/DateTime_add-massive.phpt +@@ -10,6 +10,6 @@ define('PHPT_DATETIME_SHOW', PHPT_DATETIME_SHOW_ADD); + require 'DateTime_data-massive.inc'; + + ?> +---EXPECT-- +-test_massive_positive: ADD: -333333-01-01 16:18:02 EST + P+666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 EST** +-test_massive_negative: ADD: 333333-01-01 16:18:02 EST + P-666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 EST** ++--EXPECTF-- ++test_massive_positive: ADD: -333333-01-01 16:18:02 %s + P+666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 %s** ++test_massive_negative: ADD: 333333-01-01 16:18:02 %s + P-666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 %s** +diff --git a/ext/date/tests/DateTime_diff-massive.phpt b/ext/date/tests/DateTime_diff-massive.phpt +index 2199f84..12a7d0f 100644 +--- a/ext/date/tests/DateTime_diff-massive.phpt ++++ b/ext/date/tests/DateTime_diff-massive.phpt +@@ -10,6 +10,6 @@ define('PHPT_DATETIME_SHOW', PHPT_DATETIME_SHOW_DIFF); + require 'DateTime_data-massive.inc'; + + ?> +---EXPECT-- +-test_massive_positive: DIFF: 333333-01-01 16:18:02 EST - -333333-01-01 16:18:02 EST = **P+666666Y0M0DT0H0M0S** +-test_massive_negative: DIFF: -333333-01-01 16:18:02 EST - 333333-01-01 16:18:02 EST = **P-666666Y0M0DT0H0M0S** ++--EXPECTF-- ++test_massive_positive: DIFF: 333333-01-01 16:18:02 %s - -333333-01-01 16:18:02 %s = **P+666666Y0M0DT0H%s** ++test_massive_negative: DIFF: -333333-01-01 16:18:02 %s - 333333-01-01 16:18:02 %s = **P-666666Y0M0DT0H%s** +diff --git a/ext/date/tests/DateTime_sub-massive.phpt b/ext/date/tests/DateTime_sub-massive.phpt +index a0520ec..e143056 100644 +--- a/ext/date/tests/DateTime_sub-massive.phpt ++++ b/ext/date/tests/DateTime_sub-massive.phpt +@@ -10,6 +10,6 @@ define('PHPT_DATETIME_SHOW', PHPT_DATETIME_SHOW_SUB); + require 'DateTime_data-massive.inc'; + + ?> +---EXPECT-- +-test_massive_positive: SUB: 333333-01-01 16:18:02 EST - P+666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 EST** +-test_massive_negative: SUB: -333333-01-01 16:18:02 EST - P-666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 EST** ++--EXPECTF-- ++test_massive_positive: SUB: 333333-01-01 16:18:02 %s - P+666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 %s** ++test_massive_negative: SUB: -333333-01-01 16:18:02 %s - P-666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 %s** +-- +2.1.4 diff --git a/php-5.4.42-datetests-2.patch b/php-5.4.42-datetests-2.patch new file mode 100644 index 0000000..fcddbc7 --- /dev/null +++ b/php-5.4.42-datetests-2.patch @@ -0,0 +1,54 @@ +Backport various fix from 5.6 + +From 7cbd8f8b8a662c1e74cb1c97dac6f606f8f477c9 Mon Sep 17 00:00:00 2001 +From: krakjoe +Date: Thu, 21 Aug 2014 10:03:48 +0100 +Subject: [PATCH] remove bogus locale use from test + +--- + ext/standard/tests/strings/setlocale_variation2.phpt | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/ext/standard/tests/strings/setlocale_variation2.phpt b/ext/standard/tests/strings/setlocale_variation2.phpt +index 038ba58..10ae22f 100644 +--- a/ext/standard/tests/strings/setlocale_variation2.phpt ++++ b/ext/standard/tests/strings/setlocale_variation2.phpt +@@ -18,8 +18,11 @@ if (substr(PHP_OS, 0, 3) == 'WIN') { + /* setlocale() to set all available locales in the system and check the success count */ + echo "*** Testing setlocale() : usage variations ***\n"; + +-function good_locale($locale) { +- return $locale !== 'tt_RU@iqtelif.UTF-8'; ++function good_locale($locale) { ++ /** ++ * Note: no_NO is a bogus locale and should not be used, see https://bugzilla.redhat.com/show_bug.cgi?id=532487 ++ **/ ++ return $locale !== 'tt_RU@iqtelif.UTF-8' && substr($locale, 0, 5) !== "no_NO"; + } + + /* Prototype : array list_system_locales( void ) +From 3e6f17673338034724c8b637c214b53a51a9db14 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Wed, 1 Oct 2014 10:14:14 +0200 +Subject: [PATCH] only no_NO.ISO-8859-1 have to be ignored + +--- + ext/standard/tests/strings/setlocale_variation2.phpt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext/standard/tests/strings/setlocale_variation2.phpt b/ext/standard/tests/strings/setlocale_variation2.phpt +index 10ae22f..5ebdfe8 100644 +--- a/ext/standard/tests/strings/setlocale_variation2.phpt ++++ b/ext/standard/tests/strings/setlocale_variation2.phpt +@@ -20,9 +20,9 @@ echo "*** Testing setlocale() : usage variations ***\n"; + + function good_locale($locale) { + /** +- * Note: no_NO is a bogus locale and should not be used, see https://bugzilla.redhat.com/show_bug.cgi?id=532487 ++ * Note: no_NO is a bogus locale and should not be used, see https://bugzilla.redhat.com/971416 + **/ +- return $locale !== 'tt_RU@iqtelif.UTF-8' && substr($locale, 0, 5) !== "no_NO"; ++ return $locale !== 'tt_RU@iqtelif.UTF-8' && $locale !== 'no_NO.ISO-8859-1'; + } + + /* Prototype : array list_system_locales( void ) diff --git a/php-5.4.42-oldpcre.patch b/php-5.4.42-oldpcre.patch new file mode 100644 index 0000000..df6edb2 --- /dev/null +++ b/php-5.4.42-oldpcre.patch @@ -0,0 +1,39 @@ +diff -up ./ext/pcre/tests/bug37911.phpt.pcre834 ./ext/pcre/tests/bug37911.phpt +--- ./ext/pcre/tests/bug37911.phpt.pcre834 2014-03-26 14:10:18.285452752 +0100 ++++ ./ext/pcre/tests/bug37911.phpt 2014-03-26 14:10:40.028526763 +0100 +@@ -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(): Numeric named subpatterns are not allowed in %sbug37911.php on line %d + NULL +diff -up ./ext/pcre/tests/grep2.phpt.pcre834 ./ext/pcre/tests/grep2.phpt +--- ./ext/pcre/tests/grep2.phpt.pcre834 2014-03-26 14:08:26.583072531 +0100 ++++ ./ext/pcre/tests/grep2.phpt 2014-03-26 14:09:09.345218089 +0100 +@@ -40,12 +40,6 @@ array(1) { + string(1) "1" + } + bool(true) +-array(3) { +- [5]=> +- string(1) "a" +- ["xyz"]=> +- string(2) "q6" +- [6]=> +- string(3) "h20" ++array(0) { + } +-bool(false) ++bool(true) +diff -up ./ext/pcre/tests/match_flags3.phpt.pcre834 ./ext/pcre/tests/match_flags3.phpt +--- ./ext/pcre/tests/match_flags3.phpt.pcre834 2014-03-26 14:06:48.792739665 +0100 ++++ ./ext/pcre/tests/match_flags3.phpt 2014-03-26 14:07:31.820886128 +0100 +@@ -42,5 +42,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(): Numeric named subpatterns are not allowed in %smatch_flags3.php on line %d + bool(false) +diff -up ./ext/standard/tests/strings/setlocale_variation2.phpt.pcre834 ./ext/standard/tests/strings/setlocale_variation2.phpt diff --git a/php.spec b/php.spec index 8159deb..891ee44 100644 --- a/php.spec +++ b/php.spec @@ -169,6 +169,12 @@ Patch102: php-5.4.39-bug50444.patch # Security fixes (200+) # Fixes for tests (300+) +# Backported from 5.5 +Patch300: php-5.4.42-datetests-1.patch +# no_NO issue +Patch301: php-5.4.42-datetests-2.patch +# Revert changes for pcre < 8.34 +Patch302: php-5.4.42-oldpcre.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -799,6 +805,14 @@ support for using the enchant library to PHP. # security patches # Fixes for tests +%patch300 -p1 -b .datetests1 +%patch301 -p1 -b .datetests2 +%if %{with_libpcre} +%if 0%{?fedora} < 21 +# Only apply when system libpcre < 8.34 +%patch302 -p1 -b .pcre834 +%endif +%endif # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE -- cgit