Adapt tests to zlib-1.2.11
This commit is contained in:
parent
4890b78564
commit
ccd8d520b4
94
Compress-Raw-Zlib-2.071-Adapt-tests-to-zlib-1.2.11.patch
Normal file
94
Compress-Raw-Zlib-2.071-Adapt-tests-to-zlib-1.2.11.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From b42f5c088158f473116d3aca2d050d4efb95b021 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 7 Feb 2017 14:44:48 +0100
|
||||
Subject: [PATCH] Adapt tests to zlib 1.2.11
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Since zlib-1.2.9 it's not safe to invoke deflateParams() when not all
|
||||
input was consumed by deflate(). deflateParams() could return
|
||||
Z_BUF_ERROR in some cases:
|
||||
|
||||
commit 7161ad76e2d0ac7de2a6235fcad3b9dfc99e9140
|
||||
Author: Mark Adler <madler@alumni.caltech.edu>
|
||||
Date: Tue Nov 22 23:29:19 2016 -0800
|
||||
|
||||
Assure that deflateParams() will not switch functions mid-block.
|
||||
|
||||
This alters the specification in zlib.h, so that deflateParams()
|
||||
will not change any parameters if there is not enough output space
|
||||
in the event that a block is emitted in order to allow switching
|
||||
the compression function.
|
||||
|
||||
zlib documentation recommends two fixes:
|
||||
|
||||
To retry deflateParams() as it processes a piece of input underneath
|
||||
until something else than Z_BUF_ERROR is returned. However this does
|
||||
not work for me because then the compressed stream gets corrupted
|
||||
and the subsequent inflate() returns a failure.
|
||||
|
||||
Another fix is to flush the deflated stream with Z_BLOCK just before
|
||||
any deflateParams() call that follows unifinished deflate(). This
|
||||
assures the new deflate options will be applied immediatelly on next
|
||||
deflate() call. This fix works for me. Thus I implemented it in the
|
||||
tests.
|
||||
|
||||
The new tests pass with zlib 1.2.8 as well as 1.2.11. 1.2.9 and 1.2.10
|
||||
seems broken changing the deflate options was fixed in 1.2.11.
|
||||
|
||||
CPAN RT#119762
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/02zlib.t | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/t/02zlib.t b/t/02zlib.t
|
||||
index 2c9aad6..50f6a82 100644
|
||||
--- a/t/02zlib.t
|
||||
+++ b/t/02zlib.t
|
||||
@@ -24,13 +24,13 @@ BEGIN
|
||||
|
||||
my $count = 0 ;
|
||||
if ($] < 5.005) {
|
||||
- $count = 232 ;
|
||||
+ $count = 236 ;
|
||||
}
|
||||
elsif ($] >= 5.006) {
|
||||
- $count = 317 ;
|
||||
+ $count = 320 ;
|
||||
}
|
||||
else {
|
||||
- $count = 275 ;
|
||||
+ $count = 278 ;
|
||||
}
|
||||
|
||||
plan tests => $count + $extra;
|
||||
@@ -537,6 +537,7 @@ SKIP:
|
||||
|
||||
$status = $x->deflate($hello, $Answer) ;
|
||||
cmp_ok $status, '==', Z_OK ;
|
||||
+ cmp_ok $x->flush($Answer, Z_BLOCK), '==', Z_OK ;
|
||||
$input .= $hello;
|
||||
|
||||
# error cases
|
||||
@@ -561,6 +562,7 @@ SKIP:
|
||||
|
||||
$status = $x->deflate($goodbye, $Answer) ;
|
||||
cmp_ok $status, '==', Z_OK ;
|
||||
+ cmp_ok $x->flush($Answer, Z_BLOCK), '==', Z_OK ;
|
||||
$input .= $goodbye;
|
||||
|
||||
# change only Level
|
||||
@@ -572,6 +574,7 @@ SKIP:
|
||||
|
||||
$status = $x->deflate($goodbye, $Answer) ;
|
||||
cmp_ok $status, '==', Z_OK ;
|
||||
+ cmp_ok $x->flush($Answer, Z_BLOCK), '==', Z_OK ;
|
||||
$input .= $goodbye;
|
||||
|
||||
# change only Strategy
|
||||
--
|
||||
2.7.4
|
||||
|
95
IO-Compress-2.070-Adapt-tests-to-zlib-1.2.11.patch
Normal file
95
IO-Compress-2.070-Adapt-tests-to-zlib-1.2.11.patch
Normal file
@ -0,0 +1,95 @@
|
||||
From a30130055928e5979c35aceee75cc3becfe3ad22 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 7 Feb 2017 17:23:29 +0100
|
||||
Subject: [PATCH] Adapt tests to zlib 1.2.11
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
CPAN RT#120134
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
t/cz-03zlib-v1.t | 13 +++++++++++--
|
||||
t/cz-06gzsetp.t | 4 +++-
|
||||
2 files changed, 14 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/t/cz-03zlib-v1.t b/t/cz-03zlib-v1.t
|
||||
index a85ed10..e070d46 100755
|
||||
--- a/t/cz-03zlib-v1.t
|
||||
+++ b/t/cz-03zlib-v1.t
|
||||
@@ -23,10 +23,10 @@ BEGIN
|
||||
|
||||
my $count = 0 ;
|
||||
if ($] < 5.005) {
|
||||
- $count = 453 ;
|
||||
+ $count = 456 ;
|
||||
}
|
||||
else {
|
||||
- $count = 471 ;
|
||||
+ $count = 474 ;
|
||||
}
|
||||
|
||||
|
||||
@@ -721,6 +721,9 @@ EOM
|
||||
|
||||
($Answer, $status) = $x->deflate($hello) ;
|
||||
ok $status == Z_OK ;
|
||||
+ ($X, $status) = $x->flush(Z_BLOCK) ;
|
||||
+ ok $status == Z_OK ;
|
||||
+ $Answer .= $X ;
|
||||
$input .= $hello;
|
||||
|
||||
# error cases
|
||||
@@ -747,6 +750,9 @@ EOM
|
||||
($X, $status) = $x->deflate($goodbye) ;
|
||||
ok $status == Z_OK ;
|
||||
$Answer .= $X ;
|
||||
+ ($X, $status) = $x->flush(Z_BLOCK) ;
|
||||
+ ok $status == Z_OK ;
|
||||
+ $Answer .= $X ;
|
||||
$input .= $goodbye;
|
||||
|
||||
# change only Level
|
||||
@@ -759,6 +765,9 @@ EOM
|
||||
($X, $status) = $x->deflate($goodbye) ;
|
||||
ok $status == Z_OK ;
|
||||
$Answer .= $X ;
|
||||
+ ($X, $status) = $x->flush(Z_BLOCK) ;
|
||||
+ ok $status == Z_OK ;
|
||||
+ $Answer .= $X ;
|
||||
$input .= $goodbye;
|
||||
|
||||
# change only Strategy
|
||||
diff --git a/t/cz-06gzsetp.t b/t/cz-06gzsetp.t
|
||||
index b2cc687..45869a0 100644
|
||||
--- a/t/cz-06gzsetp.t
|
||||
+++ b/t/cz-06gzsetp.t
|
||||
@@ -39,7 +39,7 @@ my $ver = Compress::Zlib::zlib_version();
|
||||
plan skip_all => "gzsetparams needs zlib 1.0.6 or better. You have $ver\n"
|
||||
if ZLIB_VERNUM() < 0x1060 ;
|
||||
|
||||
-plan tests => 51 + $extra ;
|
||||
+plan tests => 55 + $extra ;
|
||||
|
||||
# Check zlib_version and ZLIB_VERSION are the same.
|
||||
SKIP: {
|
||||
@@ -65,6 +65,7 @@ SKIP: {
|
||||
|
||||
$input .= $hello;
|
||||
is $x->gzwrite($hello), $len_hello, "gzwrite returned $len_hello" ;
|
||||
+ cmp_ok $x->gzflush(Z_BLOCK), '==', Z_OK, "flush before gzsetparams is ok";
|
||||
|
||||
# Error cases
|
||||
eval { $x->gzsetparams() };
|
||||
@@ -120,6 +121,7 @@ foreach my $CompressClass ('IO::Compress::Gzip',
|
||||
|
||||
my $input .= $hello;
|
||||
is $x->write($hello), $len_hello, "wrote $len_hello bytes" ;
|
||||
+ ok $x->flush(Z_BLOCK), "flush before deflateParams is ok";
|
||||
|
||||
# Change both Level & Strategy
|
||||
ok $x->deflateParams(Z_BEST_SPEED, Z_HUFFMAN_ONLY), "deflateParams ok";
|
||||
--
|
||||
2.7.4
|
||||
|
17
perl.spec
17
perl.spec
@ -28,7 +28,7 @@
|
||||
Name: perl
|
||||
Version: %{perl_version}
|
||||
# release number must be even higher, because dual-lived modules will be broken otherwise
|
||||
Release: 387%{?dist}
|
||||
Release: 388%{?dist}
|
||||
Epoch: %{perl_epoch}
|
||||
Summary: Practical Extraction and Report Language
|
||||
Group: Development/Languages
|
||||
@ -272,6 +272,11 @@ Patch75: perl-5.24.1-permit-goto-at-top-level-of-multicalled-sub.patch
|
||||
# Fix a heap overlow in parsing $#, RT#129274, in upstream after 5.25.9
|
||||
Patch76: perl-5.24.1-perl-129274-avoid-treating-the-in-as-a-comment-intro.patch
|
||||
|
||||
# Adapt tests to zlib-1.2.11, bug #1420326, CPAN RT#119762,
|
||||
# should be removed after fixing Compress-Raw-Zlib properly
|
||||
Patch77: Compress-Raw-Zlib-2.071-Adapt-tests-to-zlib-1.2.11.patch
|
||||
Patch78: IO-Compress-2.070-Adapt-tests-to-zlib-1.2.11.patch
|
||||
|
||||
# Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048
|
||||
Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
|
||||
|
||||
@ -2972,6 +2977,12 @@ Perl extension for Version Objects
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
pushd cpan/Compress-Raw-Zlib
|
||||
%patch77 -p1
|
||||
popd
|
||||
pushd cpan/IO-Compress
|
||||
%patch78 -p1
|
||||
popd
|
||||
%patch200 -p1
|
||||
%patch201 -p1
|
||||
|
||||
@ -3036,6 +3047,7 @@ perl -x patchlevel.h \
|
||||
'Fedora Patch74: Fix a memory leak in B::RHE->HASH method (RT#130504)' \
|
||||
'Fedora Patch75: Fix parsing goto statements in multicalled subroutine (RT#113938)' \
|
||||
'Fedora Patch76: Fix a heap overlow in parsing $# (RT#129274)' \
|
||||
'Fedora Patch77: Adapt tests to zlib-1.2.11 (CPAN RT#119762)' \
|
||||
'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \
|
||||
'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \
|
||||
%{nil}
|
||||
@ -5312,6 +5324,9 @@ popd
|
||||
|
||||
# Old changelog entries are preserved in CVS.
|
||||
%changelog
|
||||
* Fri Feb 10 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-388
|
||||
- Adapt tests to zlib-1.2.11 (bug #1420326)
|
||||
|
||||
* Thu Jan 26 2017 Petr Pisar <ppisar@redhat.com> - 4:5.24.1-387
|
||||
- Fix UTF-8 string handling in & operator (RT#129287)
|
||||
- Fix recreation of *:: (RT#129869)
|
||||
|
Loading…
Reference in New Issue
Block a user