Subject: | Test t/02-payload.t fails under Perl 5.17.10 |
The failure is in test 37, map type serialization/deserialization. There is not, I think, anything wrong with SOAP::Lite itself; the problem appears to be that the test assumes that if two hashes contain the same data, iteration over them will produce the keys in the same order. This assumption fails under 5.17.10, due to a change made for security reasons (see perldelta for that release).
It is possible to make the test pass by changing 'keys' to 'sort keys' in methods tag() and map() in SOAP::Serializer, but I am not sure this is the right solution -- and if it is, there are surely more changes that need to be made.
A better change would probably be to compare the DOMs rather than their serialized representation, but this seems to involve (at least) converting to Test::More.
I have attached a patch which is really more in the nature of a Band-Aid, which marks the failing test as TODO if the Perl version is 5.017010 or higher.
Subject: | SOAP-Lite-02-payload.patch |
--- t/02-payload.old 2012-06-25 16:13:34.000000000 -0400
+++ t/02-payload.t 2013-03-23 15:20:19.000000000 -0400
@@ -10,7 +10,12 @@
use strict;
use Test;
-BEGIN { plan tests => 131 }
+BEGIN {
+ my @todo;
+ $] >= 5.017010
+ and push @todo, 37;
+ plan tests => 131, todo => \@todo;
+}
use SOAP::Lite;
$SIG{__WARN__} = sub { ; }; # turn off deprecation warnings