Hello community,

here is the log from the commit of package perl-Test-Script for 
openSUSE:Factory checked in at 2017-07-17 09:12:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Script (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Test-Script.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Test-Script"

Mon Jul 17 09:12:30 2017 rev:25 rq:510426 version:1.20

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-Script/perl-Test-Script.changes        
2017-05-16 14:33:53.086139365 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-Script.new/perl-Test-Script.changes   
2017-07-17 09:12:30.828480792 +0200
@@ -1,0 +2,38 @@
+Fri Jul 14 06:14:56 UTC 2017 - co...@suse.com
+
+- updated to 1.20
+   see /usr/share/doc/packages/perl-Test-Script/Changes
+
+  1.20      2017-07-13 11:17:42 -0400
+    - Production release identical to 1.19_08 release.
+  
+  1.19_08   2017-07-12 08:22:41 -0400
+    - Diagnostic release
+  
+  1.19_07   2017-07-12 07:53:55 -0400
+    - Diagnostic release
+  
+  1.19_06   2017-07-11 05:34:30 -0400
+    - Diagnostic release
+  
+  1.19_05   2017-07-09 11:35:59 -0400
+    - Diagnostic release
+  
+  1.19_04   2017-07-07 16:26:41 -0400
+    - Add support for stdin option that was lost in the Capture::Tiny migration
+    - Officially drop support for Perl 5.6 (support for 5.6 was already
+      implicitly dropped when we migrated to Capture::Tiny).
+    - A near term future version will also drop support for the old pre-Test2
+      Test::Builder.
+  
+  1.19_03   2017-07-07 10:14:25 -0400
+    - Use Test2::V0 instead of Test2::Bundle::Extended for Test2 tests
+  
+  1.19_02   2017-06-21 17:06:47 -0400
+    - Identical to 1.19_01
+  
+  1.19_01   2017-05-01 06:12:01 -0400
+    - Use Capture::Tiny instead of IPC::Run3 (Paul Cochrane/PTC++ gh#4, gh#15)
+    - Minor documentation fixes (Paul Cochrane/PTC++)
+
+-------------------------------------------------------------------

Old:
----
  Test-Script-1.18.tar.gz

New:
----
  Test-Script-1.20.tar.gz

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

Other differences:
------------------
++++++ perl-Test-Script.spec ++++++
--- /var/tmp/diff_new_pack.sdI5Sl/_old  2017-07-17 09:12:31.324410938 +0200
+++ /var/tmp/diff_new_pack.sdI5Sl/_new  2017-07-17 09:12:31.324410938 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Test-Script
-Version:        1.18
+Version:        1.20
 Release:        0
 %define cpan_name Test-Script
 Summary:        Basic cross-platform tests for scripts
@@ -30,11 +30,11 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
 BuildRequires:  perl-macros
-BuildRequires:  perl(IPC::Run3) >= 0.034
+BuildRequires:  perl(Capture::Tiny)
 BuildRequires:  perl(Probe::Perl) >= 0.01
 BuildRequires:  perl(Test::More) >= 0.96
 BuildRequires:  perl(Test::Tester)
-Requires:       perl(IPC::Run3) >= 0.034
+Requires:       perl(Capture::Tiny)
 Requires:       perl(Probe::Perl) >= 0.01
 Requires:       perl(Test::More) >= 0.96
 %{perl_requires}
@@ -75,7 +75,7 @@
 
 %files -f %{name}.files
 %defattr(-,root,root,755)
-%doc author.yml Changes README t2
+%doc author.yml Changes README
 %license LICENSE
 
 %changelog

++++++ Test-Script-1.18.tar.gz -> Test-Script-1.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/Changes new/Test-Script-1.20/Changes
--- old/Test-Script-1.18/Changes        2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/Changes        2017-07-13 17:17:45.000000000 +0200
@@ -1,5 +1,37 @@
 Revision history for Perl extension Test-Script
 
+1.20      2017-07-13 11:17:42 -0400
+  - Production release identical to 1.19_08 release.
+
+1.19_08   2017-07-12 08:22:41 -0400
+  - Diagnostic release
+
+1.19_07   2017-07-12 07:53:55 -0400
+  - Diagnostic release
+
+1.19_06   2017-07-11 05:34:30 -0400
+  - Diagnostic release
+
+1.19_05   2017-07-09 11:35:59 -0400
+  - Diagnostic release
+
+1.19_04   2017-07-07 16:26:41 -0400
+  - Add support for stdin option that was lost in the Capture::Tiny migration
+  - Officially drop support for Perl 5.6 (support for 5.6 was already
+    implicitly dropped when we migrated to Capture::Tiny).
+  - A near term future version will also drop support for the old pre-Test2
+    Test::Builder.
+
+1.19_03   2017-07-07 10:14:25 -0400
+  - Use Test2::V0 instead of Test2::Bundle::Extended for Test2 tests
+
+1.19_02   2017-06-21 17:06:47 -0400
+  - Identical to 1.19_01
+
+1.19_01   2017-05-01 06:12:01 -0400
+  - Use Capture::Tiny instead of IPC::Run3 (Paul Cochrane/PTC++ gh#4, gh#15)
+  - Minor documentation fixes (Paul Cochrane/PTC++)
+
 1.18      2017-04-12 07:01:14 -0400
   - Production release identical to 1.17_02 release.
 
@@ -33,11 +65,11 @@
   - Check for IO errors on temporary .pm file
 
 1.11_02   2016-04-27 13:15:35 -0400
-  - One possible fix for gh#5 
+  - One possible fix for gh#5
     (see https://github.com/plicease/Test-Script/issues/5)
 
 1.11_01   2016-04-27 12:28:33 -0400
-  - Including some optional Test2 based tests that should 
+  - Including some optional Test2 based tests that should
     only be run with a merged Test2 / Test::Builder
     (currently a dev release as Test::Simple on CPAN)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/LICENSE new/Test-Script-1.20/LICENSE
--- old/Test-Script-1.18/LICENSE        2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/LICENSE        2017-07-13 17:17:45.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2006 by Adam Kennedy.
+This software is copyright (c) 2017 by Adam Kennedy.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2006 by Adam Kennedy.
+This software is Copyright (c) 2017 by Adam Kennedy.
 
 This is free software, licensed under:
 
@@ -272,7 +272,7 @@
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2006 by Adam Kennedy.
+This software is Copyright (c) 2017 by Adam Kennedy.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/MANIFEST 
new/Test-Script-1.20/MANIFEST
--- old/Test-Script-1.18/MANIFEST       2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/MANIFEST       2017-07-13 17:17:45.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.009.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.010.
 Changes
 INSTALL
 LICENSE
@@ -28,6 +28,8 @@
 t/bin/good.pl
 t/bin/print.pl
 t/bin/signal.pl
+t/bin/stdin.pl
+t/bin/stdin.txt
 t/bin/taint.pl
 t2/bug_gh9.t
 t2/test_script__exports.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/META.json 
new/Test-Script-1.20/META.json
--- old/Test-Script-1.18/META.json      2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/META.json      2017-07-13 17:17:45.000000000 +0200
@@ -5,7 +5,7 @@
       "Adam Kennedy"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 
2.150010",
+   "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150010",
    "license" : [
       "perl_5"
    ],
@@ -18,7 +18,7 @@
       "configure" : {
          "requires" : {
             "ExtUtils::MakeMaker" : "0",
-            "perl" : "5.006"
+            "perl" : "5.008001"
          }
       },
       "develop" : {
@@ -37,12 +37,13 @@
       },
       "runtime" : {
          "requires" : {
+            "Capture::Tiny" : "0",
             "File::Spec" : "0.80",
-            "IPC::Run3" : "0.034",
+            "IO::Handle" : "0",
             "Probe::Perl" : "0.01",
             "Test::Builder" : "0.32",
             "Test::More" : "0.96",
-            "perl" : "5.006"
+            "perl" : "5.008001"
          }
       },
       "test" : {
@@ -51,10 +52,16 @@
             "Test::Builder::Tester" : "1.02",
             "Test::More" : "0.96",
             "Test::Tester" : "0",
-            "perl" : "5.006"
+            "perl" : "5.008001"
          }
       }
    },
+   "provides" : {
+      "Test::Script" : {
+         "file" : "lib/Test/Script.pm",
+         "version" : "1.20"
+      }
+   },
    "release_status" : "stable",
    "resources" : {
       "bugtracker" : {
@@ -67,7 +74,12 @@
          "web" : "https://github.com/plicease/Test-Script";
       }
    },
-   "version" : "1.18",
-   "x_serialization_backend" : "Cpanel::JSON::XS version 3.023"
+   "version" : "1.20",
+   "x_contributors" : [
+      "Adam Kennedy",
+      "Graham Ollis <plice...@cpan.org>",
+      "Brendan Byrd"
+   ],
+   "x_serialization_backend" : "Cpanel::JSON::XS version 3.0233"
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/META.yml 
new/Test-Script-1.20/META.yml
--- old/Test-Script-1.18/META.yml       2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/META.yml       2017-07-13 17:17:45.000000000 +0200
@@ -8,27 +8,36 @@
   Test::Builder::Tester: '1.02'
   Test::More: '0.96'
   Test::Tester: '0'
-  perl: '5.006'
+  perl: '5.008001'
 configure_requires:
   ExtUtils::MakeMaker: '0'
-  perl: '5.006'
+  perl: '5.008001'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.009, CPAN::Meta::Converter version 
2.150010'
+generated_by: 'Dist::Zilla version 6.010, 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: Test-Script
+provides:
+  Test::Script:
+    file: lib/Test/Script.pm
+    version: '1.20'
 requires:
+  Capture::Tiny: '0'
   File::Spec: '0.80'
-  IPC::Run3: '0.034'
+  IO::Handle: '0'
   Probe::Perl: '0.01'
   Test::Builder: '0.32'
   Test::More: '0.96'
-  perl: '5.006'
+  perl: '5.008001'
 resources:
   bugtracker: https://github.com/plicease/Test-Script/issues
   homepage: https://metacpan.org/pod/Test::Script
   repository: git://github.com/plicease/Test-Script.git
-version: '1.18'
+version: '1.20'
+x_contributors:
+  - 'Adam Kennedy'
+  - 'Graham Ollis <plice...@cpan.org>'
+  - 'Brendan Byrd'
 x_serialization_backend: 'YAML::Tiny version 1.70'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/Makefile.PL 
new/Test-Script-1.20/Makefile.PL
--- old/Test-Script-1.18/Makefile.PL    2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/Makefile.PL    2017-07-13 17:17:45.000000000 +0200
@@ -5,16 +5,16 @@
     my(undef, $perl, undef) = @_;
     "\t$perl run_test.pl";
   }
-  unless(eval q{ use 5.006; 1}) {
-    print "Perl 5.006 or better required\n";
+  unless(eval q{ use 5.008001; 1}) {
+    print "Perl 5.008001 or better required\n";
     exit;
   }
 }
-# This file was automatically generated by 
Dist::Zilla::Plugin::Author::Plicease::MakeMaker v2.12.
+# This file was automatically generated by 
Dist::Zilla::Plugin::Author::Plicease::MakeMaker v2.20.
 use strict;
 use warnings;
 
-use 5.006;
+use 5.008001;
 
 use ExtUtils::MakeMaker;
 
@@ -26,14 +26,15 @@
   },
   "DISTNAME" => "Test-Script",
   "LICENSE" => "perl",
