Hello community, here is the log from the commit of package perl-Sereal for openSUSE:Factory checked in at 2018-10-11 11:53:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Sereal (Old) and /work/SRC/openSUSE:Factory/.perl-Sereal.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sereal" Thu Oct 11 11:53:17 2018 rev:2 rq:640428 version:4.005 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Sereal/perl-Sereal.changes 2018-09-15 15:34:50.585040556 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Sereal.new/perl-Sereal.changes 2018-10-11 11:54:12.878117942 +0200 @@ -1,0 +2,11 @@ +Sun Oct 7 15:12:10 UTC 2018 - Dirk Stoecker <[email protected]> + +- Fix autogenerated changes + +------------------------------------------------------------------- +Wed Feb 7 17:17:08 UTC 2018 - [email protected] + +- updated to 4.005 + see /usr/share/doc/packages/perl-Sereal/Changes + +------------------------------------------------------------------- Old: ---- Sereal-3.015.tar.gz New: ---- Sereal-4.005.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Sereal.spec ++++++ --- /var/tmp/diff_new_pack.skVKyi/_old 2018-10-11 11:54:13.258117460 +0200 +++ /var/tmp/diff_new_pack.skVKyi/_new 2018-10-11 11:54:13.258117460 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Sereal # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,31 +12,31 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: perl-Sereal -Version: 3.015 +Version: 4.005 Release: 0 %define cpan_name Sereal Summary: Fast, compact, powerful binary (de-)serialization -License: Artistic-1.0 or GPL-1.0+ +License: Artistic-1.0 OR GPL-1.0-or-later Group: Development/Libraries/Perl -Url: http://search.cpan.org/dist/Sereal/ -Source0: http://www.cpan.org/authors/id/Y/YV/YVES/%{cpan_name}-%{version}.tar.gz +Url: https://metacpan.org/release/%{cpan_name} +Source0: https://cpan.metacpan.org/authors/id/Y/YV/YVES/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros -BuildRequires: perl(Sereal::Decoder) >= 3.015 -BuildRequires: perl(Sereal::Encoder) >= 3.015 +BuildRequires: perl(Sereal::Decoder) >= 4.005 +BuildRequires: perl(Sereal::Encoder) >= 4.005 BuildRequires: perl(Test::LongString) BuildRequires: perl(Test::More) >= 0.88 BuildRequires: perl(Test::Warn) -Requires: perl(Sereal::Decoder) >= 3.015 -Requires: perl(Sereal::Encoder) >= 3.015 +Requires: perl(Sereal::Decoder) >= 4.005 +Requires: perl(Sereal::Encoder) >= 4.005 %{perl_requires} %description @@ -66,11 +66,12 @@ %setup -q -n %{cpan_name}-%{version} %build -%{__perl} Makefile.PL INSTALLDIRS=vendor -%{__make} %{?_smp_mflags} +perl Makefile.PL INSTALLDIRS=vendor +# Don't use smp_flags! +make %check -%{__make} test +make test %install %perl_make_install ++++++ Sereal-3.015.tar.gz -> Sereal-4.005.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/Changes new/Sereal-4.005/Changes --- old/Sereal-3.015/Changes 2016-09-01 20:19:37.000000000 +0200 +++ new/Sereal-4.005/Changes 2018-01-23 21:43:42.000000000 +0100 @@ -7,12 +7,30 @@ * https://github.com/Sereal/Sereal/blob/master/Perl/Encoder/Changes **************************************************************** -* Warning: For a seamless upgrade, upgrade to version 3 * -* of the decoder before upgrading to version 3 of the * +* Warning: For a seamless upgrade, upgrade to version 4 * +* of the decoder before upgrading to version 4 of the * * encoder! This may mean you should NOT install the * * Sereal package and instead install the Encoder or * * Decoder independently. * **************************************************************** +4.005 Tues Jan 23, 2018 + * Encoder: Document encode_to_file() + * Decoder: Document and fix decode_from_file() + * Sereal: fixup docs on write_file()/decode_file() + +4.004 Sun Nov 12 + * Fix build issues from C++ style comments + * Fixup build_requires + +4.003 Sun Nov 12 + * Fixup Devel::CheckLib usage + * Do not compress using Snappy if the buffer is larger 2**32 + * Build fixes + +4.001_001 Mon Feb 6 11:13:40 CEST 2017 + * Sereal v4 release with Zstandard compression support + https://github.com/facebook/zstd + 3.015 Thu Sep 1 20:18:44 CEST 2016 * Fix builds under 5.25+ * Fix various buffer overun bugs found using AFL (thanks to dgryski) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/MANIFEST new/Sereal-4.005/MANIFEST --- old/Sereal-3.015/MANIFEST 2016-09-01 20:21:41.000000000 +0200 +++ new/Sereal-4.005/MANIFEST 2018-01-23 21:51:20.000000000 +0100 @@ -67,6 +67,23 @@ t/700_roundtrip/v3/sort_keys_perl_rev.t t/700_roundtrip/v3/zlib.t t/700_roundtrip/v3/zlib_force.t +t/700_roundtrip/v4/dedudep_strings.t +t/700_roundtrip/v4/freeze_thaw.t +t/700_roundtrip/v4/plain.t +t/700_roundtrip/v4/plain_canon.t +t/700_roundtrip/v4/readonly.t +t/700_roundtrip/v4/snappy.t +t/700_roundtrip/v4/snappy_and_warn_unknown.t +t/700_roundtrip/v4/snappy_canon.t +t/700_roundtrip/v4/snappy_incr.t +t/700_roundtrip/v4/snappy_incr_canon.t +t/700_roundtrip/v4/sort_keys.t +t/700_roundtrip/v4/sort_keys_perl.t +t/700_roundtrip/v4/sort_keys_perl_rev.t +t/700_roundtrip/v4/zlib.t +t/700_roundtrip/v4/zlib_force.t +t/700_roundtrip/v4/zstd.t +t/700_roundtrip/v4/zstd_force.t t/800_threads.t t/900_reentrancy.t t/900_regr_issue_15.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/META.json new/Sereal-4.005/META.json --- old/Sereal-3.015/META.json 2016-09-01 20:21:41.000000000 +0200 +++ new/Sereal-4.005/META.json 2018-01-23 21:51:20.000000000 +0100 @@ -4,7 +4,7 @@ "Steffen Mueller <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.18, CPAN::Meta::Converter version 2.143240", + "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -32,8 +32,8 @@ }, "runtime" : { "requires" : { - "Sereal::Decoder" : "3.015", - "Sereal::Encoder" : "3.015", + "Sereal::Decoder" : "4.005", + "Sereal::Encoder" : "4.005", "perl" : "5.008" } }, @@ -42,8 +42,8 @@ "Data::Dumper" : "0", "File::Spec" : "0", "Scalar::Util" : "0", - "Sereal::Decoder" : "3.015", - "Sereal::Encoder" : "3.015", + "Sereal::Decoder" : "4.005", + "Sereal::Encoder" : "4.005", "Test::LongString" : "0", "Test::More" : "0.88", "Test::Warn" : "0" @@ -60,5 +60,6 @@ "url" : "git://github.com/Sereal/Sereal.git" } }, - "version" : "3.015" + "version" : "4.005", + "x_serialization_backend" : "JSON::PP version 2.27400" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/META.yml new/Sereal-4.005/META.yml --- old/Sereal-3.015/META.yml 2016-09-01 20:21:41.000000000 +0200 +++ new/Sereal-4.005/META.yml 2018-01-23 21:51:20.000000000 +0100 @@ -7,15 +7,15 @@ ExtUtils::MakeMaker: '0' File::Spec: '0' Scalar::Util: '0' - Sereal::Decoder: '3.015' - Sereal::Encoder: '3.015' + Sereal::Decoder: '4.005' + Sereal::Encoder: '4.005' Test::LongString: '0' Test::More: '0.88' Test::Warn: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.18, CPAN::Meta::Converter version 2.143240' +generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -26,10 +26,11 @@ - t - inc requires: - Sereal::Decoder: '3.015' - Sereal::Encoder: '3.015' + Sereal::Decoder: '4.005' + Sereal::Encoder: '4.005' perl: '5.008' resources: bugtracker: https://github.com/Sereal/Sereal/issues repository: git://github.com/Sereal/Sereal.git -version: '3.015' +version: '4.005' +x_serialization_backend: 'CPAN::Meta::YAML version 0.011' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/Makefile.PL new/Sereal-4.005/Makefile.PL --- old/Sereal-3.015/Makefile.PL 2016-09-01 20:19:56.000000000 +0200 +++ new/Sereal-4.005/Makefile.PL 2018-01-23 21:43:47.000000000 +0100 @@ -4,7 +4,7 @@ use ExtUtils::MakeMaker; use Cwd; -our $VERSION = '3.015'; +our $VERSION = '4.005'; my $shared_dir = "../shared"; my $its_our_repo_file= "../this_is_the_Sereal_repo.txt"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/inc/Sereal/BuildTools.pm new/Sereal-4.005/inc/Sereal/BuildTools.pm --- old/Sereal-3.015/inc/Sereal/BuildTools.pm 2016-07-13 02:39:28.000000000 +0200 +++ new/Sereal-4.005/inc/Sereal/BuildTools.pm 2018-01-23 21:18:12.000000000 +0100 @@ -1,15 +1,34 @@ -package inc::Sereal::BuildTools; +package # +inc::Sereal::BuildTools; use strict; use warnings; use Config; use constant OSNAME => $^O; +my %bare_minimum_files= map { $_ => 1 } qw{ + typemap + ppport.h + srl_stack.h + srl_common.h + srl_inline.h + srl_taginfo.h + srl_protocol.h + srl_reader_error.h + srl_reader_types.h + inc/Sereal/BuildTools.pm + inc/Devel/CheckLib.pm + inc/Sereal + inc/Devel + inc +}; + sub link_files { my $shared_dir = shift; - my $do_tests = shift || ""; - my $exclude_tests= $do_tests eq "without_tests"; - my $tests_only= $do_tests eq "tests_only"; + my $mode = shift || ""; + my $exclude_tests= $mode eq "without_tests"; + my $tests_only= $mode eq "tests_only"; + my $bare_minimum= $mode eq "bare_minimum"; # This fires from a git source tree only. # Right now, all devs are on Linux. Feel free to make portable. @@ -26,6 +45,7 @@ return unless $_; return if $exclude_tests && m#^/?t/#; return if $tests_only && !m#^/?t/#; + return if $bare_minimum && !exists $bare_minimum_files{$_}; if (-d $f) { File::Path::mkpath($_) @@ -60,7 +80,7 @@ # Prefer external csnappy and miniz libraries over the bundled ones. sub check_external_libraries { - my ($libs, $defines, $objects) = @_; + my ($libs, $defines, $objects, $subdirs) = @_; require Devel::CheckLib; if ( @@ -91,6 +111,22 @@ print "Using bundled miniz code\n"; $$objects .= ' miniz$(OBJ_EXT)'; } + + if ( + !$ENV{SEREAL_USE_BUNDLED_LIBS} && + !$ENV{SEREAL_USE_BUNDLED_ZSTD} && + Devel::CheckLib::check_lib( + lib => 'zstd', + header => 'zstd.h' + )) { + print "Using installed zstd library\n"; + $$libs .= ' -lzstd'; + $$defines .= ' -DHAVE_ZSTD'; + } else { + print "Using bundled zstd code\n"; + push @{ $subdirs }, 'zstd'; + $$objects .= ' zstd/libzstd$(OBJ_EXT)'; + } } sub build_defines { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/lib/Sereal.pm new/Sereal-4.005/lib/Sereal.pm --- old/Sereal-3.015/lib/Sereal.pm 2016-09-01 20:19:56.000000000 +0200 +++ new/Sereal-4.005/lib/Sereal.pm 2018-01-23 21:43:47.000000000 +0100 @@ -2,10 +2,10 @@ use 5.008; use strict; use warnings; -our $VERSION = '3.015'; +our $VERSION = '4.005'; our $XS_VERSION = $VERSION; $VERSION= eval $VERSION; -use Sereal::Encoder 3.015 qw(encode_sereal sereal_encode_with_object); -use Sereal::Decoder 3.015 qw( +use Sereal::Encoder 4.005 qw(encode_sereal sereal_encode_with_object); +use Sereal::Decoder 4.005 qw( decode_sereal looks_like_sereal decode_sereal_with_header_data scalar_looks_like_sereal sereal_decode_with_object sereal_decode_with_header_with_object @@ -21,8 +21,10 @@ get_sereal_encoder clear_sereal_object_cache - encode_sereal decode_sereal - write_sereal read_sereal + encode_sereal + decode_sereal + write_sereal + read_sereal looks_like_sereal sereal_encode_with_object sereal_decode_with_object @@ -58,14 +60,14 @@ return $DECODERS{_key($opts)} ||= Sereal::Decoder->new($opts); } -sub write_sereal { +sub write_sereal_file { my ($file, $struct, $append, $opts)= @_; - get_sereal_encoder($opts)->write_to_file($file, $_[1], $append); + get_sereal_encoder($opts)->encode_to_file($file, $_[1], $append); } -sub read_sereal { +sub read_sereal_file { my ($file, $opts)= @_; - get_sereal_decoder($opts)->read_from_file($file,$_[2]); + get_sereal_decoder($opts)->decode_from_file($file,$_[2]); } 1; @@ -80,14 +82,29 @@ =head1 SYNOPSIS - use Sereal qw(encode_sereal decode_sereal - sereal_encode_with_object - sereal_decode_with_object - looks_like_sereal); - # Note: For performance reasons, you should prefer the OO interface, - # or sereal_(en|de)code_with_object over the stateless - # encode_sereal/decode_sereal functions. - # See the Sereal::Performance documentation for details. + use Sereal qw( + get_sereal_decoder + get_sereal_encoder + clear_sereal_object_cache + encode_sereal + decode_sereal + write_sereal + read_sereal + looks_like_sereal + sereal_encode_with_object + sereal_decode_with_object + decode_sereal_with_header_data + scalar_looks_like_sereal + sereal_decode_with_header_with_object + sereal_decode_only_header_with_object + sereal_decode_only_header_with_offset_with_object + sereal_decode_with_header_and_offset_with_object + sereal_decode_with_offset_with_object + ); + # Note: For performance reasons, you should prefer the OO interface, + # or sereal_(en|de)code_with_object over the stateless + # encode_sereal/decode_sereal functions. + # See the Sereal::Performance documentation for details. =head1 DESCRIPTION @@ -132,6 +149,24 @@ C<Sereal::Decoder> are guaranteed to be loaded, so you can use their object-oriented interface. +=head2 get_sereal_encoder($OPTSHASH) + +Returns a Sereal::Encoder with the given options. This encoder will be shared by other calls +to this function. + +=head2 get_sereal_decoder($OPTSHASH) + +Returns a Sereal::Decoder with the given options. This encoder will be shared by other calls +to this function. + +=head2 write_sereal($FILENAME,$STRUCT,$APPEND,$OPTS) + +Write a sereal packet to $FILENAME. See Sereal::Encoder::encode_to_file(). + +=head2 read_sereal($FILENAME,$OPTS) + +Read a sereal packet from a file. See Sereal::Decoder::decode_from_file(). + =head1 BUGS, CONTACT AND SUPPORT For reporting bugs, please use the github bug tracker at diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/010_desperate.t new/Sereal-4.005/t/010_desperate.t --- old/Sereal-3.015/t/010_desperate.t 2016-08-30 11:14:06.000000000 +0200 +++ new/Sereal-4.005/t/010_desperate.t 2018-01-23 21:18:12.000000000 +0100 @@ -30,7 +30,7 @@ sub run_tests { my ($extra_name, $opt_hash) = @_; - setup_tests(3); + setup_tests(4); foreach my $bt (@BasicTests) { my (undef, $expect, $name, @alternate) = @$bt; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/080_set_readonly.t new/Sereal-4.005/t/080_set_readonly.t --- old/Sereal-3.015/t/080_set_readonly.t 2016-08-30 11:18:10.000000000 +0200 +++ new/Sereal-4.005/t/080_set_readonly.t 2017-11-12 21:16:47.000000000 +0100 @@ -10,13 +10,14 @@ } use Sereal::TestSet qw(:all); use Sereal::Decoder; +use Scalar::Util qw(reftype weaken); my @tests= ( [ set_readonly => 1 ], ); if (have_encoder_and_decoder()) { - my $num_tests= 26; + my $num_tests= 62; plan tests => $num_tests; } else { plan skip_all => 'Did not find right version of encoder'; @@ -24,11 +25,15 @@ my $foo = bless([ 1, 2, 3 ],"foo"); +my $weak_blessed_href = bless({ blah => 'bat', hash => { t => 1 } }, 'SomeClass'); +weaken($weak_blessed_href->{foo} = $weak_blessed_href); my $struct= { hashref => { a => [ "b", 5, bless({ foo => "bar"}, "SomeClass")] }, + blessed_ref_with_refs => bless({ foo => { bar => 'test' }, bar => ['baz'], empty_href => {}, empty_aref => [] }, 'Blah'), string => "foobar", arrayref => [ "foobar" ], blessed_arrayref => $foo, + weak_blessed_href => $weak_blessed_href, }; foreach my $name ( keys %$struct ) { @@ -58,27 +63,33 @@ $scalars_only ||= 0; my $should_be_readonly = $scalars_only ? !ref($s) : 1; - is(Internals::SvREADONLY($_[0]), $should_be_readonly, + is(Internals::SvREADONLY( $_[0] ), $should_be_readonly, "scalar_only: '$scalars_only'. We want ro: '$should_be_readonly'. struct: $name, path: $path" ); - my $ref = ref $s - or return; + my $reftype = reftype($_[0]) + or return; - if ($ref eq 'ARRAY' || $ref eq 'foo') { + if ( length($path) ) { + is(&Internals::SvREADONLY( $_[0] ), $should_be_readonly, + "scalar_only: '$scalars_only'. We want ro: '$should_be_readonly'. struct: $name, path: $path" + ); + } + if ($reftype eq 'ARRAY') { my $i = 0; foreach (@$s) { _recurse($_, $path . '->[' . $i . ']', $name, $scalars_only); } } - elsif ($ref eq 'HASH' || $ref eq 'SomeClass') { + elsif ($reftype eq 'HASH') { foreach (keys %$s) { + next if reftype($s->{$_}) && $s->{$_} == $s; _recurse($s->{$_}, $path . '->{' . $_ . '}', $name, $scalars_only); } - } elsif ($ref eq 'SCALAR') { + } elsif ($reftype eq 'SCALAR') { _recurse($$s, '${' . $path . '}', $name, $scalars_only); } else { - die "unknown ref value '$ref'"; + die "unknown ref type '$reftype'"; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/300_fail.t new/Sereal-4.005/t/300_fail.t --- old/Sereal-3.015/t/300_fail.t 2016-08-30 11:15:46.000000000 +0200 +++ new/Sereal-4.005/t/300_fail.t 2017-11-12 21:16:47.000000000 +0100 @@ -11,10 +11,19 @@ } use Sereal::TestSet qw(:all); -use Test::More tests => 19; +use Test::More; use Sereal::Encoder; use Sereal::Encoder::Constants qw(:all); +BEGIN { + if (not have_encoder_and_decoder()) { + plan skip_all => 'Did not find right version of decoder'; + exit 0; + } else { + plan tests => 19; + } +} +use Sereal::Decoder; my ($ok, $err, $out); @@ -152,5 +161,3 @@ qr/Sereal/, "warn_unknown == -1 warns about stringified sub without overloading"; } - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/dedudep_strings.t new/Sereal-4.005/t/700_roundtrip/v4/dedudep_strings.t --- old/Sereal-3.015/t/700_roundtrip/v4/dedudep_strings.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/dedudep_strings.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'dedupe_strings', { dedupe_strings => 1 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/freeze_thaw.t new/Sereal-4.005/t/700_roundtrip/v4/freeze_thaw.t --- old/Sereal-3.015/t/700_roundtrip/v4/freeze_thaw.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/freeze_thaw.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'freeze-thaw', { freeze_callbacks => 1 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/plain.t new/Sereal-4.005/t/700_roundtrip/v4/plain.t --- old/Sereal-3.015/t/700_roundtrip/v4/plain.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/plain.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,28 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $version; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests("plain"); +} + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/plain_canon.t new/Sereal-4.005/t/700_roundtrip/v4/plain_canon.t --- old/Sereal-3.015/t/700_roundtrip/v4/plain_canon.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/plain_canon.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,27 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +$ok= 0 if $ok and $Sereal::Encoder::VERSION < 3.001006; +if (not $ok) { + plan skip_all => 'Did not find right version of encoder (want 3.001006)'; +} +else { + run_roundtrip_tests("plain_canonical", { canonical => 1 }); +} + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/readonly.t new/Sereal-4.005/t/700_roundtrip/v4/readonly.t --- old/Sereal-3.015/t/700_roundtrip/v4/readonly.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/readonly.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'readonly', { set_readonly => 1 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/snappy.t new/Sereal-4.005/t/700_roundtrip/v4/snappy.t --- old/Sereal-3.015/t/700_roundtrip/v4/snappy.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/snappy.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,27 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests('snappy', { snappy => 1 } ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/snappy_and_warn_unknown.t new/Sereal-4.005/t/700_roundtrip/v4/snappy_and_warn_unknown.t --- old/Sereal-3.015/t/700_roundtrip/v4/snappy_and_warn_unknown.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/snappy_and_warn_unknown.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,45 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + my $e = Sereal::Encoder->new(); + my $d = Sereal::Decoder->new(); + + my $out; + my $payload = [ 'abcd' x 1024 ]; + my $ok = eval {$out = $e->encode($payload); 1}; + my $err = $@ || 'Zombie error'; + ok($ok, "snappy_incr and warn_unknown makes CODE encoding not fail"); + + my $decoded; + $ok = eval {$decoded = $d->decode($out); 1}; + $err = $@ || 'Zombie error'; + ok($ok, "snappy_incr and warn_unknown produced decodable output") + or do { + diag($err); + hobodecode($out) if $ENV{DEBUG_SEREAL}; + }; + + is_deeply($decoded, $payload, 'results matches'); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/snappy_canon.t new/Sereal-4.005/t/700_roundtrip/v4/snappy_canon.t --- old/Sereal-3.015/t/700_roundtrip/v4/snappy_canon.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/snappy_canon.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,27 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +$ok= 0 if $ok and $Sereal::Encoder::VERSION < 3.001006; +if (not $ok) { + plan skip_all => 'Did not find right version of encoder (want 3.001006)'; +} +else { + run_roundtrip_tests('snappy_canon', { snappy => 1, canonical => 1 } ); +} + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/snappy_incr.t new/Sereal-4.005/t/700_roundtrip/v4/snappy_incr.t --- old/Sereal-3.015/t/700_roundtrip/v4/snappy_incr.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/snappy_incr.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'snappy_incr', { snappy_incr => 1 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/snappy_incr_canon.t new/Sereal-4.005/t/700_roundtrip/v4/snappy_incr_canon.t --- old/Sereal-3.015/t/700_roundtrip/v4/snappy_incr_canon.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/snappy_incr_canon.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,27 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +$ok= 0 if $ok and $Sereal::Encoder::VERSION < 3.001006; +if (not $ok) { + plan skip_all => 'Did not find right version of encoder (want 3.001006)'; +} +else { + run_roundtrip_tests('snappy_incr_canon', { snappy_incr => 1, canonical => 1 }); +} + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/sort_keys.t new/Sereal-4.005/t/700_roundtrip/v4/sort_keys.t --- old/Sereal-3.015/t/700_roundtrip/v4/sort_keys.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/sort_keys.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'sort_keys', { sort_keys => 1 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/sort_keys_perl.t new/Sereal-4.005/t/700_roundtrip/v4/sort_keys_perl.t --- old/Sereal-3.015/t/700_roundtrip/v4/sort_keys_perl.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/sort_keys_perl.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'sort_keys', { sort_keys => 2 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/sort_keys_perl_rev.t new/Sereal-4.005/t/700_roundtrip/v4/sort_keys_perl_rev.t --- old/Sereal-3.015/t/700_roundtrip/v4/sort_keys_perl_rev.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/sort_keys_perl_rev.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,29 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'sort_keys', { sort_keys => 3 } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/zlib.t new/Sereal-4.005/t/700_roundtrip/v4/zlib.t --- old/Sereal-3.015/t/700_roundtrip/v4/zlib.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/zlib.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,32 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'zlib', + { + compress => Sereal::Encoder::SRL_ZLIB(), + } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/zlib_force.t new/Sereal-4.005/t/700_roundtrip/v4/zlib_force.t --- old/Sereal-3.015/t/700_roundtrip/v4/zlib_force.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/zlib_force.t 2017-10-03 19:46:10.000000000 +0200 @@ -0,0 +1,33 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'zlib_force', + { + compress => Sereal::Encoder::SRL_ZLIB(), + compress_threshold => 0, + } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/zstd.t new/Sereal-4.005/t/700_roundtrip/v4/zstd.t --- old/Sereal-3.015/t/700_roundtrip/v4/zstd.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/zstd.t 2017-11-12 23:20:41.000000000 +0100 @@ -0,0 +1,32 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'zstd', + { + compress => Sereal::Encoder::SRL_ZSTD(), + } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/700_roundtrip/v4/zstd_force.t new/Sereal-4.005/t/700_roundtrip/v4/zstd_force.t --- old/Sereal-3.015/t/700_roundtrip/v4/zstd_force.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Sereal-4.005/t/700_roundtrip/v4/zstd_force.t 2017-11-12 23:18:28.000000000 +0100 @@ -0,0 +1,33 @@ +#!perl +use strict; +use warnings; +use Data::Dumper; +use File::Spec; + +use lib File::Spec->catdir(qw(t lib)); +BEGIN { + lib->import('lib') + if !-d 't'; +} + +use Sereal::TestSet qw(:all); +use Test::More; + +my $ok = have_encoder_and_decoder(); +if (not $ok) { + plan skip_all => 'Did not find right version of encoder'; +} +else { + run_roundtrip_tests( + 'zstd_force', + { + compress => Sereal::Encoder::SRL_ZSTD(), + compress_threshold => 0, + } + ); +} + + +pass(); +done_testing(); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-3.015/t/lib/Sereal/TestSet.pm new/Sereal-4.005/t/lib/Sereal/TestSet.pm --- old/Sereal-3.015/t/lib/Sereal/TestSet.pm 2016-08-30 11:37:23.000000000 +0200 +++ new/Sereal-4.005/t/lib/Sereal/TestSet.pm 2018-01-23 21:18:12.000000000 +0100 @@ -632,34 +632,35 @@ sub have_encoder_and_decoder { my ($min_v)= @_; # $Class is the already-loaded class, so the one we're testing - my $need = $Class =~ /Encoder/ ? "Decoder" : "Encoder"; - my $need_class = "Sereal::$need"; + my @need = $Class =~ /Encoder/ ? ("Decoder") : + $Class =~ /Decoder/ ? ("Encoder") : + ("Encoder", "Decoder"); + my @need_class = ($Class, map { "Sereal::$_" } @need); + + foreach my $class (@need_class) { + eval "use $class; 1" + or do { + note("Could not locate $class for testing" . ($@ ? " (Exception: $@)" : "")); + return(); + }; + my $cmp_v= $class->VERSION; + + if ($min_v and $cmp_v < $min_v) { + diag("Could not load correct version of $class for testing " + ."(got: $cmp_v, needed at least $min_v)"); + return; + } - eval "use $Class; 1" - or do { - note("Could not locate $Class for testing" . ($@ ? " (Exception: $@)" : "")); - return(); - }; - - eval "use $need_class; 1" - or do { - note("Could not locate $need_class for testing" . ($@ ? " (Exception: $@)" : "")); - return(); - }; - my $cmp_v = $need_class->VERSION; - if ($min_v and $cmp_v < $min_v) { - diag("Could not load correct version of $need_class for testing " - ."(got: $cmp_v, needed at least $min_v)"); - return; - } - $cmp_v =~ s/_//; - $cmp_v = sprintf("%.2f", int($cmp_v*100)/100); - my %compat_versions = map {$_ => 1} $Class->_test_compat(); - if (not defined $cmp_v or not exists $compat_versions{$cmp_v}) { - diag("Could not load correct version of $need_class for testing " - ."(got: $cmp_v, needed any of ".join(", ", keys %compat_versions).")"); - return(); + $cmp_v =~ s/_//; + $cmp_v = sprintf("%.2f", int($cmp_v*100)/100); + my %compat_versions = map {$_ => 1} $Class->_test_compat(); + if (not defined $cmp_v or not exists $compat_versions{$cmp_v}) { + diag("Could not load correct version of $class for testing " + ."(got: $cmp_v, needed any of ".join(", ", keys %compat_versions).")"); + return(); + } } + return 1; } @@ -1054,6 +1055,8 @@ my ($ename, $opt, $encode_decode_callbacks) = @_; require Data::Dumper; + my $failed = 0; + my $decoder = Sereal::Decoder->new($opt); my $encoder = Sereal::Encoder->new($opt); my %seen_name; @@ -1061,6 +1064,11 @@ foreach my $rt (@RoundtripTests) { my ($name, $data) = @$rt; + if ($failed > 20) { + fail("too many test failures to continue"); + last; + } + TODO: foreach my $meth ( ['object-oriented', @@ -1089,13 +1097,15 @@ eval {$encoded = $enc->($data); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while encoding: $err"); + fail("$name ($ename, $mname, encoding failed)"); + $failed++; }; defined($encoded) or do { fail("$name ($ename, $mname, encoded defined)"); debug_checks(\$data, \$encoded, undef); + $failed++; next; #test }; @@ -1103,13 +1113,16 @@ eval {$decoded = $dec->($encoded); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while decoding: $err"); + fail("$name ($ename, $mname, decoding failed)"); + $failed++; + next; }; defined($decoded) == defined($data) or do { fail("$name ($ename, $mname, decoded definedness)"); debug_checks(\$data, \$encoded, undef); + $failed++; next; #test }; @@ -1118,13 +1131,15 @@ eval {$encoded2 = $enc->($decoded); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while encoding the second time: $err"); + fail("$name ($ename, $mname, second encoding failed)"); + $failed++; + next; #test }; defined $encoded2 or do { fail("$name ($ename, $mname, encoded2 defined)"); - debug_checks(\$data, \$encoded, \$decoded); + $failed++; next; #test }; @@ -1132,13 +1147,15 @@ eval {$decoded2 = $dec->($encoded2); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while decoding the second time: $err"); - # hobodecode($encoded2); + fail("$name ($ename, $mname, second decoding failed)"); + $failed++; + next; #test }; defined($decoded2) == defined($data) or do { fail("$name ($ename, $mname, decoded2 defined)"); + $failed++; next; #test }; @@ -1147,13 +1164,15 @@ eval {$encoded3 = $enc->($decoded2); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while encoding the third time: $err"); + fail("$name ($ename, $mname, third encoding failed)"); + $failed++; + next; #test }; defined $encoded3 or do { fail("$name ($ename, $mname, encoded3 defined)"); - debug_checks(\$data, \$encoded, \$decoded); + $failed++; next; #test }; @@ -1161,31 +1180,38 @@ eval {$decoded3 = $dec->($encoded3); 1} or do { my $err = $@ || 'Zombie error'; - diag("Got error while decoding the third time: $err"); + fail("$name ($ename, $mname, third decoding failed)"); + $failed++; + next; #test }; defined($decoded3) == defined($data) or do { fail("$name ($ename, $mname, decoded3 defined)"); + $failed++; next; #test }; - deep_cmp($decoded, $data, "$name ($ename, $mname, decoded vs data)") or next; #test - deep_cmp($decoded2, $data, "$name ($ename, $mname, decoded2 vs data)") or next; #test - deep_cmp($decoded2, $decoded, "$name ($ename, $mname, decoded2 vs decoded)") or next; #test - - deep_cmp($decoded3, $data, "$name ($ename, $mname, decoded3 vs data)") or next; #test - deep_cmp($decoded3, $decoded, "$name ($ename, $mname, decoded3 vs decoded)") or next; #test - deep_cmp($decoded3, $decoded2, "$name ($ename, $mname, decoded3 vs decoded2)") or next; #test + deep_cmp($decoded, $data, "$name ($ename, $mname, decoded vs data)") + or do { $failed++; next }; #test + deep_cmp($decoded2, $data, "$name ($ename, $mname, decoded2 vs data)") + or do { $failed++; next }; #test + deep_cmp($decoded2, $decoded, "$name ($ename, $mname, decoded2 vs decoded)") + or do { $failed++; next }; #test + deep_cmp($decoded3, $data, "$name ($ename, $mname, decoded3 vs data)") + or do { $failed++; next }; #test + deep_cmp($decoded3, $decoded, "$name ($ename, $mname, decoded3 vs decoded)") + or do { $failed++; next }; #test + deep_cmp($decoded3, $decoded2, "$name ($ename, $mname, decoded3 vs decoded2)") + or do { $failed++; next }; #test if ( $ename =~ /canon/ ) { - deep_cmp($encoded2, $encoded, "$name ($ename, $mname, encoded2 vs encoded)") or do { - diag Dumper($encoded2); - diag Dumper($encoded); - next; #test - }; - deep_cmp($encoded3, $encoded2, "$name ($ename, $mname, encoded3 vs encoded2)") or next; #test - deep_cmp($encoded3, $encoded, "$name ($ename, $mname, encoded3 vs encoded)") or next; #test + deep_cmp($encoded2, $encoded, "$name ($ename, $mname, encoded2 vs encoded)") + or do { $failed++; next }; #test + deep_cmp($encoded3, $encoded2, "$name ($ename, $mname, encoded3 vs encoded2)") + or do { $failed++; next }; #test + deep_cmp($encoded3, $encoded, "$name ($ename, $mname, encoded3 vs encoded)") + or do { $failed++; next }; #test if ($ENV{SEREAL_TEST_SAVE_OUTPUT} and $mname eq 'object-oriented') { use File::Path; @@ -1237,13 +1263,13 @@ # For bootstrapping other language implementations' tests our $COMPRESS; sub write_test_files { - my $dir = shift; + my ($dir, $version) = @_; require File::Path; File::Path::mkpath($dir); my $make_data_file_name = sub {File::Spec->catfile($dir, sprintf("test_data_%05u", shift))}; my $make_name_file_name = sub {File::Spec->catfile($dir, sprintf("test_name_%05u", shift))}; - setup_tests(); + setup_tests($version); foreach my $testno (1..@BasicTests) { my $t = $BasicTests[$testno-1]; my $data = ref($t->[1]) eq 'CODE' ? $t->[1]->() : $t->[1];
