summaryrefslogtreecommitdiff
path: root/t/io/eintr.t
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2011-03-11 17:00:46 -0600
committerCraig A. Berry <craigberry@mac.com>2011-03-11 18:01:12 -0600
commitc81114d2b6e9ca2fa098dbdac89edfaca24540f9 (patch)
treef6889cf665ece7ce4303d854d1ff3671a7134345 /t/io/eintr.t
parent8567041cf58773c5e66c77659b993b81515bd622 (diff)
downloadperl-c81114d2b6e9ca2fa098dbdac89edfaca24540f9.tar.gz
Skip eintr.t on FreeBSD (see perl #85842 and #84688).
It appears that a larger PerlIO buffer combined with writing to a pipe triggers an alternate write mechanism in FreeBSD called a direct write, which is not interruptible by signals. That's somewhat speculative and has not been confirmed by someone with knowledge of FreeBSD internals, but we do know the test hangs, so it's best not to run it for now.
Diffstat (limited to 't/io/eintr.t')
-rw-r--r--t/io/eintr.t4
1 files changed, 3 insertions, 1 deletions
diff --git a/t/io/eintr.t b/t/io/eintr.t
index a1d996675f..dc93660ca7 100644
--- a/t/io/eintr.t
+++ b/t/io/eintr.t
@@ -42,8 +42,10 @@ if (exists $ENV{PERLIO} && $ENV{PERLIO} =~ /stdio/ ) {
# on Win32, alarm() won't interrupt the read/write call.
# Similar issues with VMS.
+# On FreeBSD, writes to pipes of 8192 bytes or more use a mechanism
+# that is not interruptible (see perl #85842 and #84688).
-if ($^O eq 'VMS' || $^O eq 'MSWin32' || $^O eq 'cygwin') {
+if ($^O eq 'VMS' || $^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'freebsd') {
skip_all('various portability issues');
exit 0;
}