-  "MIN_PERL_VERSION" => "5.006",
+  "MIN_PERL_VERSION" => "5.008001",
   "NAME" => "Test::Script",
   "PM" => {
     "lib/Test/Script.pm" => "\$(INST_LIB)/Test/Script.pm"
   },
   "PREREQ_PM" => {
+    "Capture::Tiny" => 0,
     "File::Spec" => "0.80",
-    "IPC::Run3" => "0.034",
+    "IO::Handle" => 0,
     "Probe::Perl" => "0.01",
     "Test::Builder" => "0.32",
     "Test::More" => "0.96"
@@ -44,7 +45,7 @@
     "Test::More" => "0.96",
     "Test::Tester" => 0
   },
-  "VERSION" => "1.18",
+  "VERSION" => "1.20",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -52,8 +53,9 @@
 
 
 my %FallbackPrereqs = (
+  "Capture::Tiny" => 0,
   "File::Spec" => "0.80",
-  "IPC::Run3" => "0.034",
+  "IO::Handle" => 0,
   "Probe::Perl" => "0.01",
   "Test::Builder" => "0.32",
   "Test::Builder::Tester" => "1.02",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/README new/Test-Script-1.20/README
--- old/Test-Script-1.18/README 2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/README 2017-07-13 17:17:45.000000000 +0200
@@ -4,7 +4,7 @@
 
 VERSION
 
-    version 1.18
+    version 1.20
 
 SYNOPSIS
 
@@ -44,7 +44,7 @@
     The "script_compiles" test calls the script with "perl -c script.pl",
     and checks that it returns without error.
 
-    The path it should be passed is a relative unix-format script name.
+    The path it should be passed is a relative Unix-format script name.
     This will be localised when running perl -c and if the test fails the
     local name used will be shown in the diagnostic output.
 
@@ -97,7 +97,8 @@
        the referenced scalar.
 
       The behavior for any other types is undefined (the current
-      implementation uses IPC::Run3, but that may change in the future).
+      implementation uses Capture::Tiny). Any already opened stdin will be
+      closed.
 
     stdout
 
