--- t/fs.t 2007/07/09 13:04:25 14 +++ t/fs.t 2007/07/09 13:33:13 15 @@ -4,7 +4,7 @@ my $debug = shift @ARGV; -use Test::More tests => 254; +use Test::More tests => 710; use File::Slurp; use IO::File; @@ -63,10 +63,13 @@ ok( -e "$tmp/$path" , "in tmp $tmp/$path" ) if ( $op eq '<' ); # check total size if not append if ( $op ne '>>' ) { - cmp_ok( -s "$tmp/$path", '==', $size, "$tmp/$path = $size bytes" ); + cmp_ok( -s $pack, '==', $size, "$tmp/$path = $size bytes" ); } } else { ok( -e "$from/$path", "on disk $from/$path" ); + my $curr_size = -s "$from/$path"; + diag "$op curr_size: $curr_size size: $size"; + $size += $curr_size if ( $op eq '>>' ); cmp_ok( -s "$from/$path", '==', $size, "$from/$path = $size bytes" ); } @@ -92,8 +95,8 @@ file( '>', $file, '' ); file( '<', $file, '' ); -# file( '>', $file, $content ); -# file( '<', $file, $content ); + file( '>', $file, $content ); + file( '<', $file, $content ); } @@ -117,6 +120,33 @@ ok( close($fh2), 'close 2' ); dump_debug 'closed'; + my @sizes; + my $size = 65536; + while ( $size > 1 ) { + push @sizes, $size; + $size /= 2; + } + + foreach my $size ( @sizes ) { + ok( my $fh1 = IO::File->new("> $to/m"), 'open 1' ); + ok( truncate( $fh1, $size ), 'truncate' ); + dump_debug 'truncate'; + ok( close($fh1), 'close 1' ); + cmp_ok( -s "$to/m", '==', $size, "truncated to $size" ); + } + + + foreach my $size ( sort @sizes ) { + my $orig_size = -s "$to/m"; + ok( my $fh1 = IO::File->new(">> $to/m"), 'open 1' ); + ok( print($fh1 "x" x $size), "print $size bytes" ); + dump_debug 'append'; + ok( close($fh1), 'close 1' ); + my $expected_size = $size + $orig_size; + cmp_ok( -s "$to/m", '==', $expected_size, "appended upto $expected_size" ); + } + + } multiple_rw;