This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
968b3f516d6466f07b87eb8d39c9bced3a1864d3
[perl5.git] / dist / IO / t / io_xs.t
1 #!./perl
2
3 use Config;
4
5 BEGIN {
6     if($ENV{PERL_CORE}) {
7         if ($Config{'extensions'} !~ /\bIO\b/) {
8             print "1..0 # Skip: IO extension not built\n";
9             exit 0;
10         }
11     }
12     if( $^O eq 'VMS' && $Config{'vms_cc_type'} ne 'decc' ) {
13         print "1..0 # Skip: not compatible with the VAXCRTL\n";
14         exit 0;
15     }
16 }
17
18 use Test::More tests => 5;
19 use IO::File;
20 use IO::Seekable;
21
22 $x = new_tmpfile IO::File;
23 ok($x, "new_tmpfile");
24 print $x "ok 2\n";
25 $x->seek(0,SEEK_SET);
26 my $line = <$x>;
27 is($line, "ok 2\n", "check we can write to the tempfile");
28
29 $x->seek(0,SEEK_SET);
30 print $x "not ok 3\n";
31 $p = $x->getpos;
32 print $x "ok 3\n";
33 $x->flush;
34 $x->setpos($p);
35 $line = <$x>;
36 is($line, "ok 3\n", "test getpos/setpos");
37
38 $! = 0;
39 $x->setpos(undef);
40 ok($!, "setpos(undef) makes errno non-zero");
41
42 SKIP:
43 {
44     $^O eq "MSWin32"
45         and skip "directory sync doesn't apply to MSWin32", 1;
46     open my $dh, "<", "."
47         or skip "Cannot open the cwd", 1;
48     ok($dh->sync, "sync to a read only directory handle");
49 }