@@ -115,7 +116,7 @@
       scalar
 
       The behavior for any other types is undefined (the current
-      implementation uses IPC::Run3, but that may change in the future).
+      implementation uses Capture::Tiny).
 
     stderr
 
@@ -179,19 +180,14 @@
 
 CAVEATS
 
-    This module is fully supported back to Perl 5.8.1. It may work on
-    5.8.0. It should work on Perl 5.6.x and I may even test on 5.6.2. I
-    will accept patches to maintain compatibility for such older Perls, but
-    you may need to fix it on 5.6.x / 5.8.0 and send me a patch.
-
-    This module uses IPC::Run3 to compile and run scripts. There are a
-    number of outstanding issues with this module, and maintenance for
-    IPC::Run3 is not swift. One of these is that IPC::Run3 incorrectly
-    throws an exception on Windows when you feed it a Perl script with a
-    compile error. Currently Test::Script probes for this bug (it checks
-    for the bug, not for a specific version) and applies a workaround in
-    that case. I am hoping to remove the work around once the bug is fixed
-    in IPC::Run3.
+    This module is fully supported back to Perl 5.8.1. In the near future,
+    support for the older pre-Test2 Test::Builer will be dropped.
+
+    The STDIN handle will be closed when using script_runs with the stdin
+    option. An older version used IPC::Run3, which attempted to save STDIN,
+    but apparently this cannot be done consistently or portably. We now use
+    Capture::Tiny instead and explicitly do not support saving STDIN
+    handles.
 
 SEE ALSO
 
@@ -209,7 +205,7 @@
 
 COPYRIGHT AND LICENSE
 
-    This software is copyright (c) 2006 by Adam Kennedy.
+    This software is copyright (c) 2017 by Adam Kennedy.
 
     This is free software; you can redistribute it and/or modify it under
     the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/cpanfile 
new/Test-Script-1.20/cpanfile
--- old/Test-Script-1.18/cpanfile       2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/cpanfile       2017-07-13 17:17:45.000000000 +0200
@@ -1,21 +1,22 @@
+requires "Capture::Tiny" => "0";
 requires "File::Spec" => "0.80";
-requires "IPC::Run3" => "0.034";
+requires "IO::Handle" => "0";
 requires "Probe::Perl" => "0.01";
 requires "Test::Builder" => "0.32";
 requires "Test::More" => "0.96";
