Commit | Line | Data |
---|---|---|
b5aed31e | 1 | #!/usr/bin/perl |
2 | # | |
3 | # Make sure we can fetch a record in the middle of the file | |
4 | # before we've ever looked at any records before it | |
5 | # | |
0b28bc9a | 6 | # Make sure fetching past the end of the file returns the undefined value |
7 | # | |
b5aed31e | 8 | # (tests _fill_offsets_to() ) |
9 | # | |
10 | ||
11 | my $file = "tf$$.txt"; | |
b3fe5a4c | 12 | $: = Tie::File::_default_recsep(); |
13 | my $data = "rec0$:rec1$:rec2$:"; | |
b5aed31e | 14 | |
0b28bc9a | 15 | print "1..8\n"; |
b5aed31e | 16 | |
17 | my $N = 1; | |
18 | use Tie::File; | |
19 | print "ok $N\n"; $N++; | |
20 | ||
21 | open F, "> $file" or die $!; | |
1768807e | 22 | binmode F; |
b5aed31e | 23 | print F $data; |
24 | close F; | |
25 | ||
26 | ||
0b28bc9a | 27 | my $o = tie @a, 'Tie::File', $file, autochomp => 0; |
b5aed31e | 28 | print $o ? "ok $N\n" : "not ok $N\n"; |
29 | $N++; | |
30 | ||
b3fe5a4c | 31 | $: = $o->{recsep}; |
32 | ||
b5aed31e | 33 | my $n; |
34 | ||
35 | # 3-5 | |
36 | for (2, 1, 0) { | |
0b28bc9a | 37 | my $rec = $a[$_]; |
38 | print $rec eq "rec$_$:" ? "ok $N\n" : "not ok $N # rec=<$rec> ?\n"; | |
39 | $N++; | |
40 | } | |
41 | ||
42 | # 6-8 | |
43 | for (3, 4, 6) { | |
44 | my $rec = $a[$_]; | |
45 | print ((not defined $rec) ? "ok $N\n" : "not ok $N # rec=<$rec> is defined\n"); | |
b5aed31e | 46 | $N++; |
47 | } | |
48 | ||
49 | END { | |
7b6b3db1 | 50 | undef $o; |
51 | untie @a; | |
b5aed31e | 52 | 1 while unlink $file; |
53 | } | |
54 |