Hello community,

here is the log from the commit of package perl-IPC-System-Simple for 
openSUSE:Factory checked in at 2020-03-27 21:55:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-IPC-System-Simple (Old)
 and      /work/SRC/openSUSE:Factory/.perl-IPC-System-Simple.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-IPC-System-Simple"

Fri Mar 27 21:55:11 2020 rev:7 rq:787929 version:1.30

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-IPC-System-Simple/perl-IPC-System-Simple.changes
    2020-01-30 09:36:47.809342274 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-IPC-System-Simple.new.3160/perl-IPC-System-Simple.changes
  2020-03-27 21:55:28.814729331 +0100
@@ -1,0 +2,6 @@
+Tue Mar 24 03:10:53 UTC 2020 -  <[email protected]>
+
+- updated to 1.30
+   see /usr/share/doc/packages/perl-IPC-System-Simple/Changes
+
+-------------------------------------------------------------------

Old:
----
  IPC-System-Simple-1.26.tar.gz

New:
----
  IPC-System-Simple-1.30.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-IPC-System-Simple.spec ++++++
--- /var/tmp/diff_new_pack.InMJ1E/_old  2020-03-27 21:55:30.166730117 +0100
+++ /var/tmp/diff_new_pack.InMJ1E/_new  2020-03-27 21:55:30.166730117 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-IPC-System-Simple
-Version:        1.26
+Version:        1.30
 Release:        0
 %define cpan_name IPC-System-Simple
 Summary:        Run commands simply, with detailed diagnostics

++++++ IPC-System-Simple-1.26.tar.gz -> IPC-System-Simple-1.30.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/Changes 
new/IPC-System-Simple-1.30/Changes
--- old/IPC-System-Simple-1.26/Changes  2020-01-25 03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/Changes  2020-03-24 02:28:34.000000000 +0100
@@ -1,6 +1,35 @@
 Revision history for Perl extension IPC::System::Simple.
 
-1.26      2020-01-25 02:00:45+00:00 UTC
+1.30    2020-03-23 21:16 America/New York
+
+        * SUBSTANCE:  On MSWin32, make Win32::Process a prerequisite (needed
+          for non-Strawberry Perl builds).  As recommended by A Sinan Unur.
+
+1.29    2020-03-22 08:22 America/New York
+
+        * SUBSTANCE:  Better workaround for bug in perl-5.8.9
+          (GHI 23); contributed by Slaven Rezić.
+
+1.28    2020-03-21 21:39 America/New York
+
+        * SUBSTANCE:  Improved handling of shell commands on Windows,
+          mostly per suggestions by David Wheeler.  This should get us
+          closer to resolving Win32-related issues.  (There should be no
+          change of functionality on Unix-like platforms.)
+
+        * TESTING:  Add t/args.t per David Wheeler.  Modify t/win32.t per
+          @dylanstreb.
+
+        * META:  Added Travis and AppVeyor configuration files.
+          Eliminated use of Dist::Zilla for build.  Using older, but
+          more reliable and better understood (by maintainer)
+          ExtUtils::MakeMaker-based configuration.  Add LICENSE, README,
+          Makefile.PL, MANIFEST and MANIFEST.SKIP; remove dist.ini.  Move 
author
+          testing to xt/directory.
+
+1.28_001  2020-03-21 16:42 America/NewYork
+          TRIAL RELEASE only
+          Attempting to resolve numerous Win32 issues
 
 1.26      2020-01-24 20:47 America/NewYork
         * BUILD: Update FAIL_POSIX warning message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/MANIFEST 
new/IPC-System-Simple-1.30/MANIFEST
--- old/IPC-System-Simple-1.26/MANIFEST 2020-01-25 03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/MANIFEST 2020-03-24 02:34:09.000000000 +0100
@@ -1,14 +1,11 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.012.
 Changes
+examples/rsync-backup.pl
+lib/IPC/System/Simple.pm
 LICENSE
