/[fuse-comp]/t/fs.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /t/fs.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by dpavlin, Mon Jul 9 10:35:02 2007 UTC revision 16 by dpavlin, Mon Jul 9 13:45:45 2007 UTC
# Line 4  use warnings; Line 4  use warnings;
4    
5  my $debug = shift @ARGV;  my $debug = shift @ARGV;
6    
7  use Test::More tests => 227;  use Test::More tests => 710;
8  use File::Slurp;  use File::Slurp;
9  use IO::File;  use IO::File;
10    
# Line 21  sub dump_debug { Line 21  sub dump_debug {
21          ok( open(my $d, '<', "$to/.debug"), 'open debug' );          ok( open(my $d, '<', "$to/.debug"), 'open debug' );
22          local $/;          local $/;
23          my $dump = <$d>;          my $dump = <$d>;
24          diag "DEBUG: $msg\n$dump\n";          diag "DEBUG: $msg\n$dump\n" if $debug;
25          ok( close($d), 'close debug' );          ok( close($d), 'close debug' );
26  }  }
27    
# Line 63  sub file { Line 63  sub file {
63                  ok( -e "$tmp/$path" , "in tmp $tmp/$path" ) if ( $op eq '<' );                  ok( -e "$tmp/$path" , "in tmp $tmp/$path" ) if ( $op eq '<' );
64                  # check total size if not append                  # check total size if not append
65                  if ( $op ne '>>' ) {                  if ( $op ne '>>' ) {
66                          cmp_ok( -s "$tmp/$path", '==', $size, "$tmp/$path = $size bytes" );                          cmp_ok( -s $pack, '==', $size, "$tmp/$path = $size bytes" );
67                  }                  }
68          } else {          } else {
69                  ok( -e "$from/$path", "on disk $from/$path" );                  ok( -e "$from/$path", "on disk $from/$path" );
70                    diag "$op curr_size: $orig_size size: $size";
71                    $size += $orig_size if ( $op eq '>>' );
72                  cmp_ok( -s "$from/$path", '==', $size, "$from/$path = $size bytes" );                  cmp_ok( -s "$from/$path", '==', $size, "$from/$path = $size bytes" );
73          }          }
74    
# Line 92  for my $i ( 1 .. 3 ) { Line 94  for my $i ( 1 .. 3 ) {
94          file( '>', $file, '' );          file( '>', $file, '' );
95          file( '<', $file, '' );          file( '<', $file, '' );
96    
97  #       file( '>', $file, $content );          file( '>', $file, $content );
98  #       file( '<', $file, $content );          file( '<', $file, $content );
99    
100    }
101    
102    
103    sub multiple_rw {
104    
105            diag "multiple read-write";
106            ok( my $fh1 = IO::File->new("> $to/m"), 'open 1' );
107            $fh1->autoflush;
108            ok( print($fh1 "1.1\n"), 'print 1.1' );
109            ok( my $fh2 = IO::File->new(">> $to/m"), 'open 2' );
110            $fh2->autoflush;
111            ok( print($fh2 "2.1\n"), 'print 2.1' );
112            cmp_ok( read_file("$to/m"), 'eq', "1.1\n2.1\n", 'mixed' );
113            ok( print($fh1 "1.2\n"), 'print 1.2' );
114            cmp_ok( read_file("$to/m"), 'eq', "1.1\n1.2\n", 'just 1' );
115            dump_debug 'own twice';
116            ok( print($fh1 "x" x 65535), 'print 1 64k' );
117            ok( close($fh1), 'close 1' );
118            dump_debug 'own once';
119            ok( close($fh2), 'close 2' );
120            dump_debug 'closed';
121    
122            my @sizes;
123            my $size = 65536;
124            while ( $size > 1 ) {
125                    push @sizes, $size;
126                    $size /= 2;
127            }
128    
129            foreach my $size ( @sizes ) {
130                    ok( my $fh1 = IO::File->new("> $to/m"), 'open 1' );
131                    ok( truncate( $fh1, $size ), 'truncate' );
132                    dump_debug 'truncate';
133                    ok( close($fh1), 'close 1' );
134                    cmp_ok( -s "$to/m", '==', $size, "truncated to $size" );
135            }
136    
137    
138            foreach my $size ( sort @sizes ) {
139                    my $orig_size = -s "$to/m";
140                    ok( my $fh1 = IO::File->new(">> $to/m"), 'open 1' );
141                    ok( print($fh1 "x" x $size), "print $size bytes" );
142                    dump_debug 'append';
143                    ok( close($fh1), 'close 1' );
144                    my $expected_size = $size + $orig_size;
145                    cmp_ok( -s "$to/m", '==', $expected_size, "appended upto $expected_size" );
146            }
147    
148    
149  }  }
150    
151  diag "multiple read-write";  multiple_rw;
152    multiple_rw;
153    
 ok( my $fh1 = IO::File->new("> $to/m"), 'open 1' );  
 $fh1->autoflush;  
 ok( print($fh1 "1.1\n"), 'print 1.1' );  
 ok( my $fh2 = IO::File->new(">> $to/m"), 'open 2' );  
 $fh2->autoflush;  
 ok( print($fh2 "2.1\n"), 'print 2.1' );  
 cmp_ok( read_file("$to/m"), 'eq', "1.1\n2.1\n", 'mixed' );  
 ok( print($fh1 "1.2\n"), 'print 1.2' );  
 cmp_ok( read_file("$to/m"), 'eq', "1.1\n1.2\n", 'just 1' );  
154    

Legend:
Removed from v.12  
changed lines
  Added in v.16

  ViewVC Help
Powered by ViewVC 1.1.26