Add ARM files
[dh-make-perl] / dev / arm / libtest-harness-perl / libtest-harness-perl-3.12 / t / nofork.t
diff --git a/dev/arm/libtest-harness-perl/libtest-harness-perl-3.12/t/nofork.t b/dev/arm/libtest-harness-perl/libtest-harness-perl-3.12/t/nofork.t
new file mode 100755 (executable)
index 0000000..6a45e50
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -w
+
+# check nofork logic on systems which *can* fork()
+# NOTE maybe a good candidate for xt/author or something.
+
+BEGIN {
+    if ( $ENV{PERL_CORE} ) {
+        chdir 't';
+        @INC = ( '../lib', 'lib' );
+    }
+    else {
+        use lib 't/lib';
+    }
+}
+
+use strict;
+
+use Config;
+use Test::More (
+    $Config{d_fork}
+    ? 'no_plan'
+    : ( 'skip_all' => 'your system already has no fork' )
+);
+use IO::c55Capture;    # for util
+
+use TAP::Harness;
+
+sub backticks {
+    my (@args) = @_;
+
+    util::stdout_of( sub { system(@args) and die "error $?" } );
+}
+
+my @libs = map "-I$_", @INC;
+my @perl = ( $^X, @libs );
+my $mod = 'TAP::Parser::Iterator::Process';
+
+{    # just check the introspective method to start...
+    my $code = qq(print $mod->_use_open3 ? 1 : 2);
+    {
+        my $ans = backticks( @perl, '-MNoFork', "-M$mod", '-e', $code );
+        is( $ans, 2, 'says not to fork' );
+    }
+    {
+        local $ENV{PERL5OPT};    # punt: prevent propogating -MNoFork
+        my $ans = backticks( @perl, "-M$mod", '-e', $code );
+        is( $ans, 1, 'says to fork' );
+    }
+}
+
+{                                # and make sure we can run a test
+    my $capture = IO::c55Capture->new_handle;
+    local *STDERR;
+    my $harness = TAP::Harness->new(
+        {   verbosity => -2,
+            switches  => [ @libs, "-MNoFork" ],
+            stdout    => $capture,
+        }
+    );
+    $harness->runtests(
+        ( $ENV{PERL_CORE} ? 'lib' : 't' ) . '/sample-tests/simple' );
+    my @output = tied($$capture)->dump;
+    is pop @output, "Result: PASS\n", 'status OK';
+    pop @output;    # get rid of summary line
+    is( $output[-1], "All tests successful.\n", 'ran with no fork' );
+}
+
+# vim:ts=4:sw=4:et:sta