-MANIFEST
-META.json
-META.yml
 Makefile.PL
+MANIFEST                       This list of files
+MANIFEST.SKIP
 README
-dist.ini
-examples/rsync-backup.pl
-lib/IPC/System/Simple.pm
 t/01_load.t
 t/02_exit.t
 t/03_signal.t
@@ -23,12 +20,15 @@
 t/12_systemx.t
 t/13_exports.t
 t/14_uninitialised.t
-t/author-critic.t
-t/author-pod-coverage.t
-t/author-pod-syntax.t
+t/args.t
 t/exiter.pl
 t/internal.t
 t/not_an_exe.txt
 t/output.pl
 t/signaler.pl
 t/win32.t
+xt/author-critic.t
+xt/author-pod-coverage.t
+xt/author-pod-syntax.t
+META.yml                                 Module YAML meta-data (added by 
MakeMaker)
+META.json                                Module JSON meta-data (added by 
MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/MANIFEST.SKIP 
new/IPC-System-Simple-1.30/MANIFEST.SKIP
--- old/IPC-System-Simple-1.26/MANIFEST.SKIP    1970-01-01 01:00:00.000000000 
+0100
+++ new/IPC-System-Simple-1.30/MANIFEST.SKIP    2020-03-21 21:05:48.000000000 
+0100
@@ -0,0 +1,43 @@
+^blib/
+^Makefile$
+^Makefile\.[a-z]+$
+^pm_to_blib$
+CVS/.*
+,v$
+^tmp/
+\.old$
+\.bak$
+\.tmp$
+\.swp$
+~$
+^#
+\.shar$
+\.tar$
+\.tgz$
+\.tar\.gz$
+\.zip$
+\.DS_Store$
+_uu$
+\.svn
+cover_db/
+coverage/
+html/
+learn/
+research/
+superseded/
+svndiff/
+^.cvsignore
+^init
+^results
+^htmlify
+\.git/
+MYMETA.*$
+.version_info.pl
+\.gitignore
+\.travis.yml
+^README.md
+^.README.pod
+\.appveyor.yml
+\.perlcriticrc
+t/dir with spaces/hello.c
+t/dir with spaces/hello.exe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/META.json 
new/IPC-System-Simple-1.30/META.json
--- old/IPC-System-Simple-1.26/META.json        2020-01-25 03:00:47.000000000 
+0100
+++ new/IPC-System-Simple-1.30/META.json        2020-03-24 02:34:09.000000000 
+0100
@@ -3,8 +3,8 @@
    "author" : [
       "Paul Fenwick <[email protected]>"
    ],
-   "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 
2.150010",
+   "dynamic_config" : 1,
+   "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "perl_5"
    ],
@@ -13,18 +13,21 @@
       "version" : 2
    },
    "name" : "IPC-System-Simple",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "inc"
