#! perl $| = 1; BEGIN { print "1..35\n"; print "ok 1 # MODEL=$AnyEvent::IO::MODEL\n"; } use AnyEvent; use AnyEvent::IO qw(:DEFAULT :flags); BEGIN { print "ok 2 # MODEL=$AnyEvent::IO::MODEL\n"; } our $t = 3; sub t { my $ok = shift; my $f = "ae_" . shift; $f->(@_, my $cv = AE::cv); my @res = $cv->recv; print !@res != !$ok ? "not " : "", "ok ", $t++, " # $f (@_) = (@res)\n"; wantarray ? @res : $res[0] } our $TMP = "/tmp"; our $DIR = "$TMP/ae_io_testdir_$$~"; t 1, mkdir => $DIR, 0777 or do { print "Bail out! Cannot mkdir $DIR, skipping test.\n"; exit 0 }; t 0, mkdir => $DIR, 0777; ############################################################################# # create file my $fh = t 1, open => "$DIR/test", O_CREAT | O_EXCL | O_WRONLY, 0666; t 0, open => "$DIR/test", O_CREAT | O_EXCL | O_WRONLY, 0666; t 0, rmdir => $DIR; t 1, write => $fh, "test1"; t 1, write => $fh, "test2"; t 1, write => $fh, ""; t 1, stat => $fh; print -s _ != 10 ? "not " : "", "ok ", $t++, " # stat size\n"; t 1, close => $fh; t 1, stat => "$DIR/test"; print -s _ != 10 ? "not " : "", "ok ", $t++, " # stat size\n"; t 1, lstat => "$DIR/test"; print -s _ != 10 ? "not " : "", "ok ", $t++, " # lstat size\n"; t 1, rename => "$DIR/test", "$DIR/test2"; ############################################################################# # test dir t 0, readdir => "$DIR/nonexistent"; my $res = t 1, readdir => $DIR; print @$res != 1 ? "not " : "", "ok ", $t++, " # res count\n"; print $res->[0] ne "test2" ? "not " : "", "ok ", $t++, " # res data (@$res)\n"; ############################################################################# # test file $fh = t 1, open => "$DIR/test2", O_RDONLY, 0; print +(t 1, read => $fh, 6) ne "test1t" ? "not " : "", "ok ", $t++, " # read 6\n"; print +(t 1, read => $fh, 7) ne "est2" ? "not " : "", "ok ", $t++, " # read 7\n"; print +(t 1, read => $fh, 8) ne "" ? "not " : "", "ok ", $t++, " # read 8\n"; t 1, close => $fh; print +(t 1, load => "$DIR/test2") ne "test1test2" ? "not " : "", "ok ", $t++, " # load\n"; ############################################################################# # cleanup t 0, unlink => "$DIR/test"; t 1, unlink => "$DIR/test2"; t 1, rmdir => $DIR; 1