tests for change#4642 and pod fixups suggested by Ralph Corderoy
[p5sagit/p5-mst-13.2.git] / t / io / argv.t
1 #!./perl
2
3 BEGIN {
4     chdir 't' if -d 't';
5     unshift @INC, '../lib';
6 }
7
8 print "1..14\n";
9
10 use File::Spec;
11
12 my $devnull = File::Spec->devnull;
13
14 open(try, '>Io.argv.tmp') || (die "Can't open temp file: $!");
15 print try "a line\n";
16 close try;
17
18 if ($^O eq 'MSWin32') {
19   $x = `.\\perl -e "while (<>) {print \$.,\$_;}" Io.argv.tmp Io.argv.tmp`;
20 }
21 else {
22   $x = `./perl -e 'while (<>) {print \$.,\$_;}' Io.argv.tmp Io.argv.tmp`;
23 }
24 if ($x eq "1a line\n2a line\n") {print "ok 1\n";} else {print "not ok 1\n";}
25
26 if ($^O eq 'MSWin32') {
27   $x = `.\\perl -le "print 'foo'" | .\\perl -e "while (<>) {print \$_;}" Io.argv.tmp -`;
28 }
29 else {
30   $x = `echo foo|./perl -e 'while (<>) {print $_;}' Io.argv.tmp -`;
31 }
32 if ($x eq "a line\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";}
33
34 if ($^O eq 'MSWin32') {
35   $x = `.\\perl -le "print 'foo'" |.\\perl -e "while (<>) {print \$_;}"`;
36 }
37 else {
38   $x = `echo foo|./perl -e 'while (<>) {print $_;}'`;
39 }
40 if ($x eq "foo\n") {print "ok 3\n";} else {print "not ok 3 :$x:\n";}
41
42 @ARGV = ('Io.argv.tmp', 'Io.argv.tmp', $devnull, 'Io.argv.tmp');
43 while (<>) {
44     $y .= $. . $_;
45     if (eof()) {
46         if ($. == 3) {print "ok 4\n";} else {print "not ok 4\n";}
47     }
48 }
49
50 if ($y eq "1a line\n2a line\n3a line\n")
51     {print "ok 5\n";}
52 else
53     {print "not ok 5\n";}
54
55 open(try, '>Io.argv.tmp') or die "Can't open temp file: $!";
56 close try;
57 @ARGV = 'Io.argv.tmp';
58 $^I = '.bak';
59 $/ = undef;
60 while (<>) {
61     s/^/ok 6\n/;
62     print;
63 }
64 open(try, '<Io.argv.tmp') or die "Can't open temp file: $!";
65 print while <try>;
66 close try;
67 undef $^I;
68
69 eof try or print 'not ';
70 print "ok 7\n";
71
72 eof NEVEROPENED or print 'not ';
73 print "ok 8\n";
74
75 open STDIN, 'Io.argv.tmp' or die $!;
76 @ARGV = ();
77 !eof() or print 'not ';
78 print "ok 9\n";
79
80 <> eq "ok 6\n" or print 'not ';
81 print "ok 10\n";
82
83 open STDIN, $devnull or die $!;
84 @ARGV = ();
85 eof() or print 'not ';
86 print "ok 11\n";
87
88 @ARGV = ('Io.argv.tmp');
89 !eof() or print 'not ';
90 print "ok 12\n";
91
92 @ARGV = ($devnull, $devnull);
93 !eof() or print 'not ';
94 print "ok 13\n";
95
96 close ARGV or die $!;
97 eof() or print 'not ';
98 print "ok 14\n";
99
100 END { unlink 'Io.argv.tmp', 'Io.argv.tmp.bak' }