+      ]
+   },
    "prereqs" : {
-      "configure" : {
+      "build" : {
          "requires" : {
             "ExtUtils::MakeMaker" : "0"
          }
       },
-      "develop" : {
+      "configure" : {
          "requires" : {
-            "Pod::Coverage::TrustPod" : "0",
-            "Test::Perl::Critic" : "0",
-            "Test::Pod" : "1.41",
-            "Test::Pod::Coverage" : "1.08"
+            "ExtUtils::MakeMaker" : "0"
          }
       },
       "runtime" : {
@@ -54,14 +57,13 @@
       "bugtracker" : {
          "web" : "https://github.com/pjf/ipc-system-simple/issues";
       },
+      "homepage" : "http://thenceforward.net/perl/modules/IPC-System-Simple/";,
       "repository" : {
          "type" : "git",
-         "url" : "git://github.com/pjf/ipc-system-simple",
+         "url" : "https://github.com/pjf/ipc-system-simple.git";,
          "web" : "https://github.com/pjf/ipc-system-simple";
       }
    },
-   "version" : "1.26",
-   "x_generated_by_perl" : "v5.26.2",
-   "x_serialization_backend" : "Cpanel::JSON::XS version 4.06"
+   "version" : "1.30",
+   "x_serialization_backend" : "JSON::PP version 4.02"
 }
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/META.yml 
new/IPC-System-Simple-1.30/META.yml
--- old/IPC-System-Simple-1.26/META.yml 2020-01-25 03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/META.yml 2020-03-24 02:34:09.000000000 +0100
@@ -3,18 +3,23 @@
 author:
   - 'Paul Fenwick <[email protected]>'
 build_requires:
+  ExtUtils::MakeMaker: '0'
   File::Basename: '0'
   Test: '0'
   Test::More: '0'
 configure_requires:
   ExtUtils::MakeMaker: '0'
-dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 
2.150010'
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 
2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: '1.4'
 name: IPC-System-Simple
+no_index:
+  directory:
+    - t
+    - inc
 requires:
   Carp: '0'
   Exporter: '0'
@@ -28,7 +33,7 @@
   warnings: '0'
 resources:
   bugtracker: https://github.com/pjf/ipc-system-simple/issues
-  repository: git://github.com/pjf/ipc-system-simple
-version: '1.26'
-x_generated_by_perl: v5.26.2
-x_serialization_backend: 'YAML::Tiny version 1.73'
+  homepage: http://thenceforward.net/perl/modules/IPC-System-Simple/
+  repository: https://github.com/pjf/ipc-system-simple.git
+version: '1.30'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/Makefile.PL 
new/IPC-System-Simple-1.30/Makefile.PL
--- old/IPC-System-Simple-1.26/Makefile.PL      2020-01-25 03:00:47.000000000 
+0100
+++ new/IPC-System-Simple-1.30/Makefile.PL      2020-03-24 02:25:32.000000000 
+0100
@@ -1,4 +1,5 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v6.012.
+# This file was originally generated by Dist::Zilla::Plugin::MakeMaker v6.012,
+# but is now manually maintained.
 use strict;
 use warnings;
 
@@ -6,6 +7,8 @@
 
 use ExtUtils::MakeMaker;
 
+my $mm_ver = ExtUtils::MakeMaker->VERSION;
+
 my %WriteMakefileArgs = (
   "ABSTRACT" => "Run commands simply, with detailed diagnostics",
   "AUTHOR" => "Paul Fenwick <pjf\@cpan.org>",
@@ -32,10 +35,25 @@
     "Test" => 0,
     "Test::More" => 0
   },
-  "VERSION" => "1.26",
+  "VERSION_FROM" => 'lib/IPC/System/Simple.pm',
   "test" => {
     "TESTS" => "t/*.t"
-  }
+  },
+  ($mm_ver < 6.46 ? () : (META_MERGE => {
+        'meta-spec' => { version => 2 },
+        dynamic_config => 1,
+        resources => {
+            homepage => 
'http://thenceforward.net/perl/modules/IPC-System-Simple/',
+            repository  => {
+                url => 'https://github.com/pjf/ipc-system-simple.git',
+                web => 'https://github.com/pjf/ipc-system-simple',
+                type => 'git',
+            },
+            bugtracker => {
+                web => 'https://github.com/pjf/ipc-system-simple/issues',
+            },
+        },
+  })),
 );
 
 
@@ -64,4 +82,15 @@
 delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
   unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
 
