summaryrefslogtreecommitdiff
path: root/dist/IO/t/io_xs.t
blob: a86ee7e0f103830857b03ab57461929d61d2b4ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!./perl

use Config;

BEGIN {
    if($ENV{PERL_CORE}) {
        if ($Config{'extensions'} !~ /\bIO\b/) {
	    print "1..0 # Skip: IO extension not built\n";
	    exit 0;
        }
    }
    if( $^O eq 'VMS' && $Config{'vms_cc_type'} ne 'decc' ) {
        print "1..0 # Skip: not compatible with the VAXCRTL\n";
        exit 0;
    }
}

use Test::More tests => 5;
use IO::File;
use IO::Seekable;

$x = new_tmpfile IO::File;
ok($x, "new_tmpfile");
print $x "ok 2\n";
$x->seek(0,SEEK_SET);
my $line = <$x>;
is($line, "ok 2\n", "check we can write to the tempfile");

$x->seek(0,SEEK_SET);
print $x "not ok 3\n";
$p = $x->getpos;
print $x "ok 3\n";
$x->flush;
$x->setpos($p);
$line = <$x>;
is($line, "ok 3\n", "test getpos/setpos");

$! = 0;
$x->setpos(undef);
ok($!, "setpos(undef) makes errno non-zero");

SKIP:
{
    $^O eq "MSWin32"
	and skip "directory sync doesn't apply to MSWin32", 1;
    open my $dh, "<", "."
	or skip "Cannot open the cwd", 1;
    local $TODO = "[perl #64772] IO::Handle->sync fails on an O_RDONLY descriptor";
    ok($dh->sync, "sync to a read only directory handle");
}