-requires "perl" => "5.006";
+requires "perl" => "5.008001";
 
 on 'test' => sub {
   requires "Test::Builder" => "0.32";
   requires "Test::Builder::Tester" => "1.02";
   requires "Test::More" => "0.96";
   requires "Test::Tester" => "0";
-  requires "perl" => "5.006";
+  requires "perl" => "5.008001";
 };
 
 on 'configure' => sub {
   requires "ExtUtils::MakeMaker" => "0";
-  requires "perl" => "5.006";
+  requires "perl" => "5.008001";
 };
 
 on 'develop' => sub {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/dist.ini 
new/Test-Script-1.20/dist.ini
--- old/Test-Script-1.18/dist.ini       2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/dist.ini       2017-07-13 17:17:45.000000000 +0200
@@ -3,24 +3,14 @@
 author           = Adam Kennedy
 license          = Perl_5
 copyright_holder = Adam Kennedy
-copyright_year   = 2006
-version          = 1.18
+copyright_year   = 2017
+version          = 1.20
 
 [@Author::Plicease]
-:version           = 2.12
+:version           = 2.19
 travis_status      = 1
 release_tests      = 1
 
-diag_preamble = | $post_diag = sub
-diag_preamble = | {
-diag_preamble = |   eval {
-diag_preamble = |     require Test::Script;
-diag_preamble = |     diag "probing IPC::Run3 for rt94685 rt46333 rt95308 
gh#9";
-diag_preamble = |     diag "IPC::Run3 is ", Test::Script::_borked_ipc_run3() ? 
'borked' : 'good';
-diag_preamble = |     1;
-diag_preamble = |   } || diag "eval failed: $@";
-diag_preamble = | };
-
 preamble = | sub MY::test_via_harness
 preamble = | {
 preamble = |   my(undef, $perl, undef) = @_;
@@ -40,16 +30,18 @@
 remove = File::Path
 
 [Prereqs]
-File::Spec  = 0.80
-IPC::Run3   = 0.034
-Test::More  = 0.96
-Probe::Perl = 0.01
+File::Spec    = 0.80
+Test::More    = 0.96
+Probe::Perl   = 0.01
+Capture::Tiny = 0
 
 [Prereqs / TestPrereqs]
 -phase                = test
 Test::Builder         = 0.32
 Test::Builder::Tester = 1.02
 
+[MetaProvides::Package]
+
 [Author::Plicease::Upload]
 cpan = 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/lib/Test/Script.pm 
new/Test-Script-1.20/lib/Test/Script.pm
--- old/Test-Script-1.18/lib/Test/Script.pm     2017-04-12 13:01:18.000000000 
+0200
+++ new/Test-Script-1.20/lib/Test/Script.pm     2017-07-13 17:17:45.000000000 
+0200
@@ -1,21 +1,22 @@
 package Test::Script;
 
 # ABSTRACT: Basic cross-platform tests for scripts
-our $VERSION = '1.18'; # VERSION
+our $VERSION = '1.20'; # VERSION
 
 
-use 5.006;
+use 5.008001;
 use strict;
 use warnings;
-use Carp             ();
-use Exporter         ();
-use File::Spec       ();
-use File::Spec::Unix ();
-use Probe::Perl      ();
-use IPC::Run3        qw( run3 );
-use Test::Builder    ();
-use File::Temp       ();
-use File::Path       ();
+use Carp qw( croak );
+use Exporter;
+use File::Spec;
+use File::Spec::Unix;
+use Probe::Perl;
+use Capture::Tiny qw( capture );
+use Test::Builder ();
+use File::Temp qw( tempdir );
+use File::Path qw( rmtree );
+use IO::Handle;
 
 our @ISA     = 'Exporter';
 our @EXPORT  = qw{
@@ -56,10 +57,10 @@
 sub path ($) {
   my $path = shift;
   unless ( defined $path ) {
-    Carp::croak("Did not provide a script name");
+    croak("Did not provide a script name");
   }
   if ( File::Spec::Unix->file_name_is_absolute($path) ) {
-    Carp::croak("Script name must be relative");
+    croak("Script name must be relative");
   }
   File::Spec->catfile(
     File::Spec->curdir,
@@ -67,24 +68,6 @@
   );
 }
 
-## This can and should be removed if/when IPC::Run3 is fixed on MSWin32
-## See rt94685, rt46333, rt95308 and IPC-Run3/gh#9"
-sub _borked_ipc_run3 () {
-  $^O eq 'MSWin32' &&
-  ! eval { IPC::Run3::run3 [ perl, -e => 'BEGIN {die}' ], \undef, \undef, 
\undef; 1 }
-}
-
-if(_borked_ipc_run3())
-{
-  no warnings 'redefine';
-  *run3 = sub {
-    $! = 0;
-    my $r = IPC::Run3::run3(@_, { return_if_system_error => 1 });
-    Carp::croak($!) if $! && $! !~ /Inappropriate I\/O control operation/;
-    $r;
-  };
-}
-
 #####################################################################
 # Test Functions
 
@@ -94,22 +77,16 @@
   my $unix   = shift @$args;
   my $path   = path( $unix );
   my $pargs  = _perl_args($path);
-  my @libs   = map { "-I$_" } grep {!ref($_)} @INC;
   my $dir    = _preload_module();
   my $cmd    = [ perl, @$pargs, "-I$dir", '-M__TEST_SCRIPT__', '-c', $path, 
@$args ];
-  my $stdin  = '';
-  my $stdout = '';
-  my $stderr = '';
-  my $rv     = eval { run3( $cmd, \$stdin, \$stdout, \$stderr ) };
+  my ($stdout, $stderr) = capture { system(@$cmd) };
   my $error  = $@;
   my $exit   = $? ? ($? >> 8) : 0;
   my $signal = $? ? ($? & 127) : 0;
   my $ok     = !! (
-    $error eq '' and $rv and $exit == 0 and $signal == 0 and $stderr =~ 
/syntax OK\s+\z/si
+    $error eq '' and $exit == 0 and $signal == 0 and $stderr =~ /syntax 
OK\s+\z/si
   );
 
-  File::Path::rmtree($dir);
-
   my $test = Test::Builder->new;
   $test->ok( $ok, $_[0] || "Script $unix compiles" );
   $test->diag( "$exit - $stderr" ) unless $ok;
@@ -119,20 +96,26 @@
   return $ok;
 }
 
-# this is noticably slower for long @INC lists (sometimes present in 
cpantesters
+# this is noticeably slower for long @INC lists (sometimes present in 
cpantesters
 # boxes) than the previous implementation, which added a -I for every element 
in
-# @INC.  (also slower for more reasonable @INCs, but not noticably).  But it is
+# @INC.  (also slower for more reasonable @INCs, but not noticeably).  But it 
is
 # safer as very long argument lists can break calls to system
 sub _preload_module
 {
-  my $dir = File::Temp::tempdir( CLEANUP => 1 );
+  my @opts = ( '.test-script-XXXXXXXX', CLEANUP => 1);
+  if(-w File::Spec->curdir)
+  { push @opts, DIR => File::Spec->curdir }
+  else
+  { push @opts, DIR => File::Spec->tmpdir }
+  my $dir = tempdir(@opts);
+  $dir = File::Spec->rel2abs($dir);
   # this is hopefully a pm file that nobody would use
   my $filename = File::Spec->catfile($dir, '__TEST_SCRIPT__.pm');
   my $fh;
-  open($fh, '>', $filename) 
+  open($fh, '>', $filename)
     || die "unable to open $filename: $!";
   print($fh 'unshift @INC, ',
-    join ',', 
+    join ',',
     # quotemeta is overkill, but it will make sure that characters
     # like " are quoted
     map { '"' . quotemeta($_) . '"' }
@@ -154,15 +137,44 @@
   my $pargs  = _perl_args($path);
   my $dir    = _preload_module();
   my $cmd    = [ perl, @$pargs, "-I$dir", '-M__TEST_SCRIPT__', $path, @$args ];
-     $stdout = '';
-     $stderr = '';
-  my $rv     = eval { run3( $cmd, $opt->{stdin}, $opt->{stdout}, 
$opt->{stderr} ) };
+  $stdout = '';
+  $stderr = '';
+
+  if($opt->{stdin})
+  {
+    my $filename;
+
+    if(ref($opt->{stdin}) eq 'SCALAR')
+    {
+      $filename = File::Spec->catfile(
+        tempdir(CLEANUP => 1),
+        'stdin.txt',
+      );
+      my $tmp;
+      open($tmp, '>', $filename) || die "unable to write to $filename";
+      print $tmp ${ $opt->{stdin} };
+      close $tmp;
+    }
+    elsif(ref($opt->{stdin}) eq '')
+    {
+      $filename = $opt->{stdin};
+    }
+    else
+    {
+      croak("stdin MUST be either a scalar reference or a string filename");
+    }
+
+    my $fh;
+    open($fh, '<', $filename) || die "unable to open $filename $!";
+    STDIN->fdopen( $fh, 'r' ) or die "unable to reopen stdin to $filename $!";
+  }
+
+  (${$opt->{stdout}}, ${$opt->{stderr}}) = capture { system(@$cmd) };
+  
   my $error  = $@;
   my $exit   = $? ? ($? >> 8) : 0;
   my $signal = $? ? ($? & 127) : 0;
-  my $ok     = !! ( $error eq '' and $rv and $exit == $opt->{exit} and $signal 
== $opt->{signal} );
-
-  File::Path::rmtree($dir);
+  my $ok     = !! ( $error eq '' and $exit == $opt->{exit} and $signal == 
$opt->{signal} );
 
   my $test = Test::Builder->new;
   $test->ok( $ok, $_[0] || "Script $unix runs" );
@@ -176,10 +188,10 @@
 sub _like
 {
   my($text, $pattern, $regex, $not, $name) = @_;
-  
+
   my $ok = $regex ? $text =~ $pattern : $text eq $pattern;
   $ok = !$ok if $not;
-  
+
   my $test = Test::Builder->new;
   $test->ok( $ok, $name );
   unless($ok) {
@@ -192,7 +204,7 @@
       $test->diag( "  $_" ) for split /\n/, $pattern;
     }
   }
-  
+
   $ok;
 }
 
@@ -215,7 +227,7 @@
 
 sub script_stdout_like
 {
-  my($pattern, $name) = @_;  
+  my($pattern, $name) = @_;
   @_ = ($stdout, $pattern, 1, 0, $name || 'stdout matches' );
   goto &_like;
 }
@@ -247,7 +259,7 @@
 
 sub script_stderr_like
 {
-  my($pattern, $name) = @_;  
+  my($pattern, $name) = @_;
   @_ = ($stderr, $pattern, 1, 0, $name || 'stderr matches' );
   goto &_like;
 }
@@ -275,7 +287,7 @@
       return [ @$in ];
     }
   }
-  Carp::croak("Invalid command parameter");
+  croak("Invalid command parameter");
 }
 
 # Determine any extra arguments that need to be passed into Perl.
