[perl-RPC-XML] Adjust tests for perl 5.18
Petr Pisar
ppisar at fedoraproject.org
Thu Aug 1 08:46:22 UTC 2013
commit 6f1e4db9bd0c078d470f34a455aaa8a7c98b4d1a
Author: Petr Písař <ppisar at redhat.com>
Date: Thu Aug 1 10:43:49 2013 +0200
Adjust tests for perl 5.18
RPC-XML-0.77-hash_key_ordering.patch | 121 ++++++++++++++++++++++++++++++++++
perl-RPC-XML.spec | 5 ++
2 files changed, 126 insertions(+), 0 deletions(-)
---
diff --git a/RPC-XML-0.77-hash_key_ordering.patch b/RPC-XML-0.77-hash_key_ordering.patch
new file mode 100644
index 0000000..b6c3757
--- /dev/null
+++ b/RPC-XML-0.77-hash_key_ordering.patch
@@ -0,0 +1,121 @@
+From f6cee931344ffa6a757eb526b02de33c30b672f8 Mon Sep 17 00:00:00 2001
+From: "Randy J. Ray" <rjray at blackperl.com>
+Date: Thu, 30 May 2013 19:46:42 -0700
+Subject: [PATCH 1/2] Force key-ordering in struct as_string and serialize. Was
+ getting some intermittent bug reports of failures in t/15_serialize.t that
+ amounted to the keys in a fault struct not being in consistent order.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+
+Signed-off-by: Petr Písař <ppisar at redhat.com>
+---
+ lib/RPC/XML.pm | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/RPC/XML.pm b/lib/RPC/XML.pm
+index e6099a7..59e6963 100644
+--- a/lib/RPC/XML.pm
++++ b/lib/RPC/XML.pm
+@@ -844,7 +844,7 @@ sub as_string
+ ("<member><name>$_</name><value>",
+ $clean{$_},
+ '</value></member>')
+- } (keys %clean)),
++ } (sort keys %clean)),
+ '</struct>';
+ }
+
+@@ -856,7 +856,7 @@ sub serialize
+ my $key;
+
+ print {$fh} '<struct>';
+- for (keys %{$self})
++ for (sort keys %{$self})
+ {
+ ($key = $_) =~ s/$RPC::XML::XMLRE/$RPC::XML::XMLMAP{$1}/ge;
+ utf8::downgrade($key);
+@@ -1096,7 +1096,7 @@ sub length ## no critic (ProhibitBuiltinHomonyms)
+ my $cnt = 0;
+
+ $self->{fh_pos} = tell $self->{value_fh};
+- seek$self->{value_fh}, 0, 0;
++ seek $self->{value_fh}, 0, 0;
+ while ($cnt = read $self->{value_fh}, $buf, 60*57)
+ {
+ $len += length(MIME::Base64::encode_base64($buf, q{}));
+--
+1.8.1.4
+
+
+From 33617691326a0bc01efea624e05c65047f1c6154 Mon Sep 17 00:00:00 2001
+From: "Randy J. Ray" <rjray at blackperl.com>
+Date: Wed, 5 Jun 2013 21:13:38 -0700
+Subject: [PATCH 2/2] Undo the previous change and fix the test. The previous
+ change didn't feel right, so this rolls it back and fixes the problem at the
+ level of the test, instead.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+
+Signed-off-by: Petr Písař <ppisar at redhat.com>
+---
+ lib/RPC/XML.pm | 4 ++--
+ t/15_serialize.t | 17 ++++++++++++++++-
+ 2 files changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/lib/RPC/XML.pm b/lib/RPC/XML.pm
+index 59e6963..4d4eae1 100644
+--- a/lib/RPC/XML.pm
++++ b/lib/RPC/XML.pm
+@@ -844,7 +844,7 @@ sub as_string
+ ("<member><name>$_</name><value>",
+ $clean{$_},
+ '</value></member>')
+- } (sort keys %clean)),
++ } (keys %clean)),
+ '</struct>';
+ }
+
+@@ -856,7 +856,7 @@ sub serialize
+ my $key;
+
+ print {$fh} '<struct>';
+- for (sort keys %{$self})
++ for (keys %{$self})
+ {
+ ($key = $_) =~ s/$RPC::XML::XMLRE/$RPC::XML::XMLMAP{$1}/ge;
+ utf8::downgrade($key);
+diff --git a/t/15_serialize.t b/t/15_serialize.t
+index ad0d64d..f894f49 100644
+--- a/t/15_serialize.t
++++ b/t/15_serialize.t
+@@ -96,7 +96,22 @@ seek $ofh, 0, 0;
+ $data = '';
+ read $ofh, $data, -s $ofh;
+
+-is($data, $faux_res->as_string, 'Fault-response content is correct');
++# There have been some changes to how Perl handles iteration of hash keys.
++# As a result, this test has started failing a lot because of the order of
++# keys when serialized doesn't match the order of keys from as_string(). So
++# to get around this, just compare it to both variations that can occur.
++my $variant1 = '<?xml version="1.0" encoding="us-ascii"?><methodResponse>' .
++ '<fault><value><struct><member><name>faultString</name><value><string>' .
++ 'test</string></value></member><member><name>faultCode</name><value>' .
++ '<int>1</int></value></member></struct></value></fault></methodResponse>';
++my $variant2 = '<?xml version="1.0" encoding="us-ascii"?><methodResponse>' .
++ '<fault><value><struct><member><name>faultCode</name><value><int>1</int>' .
++ '</value></member><member><name>faultString</name><value><string>test' .
++ '</string></value></member></struct></value></fault></methodResponse>';
++ok(
++ ($data eq $variant1) || ($data eq $variant2),
++ 'Fault-response content is correct'
++);
+
+ close $ofh;
+ unlink $tmpfile;
+--
+1.8.1.4
+
diff --git a/perl-RPC-XML.spec b/perl-RPC-XML.spec
index e50ee22..dd10f52 100644
--- a/perl-RPC-XML.spec
+++ b/perl-RPC-XML.spec
@@ -9,6 +9,9 @@ License: Artistic 2.0 or LGPLv2
URL: http://search.cpan.org/dist/%{cpan_name}/
Source0: http://search.cpan.org/CPAN/authors/id/R/RJ/RJRAY/%{cpan_name}-%{version}.tar.gz
Source1: README.license
+# Adjust tests for perl 5.18, CPAN RT#86187,
+# from <https://github.com/rjray/rpc-xml.git>
+Patch0: RPC-XML-0.77-hash_key_ordering.patch
BuildArch: noarch
BuildRequires: perl(Cwd)
@@ -88,6 +91,7 @@ running RPC::XML under mod_perl.
%prep
%setup -qn %{cpan_name}-%{version}
+%patch0 -p1
cp -p %{SOURCE1} .
%build
@@ -117,6 +121,7 @@ make test
%changelog
* Thu Aug 01 2013 Petr Pisar <ppisar at redhat.com> - 0.77-3
- Perl 5.18 rebuild
+- Adjust tests for perl 5.18 (CPAN RT#86187)
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.77-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
More information about the scm-commits
mailing list