summaryrefslogtreecommitdiff
path: root/t/win32/popen.t
diff options
context:
space:
mode:
Diffstat (limited to 't/win32/popen.t')
-rw-r--r--t/win32/popen.t27
1 files changed, 27 insertions, 0 deletions
diff --git a/t/win32/popen.t b/t/win32/popen.t
new file mode 100644
index 0000000000..eca0a1d67c
--- /dev/null
+++ b/t/win32/popen.t
@@ -0,0 +1,27 @@
+#!./perl
+
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = '../lib';
+ require "./test.pl";
+ require Config;
+ $Config::Config{d_pseudofork}
+ or skip_all("no psuedo-fork");
+ eval 'use Errno';
+ die $@ if $@ and !is_miniperl();
+}
+
+# [perl #77672] backticks capture text printed to stdout when working
+# with multiple threads on windows
+watchdog(20); # before the fix this would often lock up
+
+fresh_perl_like(<<'PERL', qr/\A[z\n]+\z/, {}, "popen and threads");
+if (!defined fork) { die "can't fork" }
+for(1..100) {
+ print "zzzzzzzzzzzzz\n";
+ my $r=`perl -v`;
+ print $r if($r=~/zzzzzzzzzzzzz/);
+}
+PERL
+
+done_testing();