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 | |
12 | my $file = 'slurp.data' ; |
13 | unlink $file ; |
14 | |
15 | my @text_data = ( |
16 | [], |
17 | [ 'a' x 8 ], |
18 | [ "\n" x 5 ], |
19 | [ map( "aaaaaaaa\n\n", 1 .. 3 ) ], |
20 | [ map( "aaaaaaaa\n\n", 1 .. 3 ), 'aaaaaaaa' ], |
21 | [ map( "aaaaaaaa" . ( "\n" x (2 + rand 3) ), 1 .. 100 ) ], |
22 | [ map( "aaaaaaaa" . ( "\n" x (2 + rand 3) ), 1 .. 100 ), 'aaaaaaaa' ], |
23 | [], |
24 | ) ; |
25 | |
26 | plan( tests => 3 * @text_data ) ; |
27 | |
28 | #print "# text slurp\n" ; |
29 | |
30 | foreach my $data ( @text_data ) { |
31 | |
32 | test_text_slurp( $data ) ; |
33 | } |
34 | |
35 | |
36 | unlink $file ; |
37 | |
38 | exit ; |
39 | |
40 | sub test_text_slurp { |
41 | |
42 | my( $data_ref ) = @_ ; |
43 | |
44 | my @data_lines = @{$data_ref} ; |
45 | my $data_text = join( '', @data_lines ) ; |
46 | |
47 | local( $/ ) = '' ; |
48 | |
49 | my $err = write_file( $file, $data_text ) ; |
50 | ok( $err, 'write_file - ' . length $data_text ) ; |
51 | |
52 | |
53 | my @array = read_file( $file ) ; |
54 | ok( eq_array( \@array, \@data_lines ), |
55 | 'array read_file - ' . length $data_text ) ; |
56 | |
57 | print "READ:\n", map( "[$_]\n", @array ), |
58 | "EXP:\n", map( "[$_]\n", @data_lines ) |
59 | unless eq_array( \@array, \@data_lines ) ; |
60 | |
61 | my $array_ref = read_file( $file, array_ref => 1 ) ; |
62 | ok( eq_array( $array_ref, \@data_lines ), |
63 | 'array ref read_file - ' . length $data_text ) ; |
64 | |
65 | return ; |
66 | } |