+my %win32_modules = (
+       'Win32::ShellQuote' => 0,
+       'Win32::Process'    => 0,
+);
+if ( $^O eq 'MSWin32' ) {
+    for my $k (keys %win32_modules) {
+        $WriteMakefileArgs{PREREQ_PM}{$k} = $win32_modules{$k};
+        $FallbackPrereqs{$k}              = $win32_modules{$k};
+    }
+}
+
 WriteMakefile(%WriteMakefileArgs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/README 
new/IPC-System-Simple-1.30/README
--- old/IPC-System-Simple-1.26/README   2020-01-25 03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/README   2020-03-21 21:05:48.000000000 +0100
@@ -1,5 +1,5 @@
 This archive contains the distribution IPC-System-Simple,
-version 1.26:
+version 1.27:
 
   Run commands simply, with detailed diagnostics
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/dist.ini 
new/IPC-System-Simple-1.30/dist.ini
--- old/IPC-System-Simple-1.26/dist.ini 2020-01-25 03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/dist.ini 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-name = IPC-System-Simple
-author = Paul Fenwick <[email protected]>
-license = Perl_5
-copyright_holder = Paul Fenwick
-release_status = stable
-
-[Git::NextVersion]
-[NextRelease]
-
-[MetaJSON]
-[MetaResources]
-repository.url  = git://github.com/pjf/ipc-system-simple
-repository.web  = https://github.com/pjf/ipc-system-simple
-repository.type = git
-
-bugtracker.web  = https://github.com/pjf/ipc-system-simple/issues
-
-[Test::Perl::Critic]
-[PodCoverageTests]
-[PodSyntaxTests]
-
-[@Basic]
-
-[AutoPrereqs]
-skip = BSD::Resource
-
-[OurPkgVersion]
-
-[@Git]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/lib/IPC/System/Simple.pm 
new/IPC-System-Simple-1.30/lib/IPC/System/Simple.pm
--- old/IPC-System-Simple-1.26/lib/IPC/System/Simple.pm 2020-01-25 
03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/lib/IPC/System/Simple.pm 2020-03-24 
02:26:01.000000000 +0100
@@ -27,12 +27,12 @@
             use Win32::Process qw(INFINITE NORMAL_PRIORITY_CLASS);
             use File::Spec;
             use Win32;
+            use Win32::ShellQuote;
 
             # This uses the same rules as the core win32.c/get_shell() call.
-
             use constant WINDOWS_SHELL => eval { Win32::IsWinNT() }
-                                            ? [ qw(cmd.exe /x/d/c) ]
-                                            : [ qw(command.com /c) ];
+                ? [ 
File::Spec->catfile(Win32::GetFolderPath(Win32::CSIDL_SYSTEM), 'cmd.exe'), 
'/x/d/c' ]
+                : [ 
File::Spec->catfile(Win32::GetFolderPath(Win32::CSIDL_SYSTEM), 'command.com'), 
'/c' ];
 
             # These are used when invoking _win32_capture
             use constant NO_SHELL  => 0;
@@ -87,7 +87,9 @@
     $EXITVAL EXIT_ANY
 );
 
-our $VERSION = '1.26'; # VERSION : From dzil
+our $VERSION = '1.30';
+$VERSION =~ tr/_//d;
+
 our $EXITVAL = -1;
 
 my @Signal_from_number = split(' ', $Config{sig_name});
@@ -146,7 +148,7 @@
 
 # system simply calls run
 
-no warnings 'once';
+no warnings 'once'; ## no critic
 *system  = \&run;
 *systemx = \&runx;
 use warnings;
@@ -166,7 +168,14 @@
                 return systemx($valid_returns, $command, @args);
        }
 
-        # Without arguments, we're calling system, and checking
+    if (WINDOWS) {
+        my $pid = _spawn_or_die(&WINDOWS_SHELL->[0], join ' ', 
@{&WINDOWS_SHELL}, $command);
+        $pid->Wait(INFINITE);  # Wait for process exit.
+        $pid->GetExitCode($EXITVAL);
+        return _check_exit($command,$EXITVAL,$valid_returns);
+    }
+
+    # Without arguments, we're calling system, and checking
         # the results.
 
        # We're throwing our own exception on command not found, so
