Commit | Line | Data |
635c7876 |
1 | ##!/usr/local/bin/perl -w |
2 | |
3f23e2e2 |
3 | use lib qw(t) ; |
3f23e2e2 |
4 | use strict ; |
8ed110f9 |
5 | use driver ; |
635c7876 |
6 | |
8ed110f9 |
7 | use File::Slurp qw( :all ) ; |
635c7876 |
8 | |
3f23e2e2 |
9 | my $file_name = 'test_file' ; |
10 | my $dir_name = 'test_dir' ; |
635c7876 |
11 | |
3f23e2e2 |
12 | my $tests = [ |
635c7876 |
13 | |
3f23e2e2 |
14 | { |
15 | name => 'read_file open error', |
16 | sub => \&read_file, |
17 | args => [ $file_name ], |
635c7876 |
18 | |
3f23e2e2 |
19 | error => qr/open/, |
8ed110f9 |
20 | |
21 | skip => 1, |
3f23e2e2 |
22 | }, |
635c7876 |
23 | |
3f23e2e2 |
24 | { |
25 | name => 'write_file open error', |
26 | sub => \&write_file, |
27 | args => [ "$dir_name/$file_name", '' ], |
28 | pretest => sub { |
29 | mkdir $dir_name ; |
30 | chmod( 0555, $dir_name ) ; |
31 | }, |
635c7876 |
32 | |
3f23e2e2 |
33 | posttest => sub { |
635c7876 |
34 | |
3f23e2e2 |
35 | chmod( 0777, $dir_name ) ; |
36 | rmdir $dir_name ; |
37 | }, |
635c7876 |
38 | |
3f23e2e2 |
39 | error => qr/open/, |
8ed110f9 |
40 | skip => 1, |
41 | }, |
42 | |
43 | { |
44 | name => 'write_file syswrite error', |
45 | sub => \&write_file, |
46 | args => [ $file_name, '' ], |
47 | override => 'syswrite', |
48 | |
49 | posttest => sub { |
50 | unlink( $file_name ) ; |
51 | }, |
52 | |
53 | |
54 | error => qr/write/, |
55 | skip => 1, |
56 | }, |
57 | |
58 | { |
59 | name => 'read_file small sysread error', |
60 | sub => \&read_file, |
61 | args => [ $file_name ], |
62 | override => 'sysread', |
63 | |
64 | pretest => sub { |
65 | write_file( $file_name, '' ) ; |
66 | }, |
67 | |
68 | posttest => sub { |
69 | unlink( $file_name ) ; |
70 | }, |
71 | |
72 | |
73 | error => qr/read/, |
74 | }, |
75 | |
76 | { |
77 | name => 'read_file loop sysread error', |
78 | sub => \&read_file, |
79 | args => [ $file_name ], |
80 | override => 'sysread', |
81 | |
82 | pretest => sub { |
83 | write_file( $file_name, 'x' x 100_000 ) ; |
84 | }, |
85 | |
86 | posttest => sub { |
87 | unlink( $file_name ) ; |
88 | }, |
89 | |
90 | |
91 | error => qr/read/, |
3f23e2e2 |
92 | }, |
635c7876 |
93 | |
3f23e2e2 |
94 | { |
95 | name => 'atomic rename error', |
96 | sub => \&write_file, |
97 | args => [ "$dir_name/$file_name", { atomic => 1 }, '' ], |
98 | pretest => sub { |
99 | mkdir $dir_name ; |
100 | write_file( "$dir_name/$file_name.$$", '' ) ; |
101 | chmod( 0555, $dir_name ) ; |
102 | }, |
635c7876 |
103 | |
3f23e2e2 |
104 | posttest => sub { |
635c7876 |
105 | |
3f23e2e2 |
106 | chmod( 0777, $dir_name ) ; |
107 | unlink( "$dir_name/$file_name.$$" ) ; |
108 | rmdir $dir_name ; |
109 | }, |
635c7876 |
110 | |
3f23e2e2 |
111 | error => qr/rename/, |
8ed110f9 |
112 | skip => 1, |
3f23e2e2 |
113 | }, |
635c7876 |
114 | |
3f23e2e2 |
115 | { |
8ed110f9 |
116 | name => 'read_dir opendir error', |
3f23e2e2 |
117 | sub => \&read_dir, |
118 | args => [ $dir_name ], |
635c7876 |
119 | |
3f23e2e2 |
120 | error => qr/open/, |
8ed110f9 |
121 | skip => 1, |
3f23e2e2 |
122 | }, |
3f23e2e2 |
123 | ] ; |
635c7876 |
124 | |
8ed110f9 |
125 | test_driver( $tests ) ; |
635c7876 |
126 | |
3f23e2e2 |
127 | exit ; |
635c7876 |
128 | |