Confusion over uselargefiles.cbu and uselfs.cbu (the first one
[p5sagit/p5-mst-13.2.git] / t / io / argv.t
CommitLineData
8d063cd8 1#!./perl
2
820475bd 3BEGIN {
4 chdir 't' if -d 't';
5 unshift @INC, '../lib';
6}
7
684bef36 8print "1..20\n";
820475bd 9
10use File::Spec;
11
12my $devnull = File::Spec->devnull;
8d063cd8 13
684bef36 14open(try, '>Io_argv1.tmp') || (die "Can't open temp file: $!");
8d063cd8 15print try "a line\n";
16close try;
17
68dc0745 18if ($^O eq 'MSWin32') {
684bef36 19 $x = `.\\perl -e "while (<>) {print \$.,\$_;}" Io_argv1.tmp Io_argv1.tmp`;
68dc0745 20}
21else {
684bef36 22 $x = `./perl -e 'while (<>) {print \$.,\$_;}' Io_argv1.tmp Io_argv1.tmp`;
68dc0745 23}
8d063cd8 24if ($x eq "1a line\n2a line\n") {print "ok 1\n";} else {print "not ok 1\n";}
25
68dc0745 26if ($^O eq 'MSWin32') {
684bef36 27 $x = `.\\perl -le "print 'foo'" | .\\perl -e "while (<>) {print \$_;}" Io_argv1.tmp -`;
68dc0745 28}
29else {
684bef36 30 $x = `echo foo|./perl -e 'while (<>) {print $_;}' Io_argv1.tmp -`;
68dc0745 31}
8d063cd8 32if ($x eq "a line\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";}
33
68dc0745 34if ($^O eq 'MSWin32') {
35 $x = `.\\perl -le "print 'foo'" |.\\perl -e "while (<>) {print \$_;}"`;
36}
37else {
38 $x = `echo foo|./perl -e 'while (<>) {print $_;}'`;
39}
bf38876a 40if ($x eq "foo\n") {print "ok 3\n";} else {print "not ok 3 :$x:\n";}
8d063cd8 41
684bef36 42@ARGV = ('Io_argv1.tmp', 'Io_argv1.tmp', $devnull, 'Io_argv1.tmp');
8d063cd8 43while (<>) {
44 $y .= $. . $_;
378cc40b 45 if (eof()) {
8d063cd8 46 if ($. == 3) {print "ok 4\n";} else {print "not ok 4\n";}
47 }
48}
49
50if ($y eq "1a line\n2a line\n3a line\n")
51 {print "ok 5\n";}
52else
53 {print "not ok 5\n";}
54
684bef36 55open(try, '>Io_argv1.tmp') or die "Can't open temp file: $!";
fbad3eb5 56close try;
684bef36 57open(try, '>Io_argv2.tmp') or die "Can't open temp file: $!";
58close try;
59@ARGV = ('Io_argv1.tmp', 'Io_argv2.tmp');
181ea953 60$^I = '.bak';
fbad3eb5 61$/ = undef;
684bef36 62my $i = 6;
fbad3eb5 63while (<>) {
684bef36 64 s/^/ok $i\n/;
65 ++$i;
fbad3eb5 66 print;
67}
684bef36 68open(try, '<Io_argv1.tmp') or die "Can't open temp file: $!";
69print while <try>;
70open(try, '<Io_argv2.tmp') or die "Can't open temp file: $!";
fbad3eb5 71print while <try>;
72close try;
820475bd 73undef $^I;
74
75eof try or print 'not ';
684bef36 76print "ok 8\n";
820475bd 77
78eof NEVEROPENED or print 'not ';
684bef36 79print "ok 9\n";
820475bd 80
684bef36 81open STDIN, 'Io_argv1.tmp' or die $!;
820475bd 82@ARGV = ();
83!eof() or print 'not ';
684bef36 84print "ok 10\n";
820475bd 85
86<> eq "ok 6\n" or print 'not ';
684bef36 87print "ok 11\n";
820475bd 88
89open STDIN, $devnull or die $!;
90@ARGV = ();
91eof() or print 'not ';
684bef36 92print "ok 12\n";
820475bd 93
684bef36 94@ARGV = ('Io_argv1.tmp');
820475bd 95!eof() or print 'not ';
684bef36 96print "ok 13\n";
820475bd 97
98@ARGV = ($devnull, $devnull);
99!eof() or print 'not ';
684bef36 100print "ok 14\n";
820475bd 101
102close ARGV or die $!;
103eof() or print 'not ';
684bef36 104print "ok 15\n";
105
106{
107 local $/;
108 open F, 'Io_argv1.tmp' or die;
109 <F>; # set $. = 1
110 open F, $devnull or die;
111 print "not " unless defined(<F>);
112 print "ok 16\n";
113 print "not " if defined(<F>);
114 print "ok 17\n";
115 print "not " if defined(<F>);
116 print "ok 18\n";
117 open F, $devnull or die; # restart cycle again
118 print "not " unless defined(<F>);
119 print "ok 19\n";
120 print "not " if defined(<F>);
121 print "ok 20\n";
122 close F;
123}
fbad3eb5 124
684bef36 125END { unlink 'Io_argv1.tmp', 'Io_argv1.tmp.bak', 'Io_argv2.tmp', 'Io_argv2.tmp.bak' }