testsuite nits
[p5sagit/p5-mst-13.2.git] / t / lib / io_linenum.t
1 #!./perl
2
3 # test added 29th April 1998 by Paul Johnson (pjcj@transeda.com)
4
5 BEGIN {
6     chdir 't' if -d 't';
7     unshift @INC, '../lib' if -d '../lib';
8 }
9
10 use strict;
11 use IO::File;
12 use Test;
13
14 BEGIN {
15     plan tests => 9 #, todo => [10]
16 }
17
18 sub lineno
19 {
20   my ($f) = @_;
21   my $l;
22   $l .= "$. ";
23   $l .= $f->input_line_number;
24   $l .= " $.";
25   $l;
26 }
27
28 sub OK
29 {
30   my $s = select STDOUT;                     # work around a bug in Test.pm 1.04
31   &ok;
32   select $s;
33 }
34
35 my $t;
36
37 open (Q, __FILE__) or die $!;
38 my $w = IO::File->new(__FILE__) or die $!;
39
40 <Q> for (1 .. 10);
41 OK(lineno($w), "10 0 10");
42
43 $w->getline for (1 .. 5);
44 OK(lineno($w), "5 5 5");
45
46 <Q>;
47 OK(lineno($w), "11 5 11");
48
49 $w->getline;
50 OK(lineno($w), "6 6 6");
51
52 $t = tell Q;         # tell Q; provokes a warning - the world is full of bugs...
53 OK(lineno($w), "11 6 11");
54
55 <Q>;
56 OK(lineno($w), "12 6 12");
57
58 select Q;
59 OK(lineno($w), "12 6 12");
60
61 <Q> for (1 .. 10);
62 OK(lineno($w), "22 6 22");
63
64 $w->getline for (1 .. 5);
65 OK(lineno($w), "11 11 11");
66 __END__
67 # This test doesn't work.  It probably won't until local $. does.
68 $t = tell Q;
69 OK(lineno($w), "22 11 22", 'waiting for local $.');