summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/perl/t/lib/filehand.t
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/perl/t/lib/filehand.t')
-rw-r--r--gnu/usr.bin/perl/t/lib/filehand.t35
1 files changed, 35 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/t/lib/filehand.t b/gnu/usr.bin/perl/t/lib/filehand.t
new file mode 100644
index 00000000000..fc433502126
--- /dev/null
+++ b/gnu/usr.bin/perl/t/lib/filehand.t
@@ -0,0 +1,35 @@
+#!./perl
+
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = '../lib';
+ require Config; import Config;
+ if ($Config{'extensions'} !~ /\bFileHandle\b/ && $^O ne 'VMS') {
+ print "1..0\n";
+ exit 0;
+ }
+}
+
+use FileHandle;
+use strict subs;
+
+$mystdout = new_from_fd FileHandle 1,"w";
+autoflush STDOUT;
+autoflush $mystdout;
+print "1..4\n";
+
+print $mystdout "ok ",fileno($mystdout),"\n";
+
+$fh = new FileHandle "TEST", O_RDONLY and print "ok 2\n";
+$buffer = <$fh>;
+print $buffer eq "#!./perl\n" ? "ok 3\n" : "not ok 3\n";
+
+if ($^O eq 'VMS') {
+ ungetc $fh 65;
+ CORE::read($fh, $buf,1);
+}
+else {
+ ungetc STDIN 65;
+ CORE::read(STDIN, $buf,1);
+}
+print $buf eq 'A' ? "ok 4\n" : "not ok 4\n";