4 |
|
|
5 |
my $debug = shift @ARGV; |
my $debug = shift @ARGV; |
6 |
|
|
7 |
use Test::More tests => 710; |
use Test::More tests => 766; |
8 |
use File::Slurp; |
use File::Slurp; |
9 |
use IO::File; |
use IO::File; |
10 |
|
|
77 |
return $content; |
return $content; |
78 |
} |
} |
79 |
|
|
80 |
|
sub md5sum { |
81 |
|
my $path = shift; |
82 |
|
my $md5sum = `md5sum $path`; |
83 |
|
$md5sum =~ s/\s+.*$//s; |
84 |
|
warn "## md5sum($path) = $md5sum\n" if $debug; |
85 |
|
return $md5sum; |
86 |
|
} |
87 |
|
|
88 |
my $buff = '<<--just a chunk of data-->>'; |
my $buff = '<<--just a chunk of data-->>'; |
89 |
|
|
90 |
for my $i ( 1 .. 3 ) { |
for my $i ( 1 .. 3 ) { |
127 |
ok( close($fh2), 'close 2' ); |
ok( close($fh2), 'close 2' ); |
128 |
dump_debug 'closed'; |
dump_debug 'closed'; |
129 |
|
|
130 |
|
ok( symlink("$to/m", "$to/s"), 'symlink' ); |
131 |
|
ok( -l "$to/s", 'is symlink' ); |
132 |
|
ok( link("$to/m", "$to/l"), 'link' ); |
133 |
|
cmp_ok( (stat("$to/l"))[3], '==', 2, 'l has 2 links' ); |
134 |
|
cmp_ok( (stat("$to/m"))[3], '==', 2, 'm has 2 links' ); |
135 |
|
|
136 |
|
my $size = -s "$to/m"; |
137 |
|
cmp_ok( length(read_file("$to/s")), '==', $size, "$to/s size $size" ); |
138 |
|
cmp_ok( length(read_file("$to/l")), '==', $size, "$to/l size $size" ); |
139 |
|
|
140 |
|
ok( unlink("$to/s"), 'unlink s' ); |
141 |
|
ok( ! -e "$to/s", 'gone' ); |
142 |
|
ok( unlink("$to/l"), 'unlink l' ); |
143 |
|
cmp_ok( (stat("$to/m"))[3], '==', 1, 'no links' ); |
144 |
|
|
145 |
my @sizes; |
my @sizes; |
146 |
my $size = 65536; |
my $size = 65536; |
147 |
while ( $size > 1 ) { |
while ( $size > 1 ) { |
168 |
cmp_ok( -s "$to/m", '==', $expected_size, "appended upto $expected_size" ); |
cmp_ok( -s "$to/m", '==', $expected_size, "appended upto $expected_size" ); |
169 |
} |
} |
170 |
|
|
171 |
|
ok( $size = -s "$to/m", 'size' ); |
172 |
|
ok( my $md5sum = md5sum("$to/m"), 'md5sum m' ); |
173 |
|
ok( rename("$to/m", "$to/n"), 'rename' ); |
174 |
|
ok( -e "$to/n", "$to/n exists" ); |
175 |
|
ok( ! -e "$to/m", "$to/m gone" ); |
176 |
|
cmp_ok( -s "$to/n", '==', $size, 'size' ); |
177 |
|
cmp_ok( $md5sum, 'eq', md5sum("$to/n"), 'md5sums same' ); |
178 |
|
|
179 |
|
ok( unlink("$to/n"), "$to/n unlink" ); |
180 |
|
ok( ! -e "$to/n", "$to/n gone" ); |
181 |
|
|
182 |
|
{ |
183 |
|
ok( my $fh1 = IO::File->new(">> $to/h"), "open $to/h" ); |
184 |
|
ok( print($fh1 "foobar"), "print" ); |
185 |
|
ok( unlink("$to/h"), 'create .fuse_hidden' ); |
186 |
|
ok( ! -e "$to/h", "$to/h gone" ); |
187 |
|
dump_debug 'hidden'; |
188 |
|
ok( print($fh1 "foobar"), "print to hidden" ); |
189 |
|
ok( close($fh1), "close $to/h" ); |
190 |
|
} |
191 |
} |
} |
192 |
|
|
193 |
multiple_rw; |
multiple_rw; |
194 |
multiple_rw; |
multiple_rw; |
195 |
|
|
|
|
|