@@ -296,11 +308,11 @@
 
 sub _options {
   my %options = ref($_[0]->[0]) eq 'HASH' ? %{ shift @{ $_[0] } }: ();
-  
+
   $options{exit}   = 0        unless defined $options{exit};
   $options{signal} = 0        unless defined $options{signal};
   my $stdin = '';
-  $options{stdin}  = \$stdin  unless defined $options{stdin};
+  #$options{stdin}  = \$stdin  unless defined $options{stdin};
   $options{stdout} = \$stdout unless defined $options{stdout};
   $options{stderr} = \$stderr unless defined $options{stderr};
 
@@ -334,7 +346,7 @@
 
 =head1 VERSION
 
-version 1.18
+version 1.20
 
 =head1 SYNOPSIS
 
@@ -373,7 +385,7 @@
 The L</script_compiles> test calls the script with "perl -c script.pl",
 and checks that it returns without error.
 
-The path it should be passed is a relative unix-format script name. This
+The path it should be passed is a relative Unix-format script name. This
 will be localised when running C<perl -c> and if the test fails the local
 name used will be shown in the diagnostic output.
 
@@ -431,13 +443,13 @@
 =back
 
 The behavior for any other types is undefined (the current implementation uses
-L<IPC::Run3>, but that may change in the future).
+L<Capture::Tiny>).  Any already opened stdin will be closed.
 
 =item stdout
 
 Where to send the standard output to.  If you use this option, then the the
 behavior of the C<script_stdout_> functions below are undefined.  The value
-may be one of 
+may be one of
 
 =over 4
 
@@ -452,7 +464,7 @@
 In which case the standard output will be places into the referenced scalar
 
 The behavior for any other types is undefined (the current implementation uses
-L<IPC::Run3>, but that may change in the future).
+L<Capture::Tiny>).
 
 =item stderr
 
@@ -464,14 +476,14 @@
 
  script_stdout_is $expected_stdout, $test_name;
 
-Tests if the output to stdout from the previous L</script_runs> matches the 
+Tests if the output to stdout from the previous L</script_runs> matches the
 expected value exactly.
 
 =head2 script_stdout_isnt
 
  script_stdout_is $expected_stdout, $test_name;
 
-Tests if the output to stdout from the previous L</script_runs> does NOT match 
the 
+Tests if the output to stdout from the previous L</script_runs> does NOT match 
the
 expected value exactly.
 
 =head2 script_stdout_like
@@ -492,14 +504,14 @@
 
  script_stderr_is $expected_stderr, $test_name;
 
-Tests if the output to stderr from the previous L</script_runs> matches the 
+Tests if the output to stderr from the previous L</script_runs> matches the
 expected value exactly.
 
 =head2 script_stderr_isnt
 
  script_stderr_is $expected_stderr, $test_name;
 
-Tests if the output to stderr from the previous L</script_runs> does NOT match 
the 
+Tests if the output to stderr from the previous L</script_runs> does NOT match 
the
 expected value exactly.
 
 =head2 script_stderr_like
@@ -518,18 +530,13 @@
 
 =head1 CAVEATS
 
-This module is fully supported back to Perl 5.8.1.  It may work on 5.8.0.
-It should work on Perl 5.6.x and I may even test on 5.6.2.  I will accept
-patches to maintain compatibility for such older Perls, but you may
-need to fix it on 5.6.x / 5.8.0 and send me a patch.
-
-This module uses L<IPC::Run3> to compile and run scripts.  There are a number 
of
-outstanding issues with this module, and maintenance for L<IPC::Run3> is not 
swift.
-One of these is that L<IPC::Run3> incorrectly throws an exception on Windows 
when
-you feed it a Perl script with a compile error.  Currently L<Test::Script> 
probes
-for this bug (it checks for the bug, not for a specific version) and applies a
-workaround in that case.  I am hoping to remove the work around once the bug is
-fixed in L<IPC::Run3>.
+This module is fully supported back to Perl 5.8.1.  In the near future, support
+for the older pre-Test2 Test::Builer will be dropped.
+
+The STDIN handle will be closed when using script_runs with the stdin option.
+An older version used L<IPC::Run3>, which attempted to save STDIN, but
+apparently this cannot be done consistently or portably.  We now use
+L<Capture::Tiny> instead and explicitly do not support saving STDIN handles.
 
 =head1 SEE ALSO
 
