| Revision: | 1.7 |
| Committed: | Sun Jul 17 04:20:04 2011 UTC (15 years, 2 months ago) by root |
| Content type: | application/x-troff |
| Branch: | MAIN |
| CVS Tags: | rel-4_81, rel-4_80, rel-4_17, rel-4_14, rel-4_15, rel-4_12, rel-4_11, rel-4_18, rel-4_19, rel-4_4, rel-4_5, rel-4_6, rel-4_7, rel-4_0, rel-4_1, rel-4_2, rel-4_3, rel-4_78, rel-4_79, rel-4_74, rel-4_75, rel-4_76, rel-4_77, rel-4_71, rel-4_72, rel-4_73, rel-4_52, rel-4_53, rel-4_51, rel-4_54, rel-4_34, rel-4_31, rel-4_32, rel-4_33, HEAD |
| Changes since 1.6: | +1 -1 lines |
| Log Message: | initial windows support |
| # | Content |
|---|---|
| 1 | #!/usr/bin/perl |
| 2 | |
| 3 | use Fcntl; |
| 4 | use Test; |
| 5 | use POSIX qw(ENOENT EACCES EBADF); |
| 6 | use FindBin; |
| 7 | use lib "$FindBin::Bin"; |
| 8 | use aio_test_common; |
| 9 | |
| 10 | BEGIN { plan tests => 12 } |
| 11 | |
| 12 | IO::AIO::min_parallel 2; |
| 13 | |
| 14 | my $tempdir = tempdir(); |
| 15 | |
| 16 | my $some_dir = "$tempdir/some_dir"; |
| 17 | my $some_file = "$some_dir/some_file"; |
| 18 | my $some_link = "$some_dir/some_link"; |
| 19 | |
| 20 | # create a file in a non-existent directory |
| 21 | aio_open $some_file, O_RDWR|O_CREAT|O_TRUNC, 0, sub { |
| 22 | ok((!defined $_[0]) && $! == ENOENT); |
| 23 | }; |
| 24 | pcb; |
| 25 | |
| 26 | # now actually make that file |
| 27 | ok(mkdir $some_dir); |
| 28 | aio_open $some_file, O_RDWR|O_CREAT|O_TRUNC, 0644, sub { |
| 29 | my $fh = shift; |
| 30 | ok(defined $fh); |
| 31 | print $fh "contents."; |
| 32 | ok(-e $some_file); |
| 33 | close $fh; |
| 34 | }; |
| 35 | pcb; |
| 36 | |
| 37 | # test error on unlinking nonexistent file |
| 38 | aio_unlink "$some_dir/notfound.txt", sub { |
| 39 | ok($_[0] < 0); |
| 40 | ok($! == ENOENT); |
| 41 | }; |
| 42 | pcb; |
| 43 | |
| 44 | # write to file open for reading |
| 45 | ok(open(F, $some_file)) or die $!; |
| 46 | eval { aio_write *F, 0, 10, "foobarbaz.", 0, sub { ok (0) } }; |
| 47 | ok ($@ =~ /mode mismatch/); |
| 48 | pcb; |
| 49 | |
| 50 | close F; |
| 51 | |
| 52 | aio_symlink "\\test\\", $some_link, sub { |
| 53 | if ($^O eq "cygwin" or $^O eq "MSWin32") { |
| 54 | ok (1); |
| 55 | ok (1); |
| 56 | } else { |
| 57 | ok (!$_[0]); |
| 58 | ok ("\\test\\" eq readlink $some_link); |
| 59 | } |
| 60 | }; |
| 61 | pcb; |
| 62 | unlink $some_link; |
| 63 | |
| 64 | # test unlinking and rmdir |
| 65 | aio_unlink $some_file, sub { |
| 66 | ok (!shift); |
| 67 | }; |
| 68 | pcb; |
| 69 | aio_rmdir $some_dir, sub { |
| 70 | ok (!shift); |
| 71 | }; |
| 72 | pcb; |
| 73 | |
| 74 | |
| 75 |