Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Test-Harness for openSUSE:Factory checked in at 2025-05-12 16:52:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Test-Harness (Old) and /work/SRC/openSUSE:Factory/.perl-Test-Harness.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Harness" Mon May 12 16:52:03 2025 rev:2 rq:1276802 version:3.52 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Test-Harness/perl-Test-Harness.changes 2025-01-16 18:35:27.305227962 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Test-Harness.new.30101/perl-Test-Harness.changes 2025-05-12 16:55:44.657938143 +0200 @@ -1,0 +2,12 @@ +Sun May 4 05:34:35 UTC 2025 - Tina Müller <[email protected]> + +- updated to 3.52 + see /usr/share/doc/packages/perl-Test-Harness/Changes + + 3.52 2025-05-03 + + 3.51_01 2025-01-17 + - Supports additional indicators on block scalars in YAML + - fix string comparisons with $] to use numeric comparison instead + +------------------------------------------------------------------- Old: ---- Test-Harness-3.50.tar.gz New: ---- Test-Harness-3.52.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Test-Harness.spec ++++++ --- /var/tmp/diff_new_pack.lcx68k/_old 2025-05-12 16:55:46.222003755 +0200 +++ /var/tmp/diff_new_pack.lcx68k/_new 2025-05-12 16:55:46.226003923 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Test-Harness # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define cpan_name Test-Harness Name: perl-Test-Harness -Version: 3.50 +Version: 3.52 Release: 0 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Run Perl standard test scripts with statistics @@ -45,7 +45,7 @@ distribution. %prep -%autosetup -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{version} -p1 find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644 # MANUAL BEGIN ++++++ Test-Harness-3.50.tar.gz -> Test-Harness-3.52.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/Changes new/Test-Harness-3.52/Changes --- old/Test-Harness-3.50/Changes 2024-08-13 19:40:09.000000000 +0200 +++ new/Test-Harness-3.52/Changes 2025-05-03 12:44:09.000000000 +0200 @@ -1,5 +1,11 @@ Revision history for Test-Harness +3.52 2025-05-03 + +3.51_01 2025-01-17 + - Supports additional indicators on block scalars in YAML + - fix string comparisons with $] to use numeric comparison instead + 3.50 2024-08-13 - Simplify runtests for easier extension - Prevent double summary on bail-out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/META.json new/Test-Harness-3.52/META.json --- old/Test-Harness-3.50/META.json 2024-08-13 19:41:12.000000000 +0200 +++ new/Test-Harness-3.52/META.json 2025-05-03 12:45:43.000000000 +0200 @@ -4,7 +4,7 @@ "unknown" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010", "keywords" : [ "TAP", "test", @@ -53,6 +53,6 @@ "url" : "http://github.com/Perl-Toolchain-Gang/Test-Harness/tree/master" } }, - "version" : "3.50", - "x_serialization_backend" : "JSON::PP version 4.16" + "version" : "3.52", + "x_serialization_backend" : "JSON::PP version 4.07" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/META.yml new/Test-Harness-3.52/META.yml --- old/Test-Harness-3.50/META.yml 2024-08-13 19:41:12.000000000 +0200 +++ new/Test-Harness-3.52/META.yml 2025-05-03 12:45:43.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010' keywords: - TAP - test @@ -29,5 +29,5 @@ bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness homepage: http://testanything.org/ repository: http://github.com/Perl-Toolchain-Gang/Test-Harness/tree/master -version: '3.50' +version: '3.52' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/App/Prove/State/Result/Test.pm new/Test-Harness-3.52/lib/App/Prove/State/Result/Test.pm --- old/Test-Harness-3.50/lib/App/Prove/State/Result/Test.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/App/Prove/State/Result/Test.pm 2025-05-01 12:21:28.000000000 +0200 @@ -9,11 +9,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/App/Prove/State/Result.pm new/Test-Harness-3.52/lib/App/Prove/State/Result.pm --- old/Test-Harness-3.50/lib/App/Prove/State/Result.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/App/Prove/State/Result.pm 2025-05-01 12:21:28.000000000 +0200 @@ -14,11 +14,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/App/Prove/State.pm new/Test-Harness-3.52/lib/App/Prove/State.pm --- old/Test-Harness-3.50/lib/App/Prove/State.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/App/Prove/State.pm 2025-05-01 12:21:28.000000000 +0200 @@ -25,11 +25,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/App/Prove.pm new/Test-Harness-3.52/lib/App/Prove.pm --- old/Test-Harness-3.50/lib/App/Prove.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/App/Prove.pm 2025-05-01 12:21:28.000000000 +0200 @@ -18,11 +18,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Base.pm new/Test-Harness-3.52/lib/TAP/Base.pm --- old/Test-Harness-3.50/lib/TAP/Base.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Base.pm 2025-05-01 12:21:28.000000000 +0200 @@ -12,11 +12,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; use constant GOT_TIME_HIRES => do { eval 'use Time::HiRes qw(time);'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Base.pm new/Test-Harness-3.52/lib/TAP/Formatter/Base.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Base.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Base.pm 2025-05-01 12:21:28.000000000 +0200 @@ -58,11 +58,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION @@ -419,9 +419,7 @@ } sub _output { - my $self = shift; - - print { $self->stdout } @_; + print { shift->stdout } @_; } sub _failure_output { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Color.pm new/Test-Harness-3.52/lib/TAP/Formatter/Color.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Color.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Color.pm 2025-05-01 12:21:28.000000000 +0200 @@ -39,11 +39,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Console/ParallelSession.pm new/Test-Harness-3.52/lib/TAP/Formatter/Console/ParallelSession.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Console/ParallelSession.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Console/ParallelSession.pm 2025-05-01 12:21:28.000000000 +0200 @@ -41,11 +41,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Console/Session.pm new/Test-Harness-3.52/lib/TAP/Formatter/Console/Session.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Console/Session.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Console/Session.pm 2025-05-01 12:21:28.000000000 +0200 @@ -26,11 +26,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION @@ -128,10 +128,8 @@ my $planned = $parser->tests_planned || '?'; $plan = "/$planned "; } - $output = $formatter->_get_output_method($parser); if ( $show_count and $is_test ) { - my $number = $result->number; my $now = CORE::time; # Print status roughly once per second. @@ -139,6 +137,8 @@ # $last_status_printed starting with the value 0, which $now # will never be. (Unless someone sets their clock to 1970) if ( $last_status_printed != $now ) { + my $number = $result->number; + $output = $formatter->_get_output_method($parser); $formatter->$output("\r$pretty$number$plan"); $last_status_printed = $now; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Console.pm new/Test-Harness-3.52/lib/TAP/Formatter/Console.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Console.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Console.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/File/Session.pm new/Test-Harness-3.52/lib/TAP/Formatter/File/Session.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/File/Session.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/File/Session.pm 2025-05-01 12:21:28.000000000 +0200 @@ -10,11 +10,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/File.pm new/Test-Harness-3.52/lib/TAP/Formatter/File.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/File.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/File.pm 2025-05-01 12:21:28.000000000 +0200 @@ -13,11 +13,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Formatter/Session.pm new/Test-Harness-3.52/lib/TAP/Formatter/Session.pm --- old/Test-Harness-3.50/lib/TAP/Formatter/Session.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Formatter/Session.pm 2025-05-01 12:21:28.000000000 +0200 @@ -23,11 +23,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 METHODS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Harness/Env.pm new/Test-Harness-3.52/lib/TAP/Harness/Env.pm --- old/Test-Harness-3.50/lib/TAP/Harness/Env.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Harness/Env.pm 2025-05-01 12:21:28.000000000 +0200 @@ -7,7 +7,7 @@ use TAP::Object; use Text::ParseWords qw/shellwords/; -our $VERSION = '3.50'; +our $VERSION = '3.52'; # Get the parts of @INC which are changed from the stock list AND # preserve reordering of stock directories. @@ -126,7 +126,7 @@ =head1 VERSION -Version 3.50 +Version 3.52 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Harness.pm new/Test-Harness-3.52/lib/TAP/Harness.pm --- old/Test-Harness-3.50/lib/TAP/Harness.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Harness.pm 2025-05-01 12:21:28.000000000 +0200 @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; $ENV{HARNESS_ACTIVE} = 1; $ENV{HARNESS_VERSION} = $VERSION; @@ -87,7 +87,7 @@ trap => sub { shift; shift }, ); - for my $method ( sort keys %VALIDATION_FOR ) { + for my $method ( keys %VALIDATION_FOR ) { no strict 'refs'; if ( $method eq 'lib' || $method eq 'switches' ) { *{$method} = sub { @@ -432,7 +432,7 @@ $self->SUPER::_initialize( $arg_for, \@legal_callback ); my %arg_for = %$arg_for; # force a shallow copy - for my $name ( sort keys %VALIDATION_FOR ) { + for my $name ( keys %VALIDATION_FOR ) { my $property = delete $arg_for{$name}; if ( defined $property ) { my $validate = $VALIDATION_FOR{$name}; @@ -475,8 +475,8 @@ ); } - if ( my @props = sort keys %arg_for ) { - $self->_croak("Unknown arguments to TAP::Harness::new (@props)"); + if ( my @props = keys %arg_for ) { + $self->_croak('Unknown arguments to TAP::Harness::new ('.join(' ',sort @props).')'); } return $self; @@ -494,7 +494,7 @@ warn "CPAN::Meta::YAML required to process $rulesfile" ; return; } - my $layer = $] lt "5.008" ? "" : ":encoding(UTF-8)"; + my $layer = "$]" < "5.008" ? "" : ":encoding(UTF-8)"; open my $fh, "<$layer", $rulesfile or die "Couldn't open $rulesfile: $!"; my $yaml_text = do { local $/; <$fh> }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Object.pm new/Test-Harness-3.52/lib/TAP/Object.pm --- old/Test-Harness-3.50/lib/TAP/Object.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Object.pm 2025-05-01 12:21:28.000000000 +0200 @@ -9,11 +9,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS @@ -50,9 +50,7 @@ =cut sub new { - my $class = shift; - my $self = bless {}, $class; - return $self->_initialize(@_); + return bless({}, shift)->_initialize(@_); } =head2 Instance Methods diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Aggregator.pm new/Test-Harness-3.52/lib/TAP/Parser/Aggregator.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Aggregator.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Aggregator.pm 2025-05-01 12:21:28.000000000 +0200 @@ -12,11 +12,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Grammar.pm new/Test-Harness-3.52/lib/TAP/Parser/Grammar.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Grammar.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Grammar.pm 2025-05-01 12:21:28.000000000 +0200 @@ -14,11 +14,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Array.pm new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Array.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Array.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Array.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Process.pm new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Process.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Process.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Process.pm 2025-05-01 12:21:28.000000000 +0200 @@ -8,7 +8,7 @@ use base 'TAP::Parser::Iterator'; -my $IS_WIN32 = ( $^O =~ /^(MS)?Win32$/ ); +use constant IS_WIN32 => !!( $^O =~ /^(MS)?Win32$/ ); =head1 NAME @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS @@ -91,8 +91,7 @@ } sub _use_open3 { - my $self = shift; - return unless $Config{d_fork} || $IS_WIN32; + return unless $Config{d_fork} || IS_WIN32; for my $module (qw( IPC::Open3 IO::Select )) { eval "use $module"; return if $@; @@ -147,7 +146,7 @@ # }}} - if ($IS_WIN32) { + if (IS_WIN32) { $err = $merge ? '' : '>&STDERR'; eval { $pid = open3( @@ -340,7 +339,7 @@ # Sometimes we get -1 on Windows. Presumably that means status not # available. - $status = 0 if $IS_WIN32 && $status == -1; + $status = 0 if IS_WIN32 && $status == -1; $self->{wait} = $status; $self->{exit} = $self->_wait2exit($status); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Stream.pm new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Stream.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Iterator/Stream.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Iterator/Stream.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Iterator.pm new/Test-Harness-3.52/lib/TAP/Parser/Iterator.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Iterator.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Iterator.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS @@ -61,6 +61,8 @@ =cut +if ( $^O eq 'VMS' ) { + eval <<'END' ; sub next { my $self = shift; my $line = $self->next_raw; @@ -75,6 +77,11 @@ return $line; } +END +} +else { + eval 'sub next { shift->next_raw(@_) }'; +} sub next_raw { require Carp; @@ -125,17 +132,8 @@ =cut -sub wait { - require Carp; - my $msg = Carp::longmess('abstract method called directly!'); - $_[0]->_croak($msg); -} - -sub exit { - require Carp; - my $msg = Carp::longmess('abstract method called directly!'); - $_[0]->_croak($msg); -} +#can not call abstract base method, next_raw is a fatal stub +*exit = *wait = *next_raw; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/IteratorFactory.pm new/Test-Harness-3.52/lib/TAP/Parser/IteratorFactory.pm --- old/Test-Harness-3.50/lib/TAP/Parser/IteratorFactory.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/IteratorFactory.pm 2025-05-01 12:21:28.000000000 +0200 @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Multiplexer.pm new/Test-Harness-3.52/lib/TAP/Parser/Multiplexer.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Multiplexer.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Multiplexer.pm 2025-05-01 12:21:28.000000000 +0200 @@ -18,11 +18,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Bailout.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Bailout.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Bailout.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Bailout.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Comment.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Comment.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Comment.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Comment.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Plan.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Plan.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Plan.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Plan.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Pragma.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Pragma.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Pragma.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Pragma.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Test.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Test.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Test.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Test.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Unknown.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Unknown.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Unknown.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Unknown.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/Version.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/Version.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/Version.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/Version.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result/YAML.pm new/Test-Harness-3.52/lib/TAP/Parser/Result/YAML.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result/YAML.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result/YAML.pm 2025-05-01 12:21:28.000000000 +0200 @@ -11,11 +11,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Result.pm new/Test-Harness-3.52/lib/TAP/Parser/Result.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Result.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Result.pm 2025-05-01 12:21:28.000000000 +0200 @@ -24,11 +24,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/ResultFactory.pm new/Test-Harness-3.52/lib/TAP/Parser/ResultFactory.pm --- old/Test-Harness-3.50/lib/TAP/Parser/ResultFactory.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/ResultFactory.pm 2025-05-01 12:21:28.000000000 +0200 @@ -29,11 +29,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head2 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Scheduler/Job.pm new/Test-Harness-3.52/lib/TAP/Parser/Scheduler/Job.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Scheduler/Job.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Scheduler/Job.pm 2025-05-01 12:21:28.000000000 +0200 @@ -10,11 +10,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Scheduler/Spinner.pm new/Test-Harness-3.52/lib/TAP/Parser/Scheduler/Spinner.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Scheduler/Spinner.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Scheduler/Spinner.pm 2025-05-01 12:21:28.000000000 +0200 @@ -10,11 +10,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Scheduler.pm new/Test-Harness-3.52/lib/TAP/Parser/Scheduler.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Scheduler.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Scheduler.pm 2025-05-01 12:21:28.000000000 +0200 @@ -13,11 +13,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS @@ -58,7 +58,7 @@ to express simple rules like "run all tests in sequence" or "run all tests in parallel except these five tests.". However, the rules structure also supports glob-style pattern matching and recursive definitions, so you can also express -arbitarily complicated patterns. +arbitrarily complicated patterns. The rule must only have one top level key: either 'par' for "parallel" or 'seq' for "sequence". @@ -67,7 +67,7 @@ of strings or hashrefs which follow this pattern recursively. Every element in an arrayref directly below a 'par' key is eligible to be run -in parallel, while vavalues directly below a 'seq' key must be run in sequence. +in parallel, while values directly below a 'seq' key must be run in sequence. =head3 Rules examples diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/Source.pm new/Test-Harness-3.52/lib/TAP/Parser/Source.pm --- old/Test-Harness-3.50/lib/TAP/Parser/Source.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/Source.pm 2025-05-01 12:21:28.000000000 +0200 @@ -14,11 +14,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Executable.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Executable.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Executable.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Executable.pm 2025-05-01 12:21:28.000000000 +0200 @@ -18,11 +18,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/File.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/File.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/File.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/File.pm 2025-05-01 12:21:28.000000000 +0200 @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Handle.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Handle.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Handle.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Handle.pm 2025-05-01 12:21:28.000000000 +0200 @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Perl.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Perl.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/Perl.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/Perl.pm 2025-05-01 12:21:28.000000000 +0200 @@ -21,11 +21,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/RawTAP.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/RawTAP.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler/RawTAP.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler/RawTAP.pm 2025-05-01 12:21:28.000000000 +0200 @@ -16,11 +16,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler.pm new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler.pm --- old/Test-Harness-3.50/lib/TAP/Parser/SourceHandler.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/SourceHandler.pm 2025-05-01 12:21:28.000000000 +0200 @@ -12,11 +12,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/YAMLish/Reader.pm new/Test-Harness-3.52/lib/TAP/Parser/YAMLish/Reader.pm --- old/Test-Harness-3.50/lib/TAP/Parser/YAMLish/Reader.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/YAMLish/Reader.pm 2025-05-01 12:21:28.000000000 +0200 @@ -5,7 +5,7 @@ use base 'TAP::Object'; -our $VERSION = '3.50'; +our $VERSION = '3.52'; # No EBCDIC support on early perls *to_native = (ord "A" == 65 || $] < 5.008) @@ -137,23 +137,9 @@ return {} if $string eq '{}'; return [] if $string eq '[]'; - if ( $string eq '>' || $string eq '|' ) { - - my ( $line, $indent ) = $self->_peek; - die "Multi-line scalar content missing" unless defined $line; - - my @multiline = ($line); - - while (1) { - $self->_next; - my ( $next, $ind ) = $self->_peek; - last if $ind < $indent; - - my $pad = $string eq '|' ? ( ' ' x ( $ind - $indent ) ) : ''; - push @multiline, $pad . $next; - } - - return join( ( $string eq '>' ? ' ' : "\n" ), @multiline ) . "\n"; + if ( $string =~ /^([>|])([+-]?)([1-9]?)$/ ) { + my ( $style, $chomping, $indent_base ) = ( $1, $2, $3 ); + return $self->_read_block_scalar( $style, $chomping, $indent_base ); } if ( $string =~ /^ ' (.*) ' $/x ) { @@ -175,6 +161,62 @@ return $string; } +sub _read_block_scalar { + my ( $self, $style, $chomping, $indent_base ) = @_; + + my ( $line, $line_indent ) = $self->_peek; + die "Multi-line scalar content missing" unless defined $line; + + $indent_base ||= $line_indent; + + my $pad = ' ' x ( $line_indent - $indent_base ); + my @multi_lines = [ $pad, $line ]; + + while (1) { + $self->_next; + my ( $content, $line_indent ) = $self->_peek; + last if $line_indent < $indent_base; + + my $pad = ' ' x ( $line_indent - $indent_base ); + push @multi_lines, [ $pad, $content ]; + } + + my $block = ''; + my $previous_line; + + for my $current_line ( @multi_lines ) { + my ( $pad, $content ) = @$current_line; + unless ( defined $previous_line ) { + $block .= join( '', $pad, $content ); + $previous_line = $current_line; + next; + } + + if ( $style eq '>' + && length $content > 0 + && length $pad == 0 + && length $previous_line->[0] == 0 + && length $previous_line->[1] > 0 ) + { + $block .= ' ' . $content; + } else { + $block .= join( '', "\n", $pad, $content ); + } + $previous_line = $current_line; + } + + $block .= "\n"; + + if ( $chomping eq '-' ) { + $block =~ s/\n+$//; + } elsif ( $chomping eq '+' ) { + # noop: keep newlines + } else { + $block =~ s/\n+$/\n/; + } + return $block; +} + sub _read_nested { my $self = shift; @@ -284,7 +326,7 @@ =head1 VERSION -Version 3.50 +Version 3.52 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser/YAMLish/Writer.pm new/Test-Harness-3.52/lib/TAP/Parser/YAMLish/Writer.pm --- old/Test-Harness-3.50/lib/TAP/Parser/YAMLish/Writer.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser/YAMLish/Writer.pm 2025-05-01 12:21:28.000000000 +0200 @@ -5,7 +5,7 @@ use base 'TAP::Object'; -our $VERSION = '3.50'; +our $VERSION = '3.52'; # No EBCDIC support on early perls *from_native = (ord "A" == 65 || $] < 5.008) @@ -155,7 +155,7 @@ =head1 VERSION -Version 3.50 +Version 3.52 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/TAP/Parser.pm new/Test-Harness-3.52/lib/TAP/Parser.pm --- old/Test-Harness-3.50/lib/TAP/Parser.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/TAP/Parser.pm 2025-05-01 12:21:28.000000000 +0200 @@ -27,11 +27,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; my $DEFAULT_TAP_VERSION = 12; my $MAX_TAP_VERSION = 14; @@ -1340,9 +1340,9 @@ my $st = { %state_globals, %{ $states{$name} } }; # Add defaults - for my $next ( sort keys %{$st} ) { + for my $next ( keys %$st ) { if ( my $default = $state_defaults{$next} ) { - for my $def ( sort keys %{$default} ) { + for my $def ( keys %$default ) { $st->{$next}->{$def} ||= $default->{$def}; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/lib/Test/Harness.pm new/Test-Harness-3.52/lib/Test/Harness.pm --- old/Test-Harness-3.50/lib/Test/Harness.pm 2024-08-13 19:39:03.000000000 +0200 +++ new/Test-Harness-3.52/lib/Test/Harness.pm 2025-05-01 12:21:28.000000000 +0200 @@ -31,11 +31,11 @@ =head1 VERSION -Version 3.50 +Version 3.52 =cut -our $VERSION = '3.50'; +our $VERSION = '3.52'; # Backwards compatibility for exportable variable names. *verbose = *Verbose; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/t/compat/test-harness-compat.t new/Test-Harness-3.52/t/compat/test-harness-compat.t --- old/Test-Harness-3.50/t/compat/test-harness-compat.t 2022-03-18 18:50:59.000000000 +0100 +++ new/Test-Harness-3.52/t/compat/test-harness-compat.t 2025-04-30 15:04:36.000000000 +0200 @@ -150,14 +150,17 @@ 'name' => "$TEST_DIR/too_many", 'wstat' => '1024' }, - "$TEST_DIR/vms_nit" => { - 'canon' => 1, - 'estat' => '', - 'failed' => 1, - 'max' => 2, - 'name' => "$TEST_DIR/vms_nit", - 'wstat' => '' - } + ( $^O eq 'VMS' ? + ("$TEST_DIR/vms_nit" => { + 'canon' => 1, + 'estat' => '', + 'failed' => 1, + 'max' => 2, + 'name' => "$TEST_DIR/vms_nit", + 'wstat' => '' + }) + : () + ) }, 'todo' => { "$TEST_DIR/todo_inline" => { @@ -170,12 +173,12 @@ } }, 'totals' => { - 'bad' => ($NoTaintSupport ? 11 : 12), + 'bad' => ($NoTaintSupport ? 11 : 12)-($^O eq 'VMS' ? 0 : 1), 'bonus' => 1, 'files' => ($NoTaintSupport ? 24 : 27), - 'good' => ($NoTaintSupport ? 13 : 15), + 'good' => ($NoTaintSupport ? 13 : 15)+($^O eq 'VMS' ? 0 : 1), 'max' => ($NoTaintSupport ? 72 : 76), - 'ok' => ($NoTaintSupport ? 75 : 78), + 'ok' => ($NoTaintSupport ? 75 : 78)+($^O eq 'VMS' ? 0 : 1), 'skipped' => 2, 'sub_skipped' => 2, 'tests' => ($NoTaintSupport ? 24 : 27), @@ -739,31 +742,35 @@ 'todo' => 0 } }, - 'vms_nit' => { - 'failed' => { - "$TEST_DIR/vms_nit" => { - 'canon' => 1, - 'estat' => '', - 'failed' => 1, - 'max' => 2, - 'name' => "$TEST_DIR/vms_nit", - 'wstat' => '' - } - }, - 'todo' => {}, - 'totals' => { - 'bad' => 1, - 'bonus' => 0, - 'files' => 1, - 'good' => 0, - 'max' => 2, - 'ok' => 1, - 'skipped' => 0, - 'sub_skipped' => 0, - 'tests' => 1, - 'todo' => 0 - } - } + ( $^O eq 'VMS' ? + ('vms_nit' => { + 'failed' => { + "$TEST_DIR/vms_nit" => { + 'canon' => 1, + 'estat' => '', + 'failed' => 1, + 'max' => 2, + 'name' => "$TEST_DIR/vms_nit", + 'wstat' => '' + } + }, + 'skip_if' => sub { $^O ne 'VMS' }, + 'todo' => {}, + 'totals' => { + 'bad' => 1, + 'bonus' => 0, + 'files' => 1, + 'good' => 0, + 'max' => 2, + 'ok' => 1, + 'skipped' => 0, + 'sub_skipped' => 0, + 'tests' => 1, + 'todo' => 0 + } + }) + : () + ) }; my $num_tests = ( keys %$results ) * $PER_LOOP; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/t/iterators.t new/Test-Harness-3.52/t/iterators.t --- old/Test-Harness-3.50/t/iterators.t 2018-10-17 00:28:44.000000000 +0200 +++ new/Test-Harness-3.52/t/iterators.t 2025-04-30 15:04:36.000000000 +0200 @@ -155,16 +155,20 @@ { + my $iterator; # coverage test for VMS case - my $iterator = make_iterator( - [ 'not ', - 'ok 1 - I hate VMS', - ] - ); - - is $iterator->next, 'not ok 1 - I hate VMS', - 'coverage of VMS line-splitting case'; + SKIP : { + skip('Not VMS', 1) if $^O ne 'VMS'; + $iterator = make_iterator( + [ 'not ', + 'ok 1 - I hate VMS', + ] + ); + + is $iterator->next, 'not ok 1 - I hate VMS', + 'coverage of VMS line-splitting case'; + } # coverage test for VMS case - nothing after 'not' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/t/multiplexer.t new/Test-Harness-3.52/t/multiplexer.t --- old/Test-Harness-3.50/t/multiplexer.t 2017-07-23 13:29:01.000000000 +0200 +++ new/Test-Harness-3.52/t/multiplexer.t 2025-04-30 15:04:36.000000000 +0200 @@ -153,6 +153,9 @@ # use Data::Dumper; # diag Dumper( { stash => $stash, result => $result } ); + my @err = $parser->parse_errors(); + ok(!@err, "$name: Parser has no parse errors"); + diag @err if @err; if ( defined $result ) { my $expect = ( shift @$stash ) || ' OOPS '; my $got = $result->raw; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Harness-3.50/t/yamlish.t new/Test-Harness-3.52/t/yamlish.t --- old/Test-Harness-3.50/t/yamlish.t 2022-01-22 19:02:54.000000000 +0100 +++ new/Test-Harness-3.52/t/yamlish.t 2025-04-30 15:04:36.000000000 +0200 @@ -40,16 +40,50 @@ ], out => "Hello, World", }, - { name => 'Hello World 4', + { name => 'Block Scalars with folded style', in => [ '--- >', ' Hello,', - ' World', + ' World', '...', ], out => "Hello, World\n", }, - { name => 'Hello World Block', + { name => 'Block Scalars with folded style including extra indentation', + in => [ + '--- >', + ' Hello,', + ' World', + ' with extra', + ' indentation', + '...', + ], + out => "Hello, World\n with extra\n indentation\n", + }, + { name => 'Hello World with folded style and no newline at end', + in => [ + '--- >-', + ' Hello,', + ' World', + ' ', + '...', + ], + out => "Hello, World", + }, + { name => 'Hello World with folded style and keeping newlines from end', + in => [ + '--- >+', + ' Hello,', + ' World', + ' ', + ' ', + ' Hello World again', + ' ', + '...', + ], + out => "Hello, World\n \n\nHello World again\n\n", + }, + { name => 'Hello World with literal style', in => [ '--- |', ' Hello,', @@ -58,7 +92,45 @@ ], out => "Hello,\n World\n", }, - { name => 'Hello World 5', + { name => 'Hello World with literal style and no newline at end', + in => [ + '--- |-', + ' Hello,', + ' World', + '...', + ], + out => "Hello,\n World", + }, + { name => 'Hello World with literal style and keeping newlines from end', + in => [ + '--- |+', + ' Hello,', + ' World', + ' ', + ' ', + '...', + ], + out => "Hello,\n World\n\n \n", + }, + { name => 'Hello World with literal style and no newline at end and indentation indicator', + in => [ + '--- |-3', + ' Hello,', + ' World', + '...', + ], + out => " Hello,\n World", + }, + { name => 'Hello World with indentation indicator', + in => [ + '--- >1', + ' Hello,', + ' World', + '...', + ], + out => " Hello,\n World\n", + }, + { name => 'Hello World with broken indentation', in => [ '--- >', ' Hello,',
