Hello community, here is the log from the commit of package perl-Test-Trap for openSUSE:Factory checked in at 2017-09-04 12:37:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Test-Trap (Old) and /work/SRC/openSUSE:Factory/.perl-Test-Trap.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Trap" Mon Sep 4 12:37:06 2017 rev:8 rq:520449 version:0.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Test-Trap/perl-Test-Trap.changes 2015-04-15 16:27:18.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Test-Trap.new/perl-Test-Trap.changes 2017-09-04 12:37:07.788697070 +0200 @@ -1,0 +2,17 @@ +Thu Aug 24 06:28:24 UTC 2017 - [email protected] + +- updated to 0.3.3 + see /usr/share/doc/packages/perl-Test-Trap/Changes + + 0.3.3 Tue Aug 22 02:06:09 CEST 2017 + For this release, many thanks go to Slaven Rezic, who found + that Test::More::is() (or Test2::Formatter::TAP::write()) + clobbers $^E on Windows. + - RT #105125 is addressed: The tests now use a copy of $^E + taken before Test::More gets a chance to touch it. + - Further, the Test::Trap test methods might also clobber $^E + (via Test::More or other modules), so they now localize $^E + before invoking the callback. + - Regression tests have been added for this. + +------------------------------------------------------------------- Old: ---- Test-Trap-v0.3.2.tar.gz New: ---- Test-Trap-v0.3.3.tar.gz cpanspec.yml ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Test-Trap.spec ++++++ --- /var/tmp/diff_new_pack.5Hz3uj/_old 2017-09-04 12:37:08.352617732 +0200 +++ /var/tmp/diff_new_pack.5Hz3uj/_new 2017-09-04 12:37:08.356617169 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Test-Trap # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 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 @@ -17,14 +17,15 @@ Name: perl-Test-Trap -Version: 0.3.2 +Version: 0.3.3 Release: 0 %define cpan_name Test-Trap Summary: Trap exit codes, exceptions, output, etc License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Test-Trap/ -Source: http://www.cpan.org/authors/id/E/EB/EBHANSSEN/%{cpan_name}-v%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/%{cpan_name}-v%{version}.tar.gz +Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl ++++++ Test-Trap-v0.3.2.tar.gz -> Test-Trap-v0.3.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/Changes new/Test-Trap-v0.3.3/Changes --- old/Test-Trap-v0.3.2/Changes 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/Changes 2017-08-23 21:57:50.000000000 +0200 @@ -1,5 +1,16 @@ Revision history for Test-Trap +0.3.3 Tue Aug 22 02:06:09 CEST 2017 + For this release, many thanks go to Slaven Rezic, who found + that Test::More::is() (or Test2::Formatter::TAP::write()) + clobbers $^E on Windows. + - RT #105125 is addressed: The tests now use a copy of $^E + taken before Test::More gets a chance to touch it. + - Further, the Test::Trap test methods might also clobber $^E + (via Test::More or other modules), so they now localize $^E + before invoking the callback. + - Regression tests have been added for this. + 0.3.2 Tue Feb 24 00:19:23 CET 2015 The tempfile-preserve strategy was (always) broken on non-perlio perls. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/META.json new/Test-Trap-v0.3.3/META.json --- old/Test-Trap-v0.3.2/META.json 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/META.json 2017-08-23 21:57:50.000000000 +0200 @@ -4,7 +4,7 @@ "Eirik Berg Hanssen <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "Module::Build version 0.421", + "generated_by" : "Module::Build version 0.4224", "license" : [ "perl_5" ], @@ -42,23 +42,23 @@ "provides" : { "Test::Trap" : { "file" : "lib/Test/Trap.pm", - "version" : "v0.3.2" + "version" : "v0.3.3" }, "Test::Trap::Builder" : { "file" : "lib/Test/Trap/Builder.pm", - "version" : "v0.3.2" + "version" : "v0.3.3" }, "Test::Trap::Builder::PerlIO" : { "file" : "lib/Test/Trap/Builder/PerlIO.pm", - "version" : "v0.3.2" + "version" : "v0.3.3" }, "Test::Trap::Builder::SystemSafe" : { "file" : "lib/Test/Trap/Builder/SystemSafe.pm", - "version" : "v0.3.2" + "version" : "v0.3.3" }, "Test::Trap::Builder::TempFile" : { "file" : "lib/Test/Trap/Builder/TempFile.pm", - "version" : "v0.3.2" + "version" : "v0.3.3" } }, "release_status" : "stable", @@ -67,5 +67,6 @@ "http://dev.perl.org/licenses/" ] }, - "version" : "v0.3.2" + "version" : "v0.3.3", + "x_serialization_backend" : "JSON::PP version 2.27400_02" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/META.yml new/Test-Trap-v0.3.3/META.yml --- old/Test-Trap-v0.3.2/META.yml 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/META.yml 2017-08-23 21:57:50.000000000 +0200 @@ -6,7 +6,7 @@ configure_requires: Module::Build: '0' dynamic_config: 1 -generated_by: 'Module::Build version 0.421, CPAN::Meta::Converter version 2.142060' +generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -15,19 +15,19 @@ provides: Test::Trap: file: lib/Test/Trap.pm - version: v0.3.2 + version: v0.3.3 Test::Trap::Builder: file: lib/Test/Trap/Builder.pm - version: v0.3.2 + version: v0.3.3 Test::Trap::Builder::PerlIO: file: lib/Test/Trap/Builder/PerlIO.pm - version: v0.3.2 + version: v0.3.3 Test::Trap::Builder::SystemSafe: file: lib/Test/Trap/Builder/SystemSafe.pm - version: v0.3.2 + version: v0.3.3 Test::Trap::Builder::TempFile: file: lib/Test/Trap/Builder/TempFile.pm - version: v0.3.2 + version: v0.3.3 requires: Carp: '0' Data::Dump: '0' @@ -46,4 +46,5 @@ warnings: '0' resources: license: http://dev.perl.org/licenses/ -version: v0.3.2 +version: v0.3.3 +x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/Makefile.PL new/Test-Trap-v0.3.3/Makefile.PL --- old/Test-Trap-v0.3.2/Makefile.PL 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/Makefile.PL 2017-08-23 21:57:50.000000000 +0200 @@ -1,31 +1,31 @@ -# Note: this file was auto-generated by Module::Build::Compat version 0.4210 +# Note: this file was auto-generated by Module::Build::Compat version 0.4224 require 5.006002; use ExtUtils::MakeMaker; WriteMakefile ( + 'VERSION_FROM' => 'lib/Test/Trap.pm', + 'INSTALLDIRS' => 'site', + 'EXE_FILES' => [], 'PREREQ_PM' => { - 'constant' => 0, 'version' => 0, - 'IO::Handle' => 0, - 'Data::Dump' => 0, - 'Test::Builder' => 0, - 'Exporter' => 0, - 'Test::Tester' => '0.107', 'File::Temp' => 0, - 'Carp' => 0, - 'Test::More' => 0, + 'Test::Tester' => '0.107', + 'warnings' => 0, + 'Exporter' => 0, + 'lib' => 0, + 'Test::Builder' => 0, 'base' => 0, + 'Test::More' => 0, + 'constant' => 0, + 'Carp' => 0, 'strict' => 0, - 'warnings' => 0, - 'lib' => 0 + 'IO::Handle' => 0, + 'Data::Dump' => 0 }, - 'VERSION_FROM' => 'lib/Test/Trap.pm', - 'EXE_FILES' => [], - 'INSTALLDIRS' => 'site', - 'NAME' => 'Test::Trap', 'PL_FILES' => { - 't/11-systemsafe-basic.PL' => 't/11-systemsafe-basic.t', - 't/08-fork.PL' => 't/08-fork.t' - } + 't/08-fork.PL' => 't/08-fork.t', + 't/11-systemsafe-basic.PL' => 't/11-systemsafe-basic.t' + }, + 'NAME' => 'Test::Trap' ) ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/PerlIO.pm new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/PerlIO.pm --- old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/PerlIO.pm 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/PerlIO.pm 2017-08-23 21:57:50.000000000 +0200 @@ -1,6 +1,6 @@ package Test::Trap::Builder::PerlIO; -use version; $VERSION = qv('0.3.2'); +use version; $VERSION = qv('0.3.3'); use strict; use warnings; @@ -30,7 +30,7 @@ =head1 VERSION -Version 0.3.2 +Version 0.3.3 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/SystemSafe.pm new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/SystemSafe.pm --- old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/SystemSafe.pm 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/SystemSafe.pm 2017-08-23 21:57:50.000000000 +0200 @@ -1,6 +1,6 @@ package Test::Trap::Builder::SystemSafe; -use version; $VERSION = qv('0.3.2'); +use version; $VERSION = qv('0.3.3'); use strict; use warnings; @@ -141,7 +141,7 @@ =head1 VERSION -Version 0.3.2 +Version 0.3.3 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/TempFile.pm new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/TempFile.pm --- old/Test-Trap-v0.3.2/lib/Test/Trap/Builder/TempFile.pm 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/lib/Test/Trap/Builder/TempFile.pm 2017-08-23 21:57:50.000000000 +0200 @@ -1,6 +1,6 @@ package Test::Trap::Builder::TempFile; -use version; $VERSION = qv('0.3.2'); +use version; $VERSION = qv('0.3.3'); use strict; use warnings; @@ -80,7 +80,7 @@ =head1 VERSION -Version 0.3.2 +Version 0.3.3 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/lib/Test/Trap/Builder.pm new/Test-Trap-v0.3.3/lib/Test/Trap/Builder.pm --- old/Test-Trap-v0.3.2/lib/Test/Trap/Builder.pm 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/lib/Test/Trap/Builder.pm 2017-08-23 21:57:50.000000000 +0200 @@ -1,6 +1,6 @@ package Test::Trap::Builder; -use version; $VERSION = qv('0.3.2'); +use version; $VERSION = qv('0.3.3'); use strict; use warnings; @@ -165,6 +165,7 @@ my $ok; local $trap->Prop->{test_accessor} = "$accessor->{name}($index)"; local $Test::Builder::Level = $Test::Builder::Level+1; + local($!, $^E) = ($!, $^E); $ok = $test->{code}->(@targs) or $trap->TestFailure; $ok; }; @@ -380,7 +381,7 @@ =head1 VERSION -Version 0.3.2 +Version 0.3.3 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/lib/Test/Trap.pm new/Test-Trap-v0.3.3/lib/Test/Trap.pm --- old/Test-Trap-v0.3.2/lib/Test/Trap.pm 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/lib/Test/Trap.pm 2017-08-23 21:57:50.000000000 +0200 @@ -1,6 +1,6 @@ package Test::Trap; -use version; $VERSION = qv('0.3.2'); +use version; $VERSION = qv('0.3.3'); use strict; use warnings; @@ -304,7 +304,7 @@ =head1 VERSION -Version 0.3.2 +Version 0.3.3 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/t/03-files.pl new/Test-Trap-v0.3.3/t/03-files.pl --- old/Test-Trap-v0.3.2/t/03-files.pl 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/t/03-files.pl 2017-08-23 21:57:50.000000000 +0200 @@ -15,7 +15,7 @@ local $@; eval qq{ use $class }; if (exists &{"$class\::import"}) { - plan tests => 1 + 6*10 + 5*3 + 17; # 10 runtests; 3 inner_tests; another bunch ... + plan tests => 1 + 6*10 + 5*3 + 11; # 10 runtests; 3 inner_tests; another bunch ... } else { plan skip_all => "$strategy strategy not supported; skipping"; @@ -196,13 +196,19 @@ my $errstring = do { local $! = $errnum; "$!" }; my $erros = do { local $! = $errnum; $^E }; my ($errsym) = do { local $! = $errnum; grep { $!{$_} } keys(%!) }; -for my $case ([Bare => sub { return 42 }], [Dying => sub { die 42 }], [Exiting => sub { exit 42 }]) { +{ local $! = $errnum; trap {}; my ($sym) = grep { $!{$_} } keys(%!); - is $!+0, $errnum, "$strategy trap doesn't change errno (remains $errnum/$errstring)"; - is $^E, $erros, "$strategy trap doesn't change extended OS error (remains $erros)"; - is $sym, $errsym, "$strategy trap doesn't change the error symbol (remains $errsym)"; + { + # rt.cpan.org #105125: Test::More::is() does not preserve $^E, so ... + my $postbang = $!+0; + my $postos = $^E; + local($!, $^E); + is $postbang,$errnum, "$strategy trap doesn't change errno (remains $errnum/$errstring)"; + is $postos, $erros, "$strategy trap doesn't change extended OS error (remains $erros)"; + is $sym, $errsym, "$strategy trap doesn't change the error symbol (remains $errsym)"; + } } { @@ -212,9 +218,15 @@ $^E = ''; }; my ($sym) = grep { $!{$_} } keys(%!); - is $!+0, 0, "Errno-unsetting trap unsets errno (it's not localized)"; - is $^E, '', "Errno-unsetting trap unsets extended OS error (it's not localized)"; - is $sym, undef, "Errno-unsetting trap unsets the error symbol (it's not localized)"; + { + # rt.cpan.org #105125: Test::More::is() does not preserve $^E, so ... + my $postbang = $!+0; + my $postos = $^E; + local($!, $^E); + is $postbang,0, "Errno-unsetting trap unsets errno (it's not localized)"; + is $postos, '', "Errno-unsetting trap unsets extended OS error (it's not localized)"; + is $sym, undef, "Errno-unsetting trap unsets the error symbol (it's not localized)"; + } } 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/t/04-exit.t new/Test-Trap-v0.3.3/t/04-exit.t --- old/Test-Trap-v0.3.2/t/04-exit.t 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/t/04-exit.t 2017-08-23 21:57:50.000000000 +0200 @@ -43,9 +43,11 @@ like( $trap->stderr, qr/^Subroutine (?:CORE::GLOBAL::)?exit redefined at \Q${\__FILE__} line/, 'Override warning' ); my ($sym) = grep { $!{$_} } keys(%!); -is $!+0, $errnum, "These traps don't change errno (remains $errnum/$errstring)"; -is $^E, $erros, "These traps don't change extended OS error (remains $erros)"; -is $sym, $errsym, "These traps don't change the error symbol (remains $errsym)"; +# rt.cpan.org #105125: Test::More::is() does not preserve $^E, so ... +my $postos = $^E; +is $!+0, $errnum, "These traps don't change errno (remains $errnum/$errstring)"; +is $postos, $erros, "These traps don't change extended OS error (remains $erros)"; +is $sym, $errsym, "These traps don't change the error symbol (remains $errsym)"; $ready_for_exit++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Trap-v0.3.2/t/13-regressions.t new/Test-Trap-v0.3.3/t/13-regressions.t --- old/Test-Trap-v0.3.2/t/13-regressions.t 2015-02-24 00:19:39.000000000 +0100 +++ new/Test-Trap-v0.3.3/t/13-regressions.t 2017-08-23 21:57:50.000000000 +0200 @@ -2,7 +2,7 @@ # -*- mode: cperl ; compile-command: "cd .. ; ./Build ; prove -vb t/13-*.t" -*- BEGIN { $_ = defined && /(.*)/ && $1 for @ENV{qw/ TMPDIR TEMP TMP /} } # taint vs tempfile -use Test::More tests => 7; +use Test::More tests => 11; use strict; use warnings; @@ -31,3 +31,15 @@ } is( $destroyed, 1, 'One Foo destroyed' ); } + +local $^E; +scalar trap { die Data::Dump::dump($^E) if $^E; $^E }; +$trap->return_is(0, '', '$^E is unchanged inside return_is()') or $trap->diag_all; +my $copy = $^E; +is( $copy, '', '$^E is unchanged after return_is()'); + +local $^E; +scalar trap { die Data::Dump::dump($^E) if $^E; $^E }; +$trap->did_return() or $trap->diag_all; +$copy = $^E; +is( $copy, '', '$^E is unchanged after did_return()'); ++++++ cpanspec.yml ++++++ --- #description_paragraphs: 3 #description: |- # override description from CPAN #summary: override summary from CPAN #no_testing: broken upstream #sources: # - source1 # - source2 #patches: # foo.patch: -p1 # bar.patch: #preamble: |- # BuildRequires: gcc-c++ #post_prep: |- # hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'` # sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL #post_build: |- # rm unused.files #post_install: |- # sed on %{name}.files #license: SUSE-NonFree #skip_noarch: 1 #custom_build: |- #./Build build flags=%{?_smp_mflags} --myflag #custom_test: |- #startserver && make test #ignore_requires: Bizarre::Module
