Commit | Line | Data |
635c7876 |
1 | ##!/usr/local/bin/perl -w |
2 | |
3f23e2e2 |
3 | use lib qw(t) ; |
635c7876 |
4 | |
3f23e2e2 |
5 | use strict ; |
6 | use File::Slurp qw( :all ) ; |
635c7876 |
7 | |
3f23e2e2 |
8 | use common ; |
635c7876 |
9 | |
3f23e2e2 |
10 | my $file_name = 'test_file' ; |
11 | my $dir_name = 'test_dir' ; |
635c7876 |
12 | |
3f23e2e2 |
13 | my $tests = [ |
635c7876 |
14 | |
3f23e2e2 |
15 | { |
16 | name => 'read_file open error', |
17 | sub => \&read_file, |
18 | args => [ $file_name ], |
635c7876 |
19 | |
3f23e2e2 |
20 | error => qr/open/, |
21 | }, |
635c7876 |
22 | |
3f23e2e2 |
23 | { |
24 | name => 'write_file open error', |
25 | sub => \&write_file, |
26 | args => [ "$dir_name/$file_name", '' ], |
27 | pretest => sub { |
28 | mkdir $dir_name ; |
29 | chmod( 0555, $dir_name ) ; |
30 | }, |
635c7876 |
31 | |
3f23e2e2 |
32 | posttest => sub { |
635c7876 |
33 | |
3f23e2e2 |
34 | chmod( 0777, $dir_name ) ; |
35 | rmdir $dir_name ; |
36 | }, |
635c7876 |
37 | |
3f23e2e2 |
38 | error => qr/open/, |
39 | }, |
635c7876 |
40 | |
3f23e2e2 |
41 | { |
42 | name => 'atomic rename error', |
43 | sub => \&write_file, |
44 | args => [ "$dir_name/$file_name", { atomic => 1 }, '' ], |
45 | pretest => sub { |
46 | mkdir $dir_name ; |
47 | write_file( "$dir_name/$file_name.$$", '' ) ; |
48 | chmod( 0555, $dir_name ) ; |
49 | }, |
635c7876 |
50 | |
3f23e2e2 |
51 | posttest => sub { |
635c7876 |
52 | |
3f23e2e2 |
53 | chmod( 0777, $dir_name ) ; |
54 | unlink( "$dir_name/$file_name.$$" ) ; |
55 | rmdir $dir_name ; |
56 | }, |
635c7876 |
57 | |
3f23e2e2 |
58 | error => qr/rename/, |
59 | }, |
635c7876 |
60 | |
3f23e2e2 |
61 | { |
62 | name => 'read_dir open error', |
63 | sub => \&read_dir, |
64 | args => [ $dir_name ], |
635c7876 |
65 | |
3f23e2e2 |
66 | error => qr/open/, |
67 | }, |
635c7876 |
68 | |
3f23e2e2 |
69 | ] ; |
635c7876 |
70 | |
3f23e2e2 |
71 | tester( $tests ) ; |
635c7876 |
72 | |
3f23e2e2 |
73 | exit ; |
635c7876 |
74 | |