@@ -547,7 +554,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2006 by Adam Kennedy.
+This software is copyright (c) 2017 by Adam Kennedy.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/run_test.pl 
new/Test-Script-1.20/run_test.pl
--- old/Test-Script-1.18/run_test.pl    2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/run_test.pl    2017-07-13 17:17:45.000000000 +0200
@@ -7,7 +7,7 @@
 
 my $test2 = eval {
   require Test2;
-  require Test2::Suite;
+  require Test2::V0;
   require Test::Builder;
   Test::Builder->can('context');
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/00_diag.t 
new/Test-Script-1.20/t/00_diag.t
--- old/Test-Script-1.18/t/00_diag.t    2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t/00_diag.t    2017-07-13 17:17:45.000000000 +0200
@@ -10,25 +10,18 @@
 my $post_diag;
 
 $modules{$_} = $_ for qw(
+  Capture::Tiny
   ExtUtils::MakeMaker
   File::Spec
-  IPC::Run3
+  IO::Handle
   Probe::Perl
   Test::Builder
   Test::Builder::Tester
   Test::More
   Test::Tester
 );
+eval q{ require Test::Tester; };
 
-$post_diag = sub
-{
-  eval {
-    require Test::Script;
-    diag "probing IPC::Run3 for rt94685 rt46333 rt95308 gh#9";
-    diag "IPC::Run3 is ", Test::Script::_borked_ipc_run3() ? 'borked' : 'good';
-    1;
-  } || diag "eval failed: $@";
-};
 
 my @modules = sort keys %modules;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/06_exception.t 
new/Test-Script-1.20/t/06_exception.t
--- old/Test-Script-1.18/t/06_exception.t       2017-04-12 13:01:18.000000000 
+0200
+++ new/Test-Script-1.20/t/06_exception.t       2017-07-13 17:17:45.000000000 
+0200
@@ -3,9 +3,6 @@
 use Test::Tester;
 use Test::More tests => 2;
 use Test::Script;
-use IPC::Run3 ();
-
-do { no warnings; sub IPC::Run3::run3 { die "an exception" } };
 
 subtest script_compiles => sub {
 
@@ -30,7 +27,7 @@
       name => 'Script t/bin/missing.pl runs',
     },
   );
-  
+
   note $result->{diag};
 
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/07_signal.t 
new/Test-Script-1.20/t/07_signal.t
--- old/Test-Script-1.18/t/07_signal.t  2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t/07_signal.t  2017-07-13 17:17:45.000000000 +0200
@@ -25,7 +25,7 @@
       ok => 0,
     },
   );
-  
+
   note $r->{diag};
 
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/09_capture_output.t 
new/Test-Script-1.20/t/09_capture_output.t
--- old/Test-Script-1.18/t/09_capture_output.t  2017-04-12 13:01:18.000000000 
+0200
+++ new/Test-Script-1.20/t/09_capture_output.t  2017-07-13 17:17:45.000000000 
+0200
@@ -40,7 +40,7 @@
       },
       'script_stdout_is',
     );
-    note $r->{diag};    
+    note $r->{diag};
   };
 
   subtest 'not isnt' => sub {
@@ -52,7 +52,7 @@
       },
       'script_stdout_isnt',
     );
-    note $r->{diag};    
+    note $r->{diag};
   };
 
   subtest 'like' => sub {
@@ -65,7 +65,7 @@
       },
       'script_stdout_like',
     );
-    
+
   };
 
   subtest 'not like' => sub {
@@ -79,8 +79,8 @@
       'script_stdout_like',
     );
 
-    note $r->{diag};    
-    
+    note $r->{diag};
+
   };
 
   subtest 'unlike' => sub {
@@ -93,7 +93,7 @@
       },
       'script_stdout_unlike',
     );
-    
+
   };
 
   subtest 'not unlike' => sub {
@@ -106,8 +106,8 @@
       },
       'script_stdout_unlike',
     );
-    
-    note $r->{diag};    
+
+    note $r->{diag};
   };
 
 };
@@ -146,7 +146,7 @@
       },
       'script_stderr_is',
     );
-    note $r->{diag};    
+    note $r->{diag};
   };
 
   subtest 'not isnt' => sub {
@@ -158,7 +158,7 @@
       },
       'script_stderr_isnt',
     );
-    note $r->{diag};    
+    note $r->{diag};
   };
 
   subtest 'like' => sub {
@@ -171,7 +171,7 @@
       },
       'script_stderr_like',
     );
-    
+
   };
 
   subtest 'not like' => sub {
@@ -185,8 +185,8 @@
       'script_stderr_like',
     );
 
-    note $r->{diag};    
-    
+    note $r->{diag};
+
   };
 
   subtest 'unlike' => sub {
@@ -199,7 +199,7 @@
       },
       'script_stderr_unlike',
     );
-    
+
   };
 
   subtest 'not unlike' => sub {
@@ -212,8 +212,8 @@
       },
       'script_stderr_unlike',
     );
