diff options
Diffstat (limited to 'cpan/Tie-File/t/42_offset.t')
-rw-r--r-- | cpan/Tie-File/t/42_offset.t | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/cpan/Tie-File/t/42_offset.t b/cpan/Tie-File/t/42_offset.t new file mode 100644 index 0000000000..8c628325d9 --- /dev/null +++ b/cpan/Tie-File/t/42_offset.t @@ -0,0 +1,69 @@ +#!/usr/bin/perl + +# 2003-04-09 Tels: test the offset method from 0.94 + +use Test::More; +use strict; +use File::Spec; + +use POSIX 'SEEK_SET'; +my $file = "tf$$.txt"; + +BEGIN + { + $| = 1; + unshift @INC, File::Spec->catdir(File::Spec->updir, 'lib'); + chdir 't' if -d 't'; + print "# INC = @INC\n"; + + plan tests => 24; + + use_ok ('Tie::File'); + } + +$/ = "#"; # avoid problems with \n\r vs. \n + +my @a; +my $o = tie @a, 'Tie::File', $file, autodefer => 0; + +is (ref($o), 'Tie::File'); + +is ($o->offset(0), 0, 'first one always there'); +is ($o->offset(1), undef, 'no offsets yet'); + +$a[0] = 'Bourbon'; +is ($o->offset(0), 0, 'first is ok'); +is ($o->offset(1), 8, 'and second ok'); +is ($o->offset(2), undef, 'third undef'); + +$a[1] = 'makes'; +is ($o->offset(0), 0, 'first is ok'); +is ($o->offset(1), 8, 'and second ok'); +is ($o->offset(2), 14, 'and third ok'); +is ($o->offset(3), undef, 'fourth undef'); + +$a[2] = 'the baby'; +is ($o->offset(0), 0, 'first is ok'); +is ($o->offset(1), 8, 'and second ok'); +is ($o->offset(2), 14, 'and third ok'); +is ($o->offset(3), 23, 'and fourth ok'); +is ($o->offset(4), undef, 'fourth undef'); + +$a[3] = 'grin'; +is ($o->offset(0), 0, 'first is ok'); +is ($o->offset(1), 8, 'and second ok'); +is ($o->offset(2), 14, 'and third ok'); +is ($o->offset(3), 23, 'and fourth ok'); +is ($o->offset(4), 28, 'and fifth ok'); + +$a[4] = '!'; +is ($o->offset(5), 30, 'and fifth ok'); +$a[3] = 'water'; +is ($o->offset(4), 29, 'and fourth changed ok'); +is ($o->offset(5), 31, 'and fifth ok'); + +END { + undef $o; + untie @a; + 1 while unlink $file; +} |