Commit | Line | Data |
635c7876 |
1 | ##!/usr/local/bin/perl -w |
2 | |
3 | use strict ; |
4 | |
5 | use Test::More ; |
6 | use Carp ; |
7 | |
8 | BEGIN{ |
9 | use_ok( 'File::Slurp', ) ; |
10 | } |
11 | use File::Slurp ; |
12 | |
13 | |
14 | my $file = 'missing/file' ; |
15 | unlink $file ; |
16 | |
17 | plan tests => 9 ; |
18 | |
19 | my %modes = ( |
20 | 'croak' => \&test_croak, |
21 | 'carp' => \&test_carp, |
22 | 'quiet' => \&test_quiet, |
23 | ) ; |
24 | |
25 | while( my( $mode, $sub ) = each %modes ) { |
26 | |
27 | $sub->( 'read_file', \&read_file, $file, err_mode => $mode ) ; |
28 | $sub->( 'write_file', \&write_file, $file, |
29 | { err_mode => $mode }, 'junk' ) ; |
30 | $sub->( 'read_dir', \&read_dir, $file, err_mode => $mode ) ; |
31 | } |
32 | |
33 | |
34 | sub test_croak { |
35 | |
36 | my ( $name, $sub, @args ) = @_ ; |
37 | |
38 | eval { |
39 | $sub->( @args ) ; |
40 | } ; |
41 | |
42 | ok( $@, "$name can croak" ) ; |
43 | } |
44 | |
45 | sub test_carp { |
46 | |
47 | my ( $name, $sub, @args ) = @_ ; |
48 | |
49 | local $SIG{__WARN__} = sub { ok( 1, "$name can carp" ) } ; |
50 | |
51 | $sub->( @args ) ; |
52 | } |
53 | |
54 | sub test_quiet { |
55 | |
56 | my ( $name, $sub, @args ) = @_ ; |
57 | |
58 | local $SIG{__WARN__} = sub { ok( 0, "$name can be quiet" ) } ; |
59 | |
60 | eval { |
61 | $sub->( @args ) ; |
62 | } ; |
63 | |
64 | ok( !$@, "$name can be quiet" ) ; |
65 | } |