-    
-    note $r->{diag};    
+
+    note $r->{diag};
   };
 
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/bin/stdin.pl 
new/Test-Script-1.20/t/bin/stdin.pl
--- old/Test-Script-1.18/t/bin/stdin.pl 1970-01-01 01:00:00.000000000 +0100
+++ new/Test-Script-1.20/t/bin/stdin.pl 2017-07-13 17:17:45.000000000 +0200
@@ -0,0 +1,11 @@
+#!perl
+
+use strict;
+
+while(<STDIN>)
+{
+  s/oo/bb/g;
+  print;
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t/bin/stdin.txt 
new/Test-Script-1.20/t/bin/stdin.txt
--- old/Test-Script-1.18/t/bin/stdin.txt        1970-01-01 01:00:00.000000000 
+0100
+++ new/Test-Script-1.20/t/bin/stdin.txt        2017-07-13 17:17:45.000000000 
+0200
@@ -0,0 +1 @@
+foobaz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t2/bug_gh9.t 
new/Test-Script-1.20/t2/bug_gh9.t
--- old/Test-Script-1.18/t2/bug_gh9.t   2017-04-12 13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t2/bug_gh9.t   2017-07-13 17:17:45.000000000 +0200
@@ -1,12 +1,12 @@
-use Test2::Bundle::Extended;
+use Test2::V0;
 use Test::Script;
 
 subtest 'non-distructive' => sub {
 
   my @foo = qw( foo bar baz );
-  
+
   my $bar = Test::Script::_script \@foo;
-  
+
   is(
     $bar,
     [qw( foo bar baz )],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t2/test_script__import.t 
new/Test-Script-1.20/t2/test_script__import.t
--- old/Test-Script-1.18/t2/test_script__import.t       2017-04-12 
13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t2/test_script__import.t       2017-07-13 
17:17:45.000000000 +0200
@@ -1,4 +1,4 @@
-use Test2::Bundle::Extended;
+use Test2::V0;
 use Test::Script ();
 
 is(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t2/test_script__script_compiles.t 
new/Test-Script-1.20/t2/test_script__script_compiles.t
--- old/Test-Script-1.18/t2/test_script__script_compiles.t      2017-04-12 
13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t2/test_script__script_compiles.t      2017-07-13 
17:17:45.000000000 +0200
@@ -1,118 +1,151 @@
-use strict;
-use warnings;
-use Test2::Bundle::Extended;
+use Test2::V0;
 use Test::Script;
 use File::Spec;
 use File::Temp qw( tempdir );
+use Data::Dumper qw( Dumper );
+  
 
 # the first subtest replaces t/02_compiles_good.t
 
 subtest 'good' => sub {
 
-  my $rv;
-  is(
-    intercept { $rv = script_compiles 't/bin/good.pl' },
-    array {
-      event Ok => sub {
-        call pass => T();
-        call name => 'Script t/bin/good.pl compiles';
-      };
-      end;
-    },
-    'script_compiles t/bin/good.pl',
-  );
-
-  is $rv, T(), 'script_compiles_ok returns true as convenience';
-
-  is(
-    intercept { $rv = script_compiles 't/bin/good.pl', 'It worked' },
-    array {
-      event Ok => sub {
-        call pass => T();
-        call name => 'It worked';
-      };
-      end;
-    },
-    'script_compiles t/bin/good.pl It worked',
-  );
+  subtest 'default name' => sub {
+
+    my $events;
+    my $rv;
+    is(
+      $events = intercept { $rv = script_compiles 't/bin/good.pl' },
+      array {
+        event Ok => sub {
+          call pass => T();
+          call name => 'Script t/bin/good.pl compiles';
+        };
+        end;
+      },
+      'script_compiles t/bin/good.pl',
+    );
+    
+    diag Dumper($events) unless $rv;
+
+    is $rv, T(), 'script_compiles_ok returns true as convenience';
+  };
+
+  subtest 'with different name' => sub {
   
-  is $rv, T(), 'script_compiles_ok returns true as convenience';
+    my $events;
+    my $rv;
+
+    is(
+      $events = intercept { $rv = script_compiles 't/bin/good.pl', 'It worked' 
},
+      array {
+        event Ok => sub {
+          call pass => T();
+          call name => 'It worked';
+        };
+        end;
+      },
+      'script_compiles t/bin/good.pl It worked',
+    );
+
+    diag Dumper($events) unless $rv;
+
+    is $rv, T(), 'script_compiles_ok returns true as convenience';
+  };
+
 };
 
 # second subtest replaces t/03_compiles_bad.t
 
 subtest 'bad' => sub {
 
-  my $rv;
   my $bad = File::Spec->catfile(qw( t bin bad.pl ));
   ok -f $bad, 'found bad script';
 
-  is(
-    intercept { $rv = script_compiles 't/bin/bad.pl' },
-    array {
-      event Ok => sub {
-        call pass => F();
-        call name => 'Script t/bin/bad.pl compiles';
-      };
-      event Diag => sub {
-        # generated by TB / T2
-      };
-      event Diag => sub {
-        # generated by TB / T2
-      };
-      event Diag => sub {
-        call message => match qr{\d+ - (?:Using.*\n# )?Bad at \Q$bad\E line 
4\.\n};
-        call message => match qr{BEGIN failed--compilation aborted at \Q$bad\E 
line 5.};
-      };
-      end;
-    },
-    'script_compiles t/bin/bad.pl',
-  );
-
-  is $rv, F(), 'script_compiles_ok returns false as convenience';
-
-  is(
-    intercept { $rv = script_compiles 't/bin/bad.pl', 'It worked' },
-    array {
-      event Ok => sub {
-        call pass => F();
-        call name => 'It worked';
-      };
-      event Diag => sub {
-        # generated by TB / T2
-      };
-      event Diag => sub {
-        # generated by TB / T2
-      };
-      event Diag => sub {
-        call message => match qr{\d+ - (?:Using.*\n# )?Bad at \Q$bad\E line 
4\.\n};
-        call message => match qr{BEGIN failed--compilation aborted at \Q$bad\E 
line 5\.};
-      };
-      end;
-    },
-    'script_compiles t/bin/bad.pl It worked',
-  );
+  subtest 'default name' => sub {
+
+    my $rv;
+    my $events;
+
+    my $rv2 = is(
+      $events = intercept { $rv = script_compiles 't/bin/bad.pl' },
+      array {
+        event Ok => sub {
+          call pass => F();
+          call name => 'Script t/bin/bad.pl compiles';
+        };
+        event Diag => sub {
+          # generated by TB / T2
+        };
+        event Diag => sub {
+          # generated by TB / T2
+        };
+        event Diag => sub {
+          call message => match qr{\d+ - (?:Using.*\n# )?Bad at \Q$bad\E line 
4\.\n};
+          call message => match qr{BEGIN failed--compilation aborted at 
\Q$bad\E line 5.};
+        };
+        end;
+      },
+      'script_compiles t/bin/bad.pl',
+    );
+
+    diag Dumper($events) unless $rv2;
+
+    is $rv, F(), 'script_compiles_ok returns false as convenience';
+    
+  };
 
-  is $rv, F(), 'script_compiles_ok returns false as convenience';
+  subtest 'custom name' => sub {
+  
+    my $rv;
+    my $events;
+    
+    my $rv2 = is(
+      $events = intercept { $rv = script_compiles 't/bin/bad.pl', 'It worked' 
},
+      array {
+        event Ok => sub {
+          call pass => F();
+          call name => 'It worked';
+        };
+        event Diag => sub {
+          # generated by TB / T2
+        };
+        event Diag => sub {
+          # generated by TB / T2
+        };
+        event Diag => sub {
+          call message => match qr{\d+ - (?:Using.*\n# )?Bad at \Q$bad\E line 
4\.\n};
+          call message => match qr{BEGIN failed--compilation aborted at 
\Q$bad\E line 5\.};
+        };
+        end;
+      },
+      'script_compiles t/bin/bad.pl It worked',
+    );
+
+    diag Dumper($events) unless $rv2;
+
+    is $rv, F(), 'script_compiles_ok returns false as convenience';
+    
+  };
 
 };
 
 subtest 'unreasonable number of libs' => sub {
 
   skip_all 'developer only test' unless $ENV{TEST_SCRIPT_DEV_TEST};
-  
+
   local @INC = @INC;
-  
+
   my $dir = tempdir( CLEANUP => 1 );
-  
+
   for(map { File::Spec->catfile($dir, $_) } 1..1000000)
   {
     #mkdir;
     push @INC, $_;
   }
-  
+
   script_compiles 't/bin/good.pl';
 
 };
 
 done_testing;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Script-1.18/t2/test_script__script_runs.t 
new/Test-Script-1.20/t2/test_script__script_runs.t
--- old/Test-Script-1.18/t2/test_script__script_runs.t  2017-04-12 
13:01:18.000000000 +0200
+++ new/Test-Script-1.20/t2/test_script__script_runs.t  2017-07-13 
17:17:45.000000000 +0200
@@ -1,89 +1,120 @@
-use strict;
-use warnings;
-use Test2::Bundle::Extended;
+use Test2::V0;
 use Test::Script;
 use File::Temp qw( tempdir );
+use Data::Dumper qw( Dumper );
 
 # the first subtest replaces t/04_runs_good.t
 
 subtest 'good' => sub {
 
-  my $rv;
-  
-  is(
-    intercept { $rv = script_runs 't/bin/good.pl' },
-    array {
-      event Ok => sub {
-        call pass => T();
-        call name => 'Script t/bin/good.pl runs';
-      };
-      end;
-    },
-    'script_runs t/bin/good.pl',
-  );
-  
-  is $rv, T(), 'script_compiles_ok returns true as convenience';
+  subtest 'default name' => sub {
+
+    my $rv;
+    my $events;
+
+    is(
+      $events = intercept { $rv = script_runs 't/bin/good.pl' },
+      array {
+        event Ok => sub {
+          call pass => T();
+          call name => 'Script t/bin/good.pl runs';
+        };
+        end;
+      },
+      'script_runs t/bin/good.pl',
+    );
+    
+    diag Dumper($events) unless $rv;
+
+    is $rv, T(), 'script_compiles_ok returns true as convenience';
+
+  };
+
+  subtest 'custom name' => sub {
+
+    my $rv;
+    my $events;
+
+    is(
+      $events = intercept { $rv = script_runs 't/bin/good.pl', 'It worked' },
+      array {
+        event Ok => sub {
+          call pass => T();
+          call name => 'It worked';
+        };
+        end;
+      },
+      'script_runs t/bin/good.pl It worked',
+    );
+
+    diag Dumper($events) unless $rv;
+
+    is $rv, T(), 'script_compiles_ok returns true as convenience';
+    
+  };
+
 
-  is(
-    intercept { $rv = script_runs 't/bin/good.pl', 'It worked' },
-    array {
-      event Ok => sub {
-        call pass => T();
-        call name => 'It worked';
-      };
-      end;
-    },
-    'script_runs t/bin/good.pl It worked',
-  );
-  
-  is $rv, T(), 'script_compiles_ok returns true as convenience';
-  
-  
 };
 
-subtest 'good' => sub {
+subtest 'bad: returns 4' => sub {
+
+  subtest 'default name' => sub {
+
+    my $rv;
+    my $events;
+
+    my $rv2 = is(
+      $events = intercept { $rv = script_runs 't/bin/four.pl' },
+      array {
+        event Ok => sub {
+          call pass => F();
+          call name => 'Script t/bin/four.pl runs';
+        };
+        event Diag => sub {};
+        event Diag => sub {};
+        event Diag => sub {
+          call message => match qr{4 - (?:Using.*\n# )?Standard Error\n};
+        };
+        end;
+      },
+      'script_runs t/bin/good.pl',
+    );
+
+    diag Dumper($events) unless $rv2;
+
+    is $rv, F(), 'script_compiles_ok returns false as convenience';
+    
+  };
+  
+  subtest 'custom name' => sub {
+
+    my $rv;
+    my $events;
+
+    my $rv2 = is(
+      $events = intercept { $rv = script_runs 't/bin/four.pl', 'It worked' },
+      array {
+        event Ok => sub {
+          call pass => F();
+          call name => 'It worked';
+        };
+        event Diag => sub {};
+        event Diag => sub {};
+        event Diag => sub {
+          call message => match qr{4 - (?:Using.*\n# )?Standard Error\n};
+        };
+        end;
+      },
+      'script_runs t/bin/good.pl It worked',
+    );
+
+    diag Dumper($events) unless $rv2;
+
+    is $rv, F(), 'script_compiles_ok returns false as convenience';
+    
+  };
 
-  my $rv;
-  
-  is(
-    intercept { $rv = script_runs 't/bin/four.pl' },
-    array {
-      event Ok => sub {
-        call pass => F();
-        call name => 'Script t/bin/four.pl runs';
-      };
-      event Diag => sub {};
-      event Diag => sub {};
-      event Diag => sub {
-        call message => match qr{4 - (?:Using.*\n# )?Standard Error\n};
-      };
-      end;
-    },
-    'script_runs t/bin/good.pl',
-  );
-  
-  is $rv, F(), 'script_compiles_ok returns false as convenience';
 
-  is(
-    intercept { $rv = script_runs 't/bin/four.pl', 'It worked' },
-    array {
-      event Ok => sub {
-        call pass => F();
-        call name => 'It worked';
-      };
-      event Diag => sub {};
-      event Diag => sub {};
-      event Diag => sub {
-        call message => match qr{4 - (?:Using.*\n# )?Standard Error\n};
-      };
-      end;
-    },
-    'script_runs t/bin/good.pl It worked',
-  );
-  
-  is $rv, F(), 'script_compiles_ok returns false as convenience';
-  
-  
 };
 
 subtest 'unreasonable number of libs' => sub {
@@ -97,9 +128,31 @@
     #mkdir;
     push @INC, $_;
   }
-  
+
   script_runs 't/bin/good.pl';
 
 };
 
+subtest 'stdin' => sub {
+
+  script_compiles 't/bin/stdin.pl';
+
+  # see https://github.com/plicease/Test-Script/issues/23
+
+  subtest 'filename' => sub {
+
+    script_runs     't/bin/stdin.pl', { stdin => 't/bin/stdin.txt' };
+    script_stdout_like qr{fbbbaz};
+  
+  };
+
+  subtest 'scalar ref' => sub {
+
+    script_runs     't/bin/stdin.pl', { stdin => \'helloooo there' };
+    script_stdout_like qr{hellbbbb there};
+  
+  };
+  
+};
+
 done_testing;


Reply via email to