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();