@@ -191,7 +200,7 @@
     if (WINDOWS) {
         our $EXITVAL = -1;
 
-        my $pid = _spawn_or_die($command, "$command @args");
+        my $pid = _spawn_or_die($command, 
Win32::ShellQuote::quote_native($command, @args));
 
         $pid->Wait(INFINITE);  # Wait for process exit.
         $pid->GetExitCode($EXITVAL);
@@ -221,7 +230,7 @@
 
         if (WINDOWS) {
             # USE_SHELL really means "You may use the shell if you need it."
-            return _win32_capture(USE_SHELL, $valid_returns, $command, @args);
+            return _win32_capture(USE_SHELL, $valid_returns, $command);
         }
 
        our $EXITVAL = -1;
@@ -306,7 +315,7 @@
 
         my $err;
         my $pid = eval { 
-                _spawn_or_die($exe, qq{"$command" @args}); 
+                _spawn_or_die($exe, @args ? 
Win32::ShellQuote::quote_native($command, @args) : $command);
         }
         or do {
                 $err = $@;
@@ -522,13 +531,13 @@
 
        my $coredump = WCOREDUMP($child_error);
 
-        # There's a bug in perl 5.10.0 where if the system
+        # There's a bug in perl 5.8.9 and 5.10.0 where if the system
         # does not provide a native WCOREDUMP, then $? will
         # never contain coredump information.  This code
         # checks to see if we have the bug, and works around
         # it if needed.
 
-        if ($] >= 5.010 and not $NATIVE_WCOREDUMP) {
+        if ($] >= 5.008009 and not $NATIVE_WCOREDUMP) {
             $coredump ||= WCOREDUMP( ${^CHILD_ERROR_NATIVE} );
         }
 
@@ -874,16 +883,30 @@
 
 =head2 WINDOWS-SPECIFIC NOTES
 
-As of C<IPC::System::Simple> v0.06, the C<run> subroutine I<when
-called with multiple arguments> will make available the full 32-bit
-exit value on Win32 systems.  This is different from the
-previous versions of C<IPC::System::Simple> and from Perl's
-in-build C<system()> function, which can only handle 8-bit return values.
+The C<run> subroutine make available the full 32-bit exit value on
+Win32 systems. This has been true since C<IPC::System::Simple> v0.06
+when called with multiple arguments, and since v1.25 when called with
+a single argument.  This is different from the previous versions of
+C<IPC::System::Simple> and from Perl's in-build C<system()> function,
+which can only handle 8-bit return values.
 
 The C<capture> subroutine always returns the 32-bit exit value under
 Windows.  The C<capture> subroutine also never uses the shell,
 even when passed a single argument.
 
+The C<run> subroutine always uses a shell when passed a single
+argument. On NT systems, it uses C<cmd.exe> in the system root, and on
+non-NT systems it uses C<command.com> in the system root.
+
+As of C<IPC::System::Simple> v1.25, the C<runx> and C<capturex>
+subroutines, as well as multiple-argument calls to the C<run> and
+C<capture> subroutines, have their arguments properly quoted, so that
+arugments with spaces and the like work properly. Unfortunately, this
+breaks any attempt to invoke the shell itself. If you really need to
+execute C<cmd.exe> or C<command.com>, use the single-argument form.
+For single-argument calls to C<run> and C<capture>, the argument must
+be properly shell-quoted in advance of the call.
+
 Versions of C<IPC::System::Simple> before v0.09 would not search
 the C<PATH> environment variable when the multi-argument form of
 C<run()> was called.  Versions from v0.09 onwards correctly search
@@ -1043,11 +1066,6 @@
 work at all like Unix signals.  Win32 signals cause commands to
 exit with a given exit value, which this modules I<does> capture.
 
-Only 8-bit values are returned when C<run()> or C<system()> 
-is called with a single value under Win32.  Multi-argument calls
-to C<run()> and C<system()>, as well as the C<runx()> and
-C<systemx()> always return the 32-bit Windows return values.
-
 =head2 Reporting bugs
 
 Before reporting a bug, please check to ensure you are using the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/t/args.t 
new/IPC-System-Simple-1.30/t/args.t
--- old/IPC-System-Simple-1.26/t/args.t 1970-01-01 01:00:00.000000000 +0100
+++ new/IPC-System-Simple-1.30/t/args.t 2020-03-21 21:05:48.000000000 +0100
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+use Test::More tests => 56;
+use IPC::System::Simple qw(run runx system systemx capture capturex);
+use Config;
+use File::Basename qw(fileparse);
+
+my $perl = $Config{perlpath};
+$perl .= $Config{_exe} if $^O ne 'VMS' && $perl !~ m/$Config{_exe}$/i;
+my $tmp = 'test.tmp';
+
+my $script = qq{
+    open my \$fh, '>', '$tmp' or die "Cannot write to $tmp: \$!\\n";
+    print {\$fh} "\$_\\n" for \@ARGV;
+};
+
+chdir 't';
+
+END {
+    unlink $tmp;
+}
+
+my $slurp = sub {
+    open my $fh, '<', $tmp or die "Cannot read $tmp: $!\n";
+    return join '', <$fh>;
+};
+
+for my $spec (
+    ['single arg', 'foo'],
+    ['multiple args', 'x', 'y', 'z'],
+    ['arg with spaces', 'foo', 'bar baz'],
+) {
+    my ($desc, @args) = @{ $spec };
+    my $exp = join "\n", @args, '';
+
+    # Test run.
+    my $exit = eval { run $perl, '-e', $script, @args };
+    is $@, "", "Should have no error from runx with $desc";
+    is $exit, 0, "Should have exit 0 from runx with $desc";
+    is $slurp->(), $exp, "Should have passed $desc from run";
+
+    # Test system.
+    $exit = eval { system $perl, '-e', $script, @args };
+    is $@, "", "Should have no error from systemx with $desc";
+    is $exit, 0, "Should have exit 0 from systemx with $desc";
+    is $slurp->(), $exp, "Should have passed $desc from system";
+
+    # Test runx.
+    $exit = eval { runx $perl, '-e', $script, @args };
+    is $@, "", "Should have no error from runx with $desc";
+    is $exit, 0, "Should have exit 0 from runx with $desc";
+    is $slurp->(), $exp, "Should have passed $desc from runx";
+
+    # Test systemx.
+    $exit = eval { systemx $perl, '-e', $script, @args };
+    is $@, "", "Should have no error from systemx with $desc";
+    is $exit, 0, "Should have exit 0 from systemx with $desc";
+    is $slurp->(), $exp, "Should have passed $desc from systemx";
+
+    # Test capture.
+    my $output = eval { capture $perl, '-e', 'print "$_\n" for @ARGV', @args };
+    is $@, "", "Should have no error from capture with $desc";
+    is $output, $exp, "Should have passed $desc from capture";
+
+    # Test capturex.
+    $output = eval { capturex $perl, '-e', 'print "$_\n" for @ARGV', @args };
+    is $@, "", "Should have no error from capturex with $desc";
+    is $output, $exp, "Should have passed $desc from capturex";
+}
+
+# Make sure redirection works, too.
+my $exit = eval { run "$perl output.pl > $tmp" };
+is $@, "", "Should have no error from run with redirection";
+is $exit, 0, "Should have exit 0 from run with redirection";
+is $slurp->(), "Hello\nGoodbye\n", "Should have redirected text run";
+
+$exit = eval { system "$perl output.pl > $tmp" };
+is $@, "", "Should have no error from systemx with redirection";
+is $exit, 0, "Should have exit 0 from systemx with redirection";
+is $slurp->(), "Hello\nGoodbye\n", "Should have redirected text systemx";
+
+# And single-string capture.
+my $output = eval { capture "$perl output.pl" };
+is $@, "", "Should have no error from single-string capture";
+is $output, "Hello\nGoodbye\n", "Should have output from capture";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/t/author-critic.t 
new/IPC-System-Simple-1.30/t/author-critic.t
--- old/IPC-System-Simple-1.26/t/author-critic.t        2020-01-25 
03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/t/author-critic.t        1970-01-01 
01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-#!perl
-
-BEGIN {
-  unless ($ENV{AUTHOR_TESTING}) {
-    print qq{1..0 # SKIP these tests are for testing by the author\n};
-    exit
-  }
-}
-
-
-use strict;
-use warnings;
-
-use Test::Perl::Critic (-profile => "perlcritic.rc") x!! -e "perlcritic.rc";
-all_critic_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/t/author-pod-coverage.t 
new/IPC-System-Simple-1.30/t/author-pod-coverage.t
--- old/IPC-System-Simple-1.26/t/author-pod-coverage.t  2020-01-25 
03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/t/author-pod-coverage.t  1970-01-01 
01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-#!perl
-
-BEGIN {
-  unless ($ENV{AUTHOR_TESTING}) {
-    print qq{1..0 # SKIP these tests are for testing by the author\n};
-    exit
-  }
-}
-
-# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
-
-use Test::Pod::Coverage 1.08;
-use Pod::Coverage::TrustPod;
-
-all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/t/author-pod-syntax.t 
new/IPC-System-Simple-1.30/t/author-pod-syntax.t
--- old/IPC-System-Simple-1.26/t/author-pod-syntax.t    2020-01-25 
03:00:47.000000000 +0100
+++ new/IPC-System-Simple-1.30/t/author-pod-syntax.t    1970-01-01 
01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-#!perl
-
-BEGIN {
-  unless ($ENV{AUTHOR_TESTING}) {
-    print qq{1..0 # SKIP these tests are for testing by the author\n};
-    exit
-  }
-}
-
-# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
-use strict; use warnings;
-use Test::More;
-use Test::Pod 1.41;
-
-all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/t/win32.t 
new/IPC-System-Simple-1.30/t/win32.t
--- old/IPC-System-Simple-1.26/t/win32.t        2020-01-25 03:00:47.000000000 
+0100
+++ new/IPC-System-Simple-1.30/t/win32.t        2020-03-22 02:27:15.000000000 
+0100
@@ -21,13 +21,13 @@
 use constant HUGE_EXIT => 100_000;
 
 # This command should allow us to exit with a specific value.
-use constant EXIT_CMD => [ @{ &IPC::System::Simple::WINDOWS_SHELL }, 'exit'];
+use constant CMD => join ' ', @{ &IPC::System::Simple::WINDOWS_SHELL };
 
 # These are used in the testing of commands in paths which contain spaces.
 use constant CMD_WITH_SPACES        => 'dir with spaces\hello.exe';
 use constant CMD_WITH_SPACES_OUTPUT => "Hello World\n";
 
-plan tests => 33;
+plan tests => 37;
 
 my $perl_path = $Config{perlpath};
 $perl_path .= $Config{_exe} unless $perl_path =~ m/$Config{_exe}$/i;
@@ -45,17 +45,20 @@
 foreach my $big_exitval (SMALL_EXIT, BIG_EXIT, HUGE_EXIT) {
 
     my $exit;
+    # XXX Ideally, we would find a way to test the multi-argument form, too,
+    # but cmd.exe no longer works with that form, because all args are quoted,
+    # and /x/d/c must not be.
     eval {
-        $exit = run([$big_exitval], @{&EXIT_CMD}, $big_exitval);
+        $exit = run([$big_exitval], CMD . qq{ "exit $big_exitval"});
     };
 
     is($@,"","Running with $big_exitval ok");
     is($exit,$big_exitval,"$big_exitval exit value");
 
     my $capture;
-    
+
     eval {
-       $capture = capture([$big_exitval], @{&EXIT_CMD}, $big_exitval);
+       $capture = capture([$big_exitval], CMD . qq{ exit $big_exitval"});
     };
 
     is($@,"","Capturing with $big_exitval ok");
@@ -123,29 +126,29 @@
 
 my $output = capture(
        $^X, '-MIPC::System::Simple=capture',
-       q(-e"print 1; eval { capture(q(nosuchcmd)); }; print 2; exit 0;")
+       '-e', q(print 1; eval { capture(q(nosuchcmd)); }; print 2; exit 0;)
 );
 
 is($output,"12","RT #48319 - Check for STDOUT replumbing");
 
-# Check to ensure we can run commands that include spaces.
-
 SKIP: {
-
-    # CMD_WITH_SPACES is not currently distributed with IPC::System::Simple,
-    # effectively making this an author test for now. -- PJF, Dec 4, 2009
-
-    skip(CMD_WITH_SPACES." not implemented", 4);
-    # skip(CMD_WITH_SPACES." not available", 4) unless -x CMD_WITH_SPACES;
-
-    my $output = eval { capturex(CMD_WITH_SPACES); };
-
-    is($@, "", "command with spaces should not error (capturex)");
+       skip("Inconsistent results between AppVeyor and CPANtesters", 8)
+        unless $ENV{AUTHOR_TESTING};
+     
+    # Check to ensure we can run commands that include spaces.
+    $output = eval { capturex(CMD_WITH_SPACES, 'ignore'); };
+    is($@, "", "command with spaces should not error (capturex multi)");
     is($output, CMD_WITH_SPACES_OUTPUT, "...and give correct output");
 
-    $output = eval { capture(CMD_WITH_SPACES); };
+    $output = eval { capturex(CMD_WITH_SPACES); };
+    is($@, "", "command with spaces should not error (capturex single)");
+    is($output, CMD_WITH_SPACES_OUTPUT, "...and give correct output");
 
-    is($@, "", "command with spaces should not error (capture)");
+    $output = eval { capture(CMD_WITH_SPACES, 'ignore'); };
+    is($@, "", "command with spaces should not error (capture multi)");
     is($output, CMD_WITH_SPACES_OUTPUT, "...and give correct output");
 
-}
+    $output = eval { capture('"' . CMD_WITH_SPACES . '"'); };
+    is($@, "", "command with spaces should not error (capture quoted)");
+    is($output, CMD_WITH_SPACES_OUTPUT, "...and give correct output");
+} # End SKIP block
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/xt/author-critic.t 
new/IPC-System-Simple-1.30/xt/author-critic.t
--- old/IPC-System-Simple-1.26/xt/author-critic.t       1970-01-01 
01:00:00.000000000 +0100
+++ new/IPC-System-Simple-1.30/xt/author-critic.t       2020-03-21 
21:05:48.000000000 +0100
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    print qq{1..0 # SKIP these tests are for testing by the author\n};
+    exit
+  }
+}
+
+
+use strict;
+use warnings;
+
+use Test::Perl::Critic (-profile => "perlcritic.rc") x!! -e "perlcritic.rc";
+all_critic_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/xt/author-pod-coverage.t 
new/IPC-System-Simple-1.30/xt/author-pod-coverage.t
--- old/IPC-System-Simple-1.26/xt/author-pod-coverage.t 1970-01-01 
01:00:00.000000000 +0100
+++ new/IPC-System-Simple-1.30/xt/author-pod-coverage.t 2020-03-21 
21:05:48.000000000 +0100
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    print qq{1..0 # SKIP these tests are for testing by the author\n};
+    exit
+  }
+}
+
+# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/IPC-System-Simple-1.26/xt/author-pod-syntax.t 
new/IPC-System-Simple-1.30/xt/author-pod-syntax.t
--- old/IPC-System-Simple-1.26/xt/author-pod-syntax.t   1970-01-01 
01:00:00.000000000 +0100
+++ new/IPC-System-Simple-1.30/xt/author-pod-syntax.t   2020-03-21 
21:05:48.000000000 +0100
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    print qq{1..0 # SKIP these tests are for testing by the author\n};
+    exit
+  }
+}
+
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use strict; use warnings;
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();


Reply via email to