diff options
author | Larry Wall <lwall@netlabs.com> | 1991-03-21 00:00:00 +0000 |
---|---|---|
committer | Larry Wall <lwall@netlabs.com> | 1991-03-21 00:00:00 +0000 |
commit | fe14fcc35f78a371a174a1d14256c2f35ae4262b (patch) | |
tree | d472cb1055c47b9701cb0840969aacdbdbc9354a /t/io | |
parent | 27e2fb84680b9cc1db17238d5bf10b97626f477f (diff) | |
download | perl-fe14fcc35f78a371a174a1d14256c2f35ae4262b.tar.gz |
perl 4.0.00: (no release announcement available)perl-4.0.00
So far, 4.0 is still a beta test version. For the last production
version, look in pub/perl.3.0/kits@44.
Diffstat (limited to 't/io')
-rw-r--r-- | t/io/argv.t | 36 | ||||
-rw-r--r-- | t/io/dup.t | 32 | ||||
-rw-r--r-- | t/io/fs.t | 85 | ||||
-rw-r--r-- | t/io/inplace.t | 21 | ||||
-rw-r--r-- | t/io/pipe.t | 56 | ||||
-rw-r--r-- | t/io/print.t | 32 | ||||
-rw-r--r-- | t/io/tell.t | 44 |
7 files changed, 306 insertions, 0 deletions
diff --git a/t/io/argv.t b/t/io/argv.t new file mode 100644 index 0000000000..6f55896fdf --- /dev/null +++ b/t/io/argv.t @@ -0,0 +1,36 @@ +#!./perl + +# $Header: argv.t,v 4.0 91/03/20 01:50:46 lwall Locked $ + +print "1..5\n"; + +open(try, '>Io.argv.tmp') || (die "Can't open temp file."); +print try "a line\n"; +close try; + +$x = `./perl -e 'while (<>) {print \$.,\$_;}' Io.argv.tmp Io.argv.tmp`; + +if ($x eq "1a line\n2a line\n") {print "ok 1\n";} else {print "not ok 1\n";} + +$x = `echo foo|./perl -e 'while (<>) {print $_;}' Io.argv.tmp -`; + +if ($x eq "a line\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";} + +$x = `echo foo|./perl -e 'while (<>) {print $_;}'`; + +if ($x eq "foo\n") {print "ok 3\n";} else {print "not ok 3 :$x:\n";} + +@ARGV = ('Io.argv.tmp', 'Io.argv.tmp', '/dev/null', 'Io.argv.tmp'); +while (<>) { + $y .= $. . $_; + if (eof()) { + if ($. == 3) {print "ok 4\n";} else {print "not ok 4\n";} + } +} + +if ($y eq "1a line\n2a line\n3a line\n") + {print "ok 5\n";} +else + {print "not ok 5\n";} + +`/bin/rm -f Io.argv.tmp`; diff --git a/t/io/dup.t b/t/io/dup.t new file mode 100644 index 0000000000..e5ea7d410d --- /dev/null +++ b/t/io/dup.t @@ -0,0 +1,32 @@ +#!./perl + +# $Header: dup.t,v 4.0 91/03/20 01:50:49 lwall Locked $ + +print "1..6\n"; + +print "ok 1\n"; + +open(dupout,">&STDOUT"); +open(duperr,">&STDERR"); + +open(STDOUT,">Io.dup") || die "Can't open stdout"; +open(STDERR,">&STDOUT") || die "Can't open stderr"; + +select(STDERR); $| = 1; +select(STDOUT); $| = 1; + +print STDOUT "ok 2\n"; +print STDERR "ok 3\n"; +system 'echo ok 4'; +system 'echo ok 5 1>&2'; + +close(STDOUT); +close(STDERR); + +open(STDOUT,">&dupout"); +open(STDERR,">&duperr"); + +system 'cat Io.dup'; +unlink 'Io.dup'; + +print STDOUT "ok 6\n"; diff --git a/t/io/fs.t b/t/io/fs.t new file mode 100644 index 0000000000..705523cffe --- /dev/null +++ b/t/io/fs.t @@ -0,0 +1,85 @@ +#!./perl + +# $Header: fs.t,v 4.0 91/03/20 01:50:55 lwall Locked $ + +print "1..22\n"; + +$wd = `pwd`; +chop($wd); + +`rm -f tmp 2>/dev/null; mkdir tmp 2>/dev/null`; +chdir './tmp'; +`/bin/rm -rf a b c x`; + +umask(022); + +if (umask(0) == 022) {print "ok 1\n";} else {print "not ok 1\n";} +open(fh,'>x') || die "Can't create x"; +close(fh); +open(fh,'>a') || die "Can't create a"; +close(fh); + +if (link('a','b')) {print "ok 2\n";} else {print "not ok 2\n";} + +if (link('b','c')) {print "ok 3\n";} else {print "not ok 3\n";} + +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('c'); + +if ($nlink == 3) {print "ok 4\n";} else {print "not ok 4\n";} +if (($mode & 0777) == 0666) {print "ok 5\n";} else {print "not ok 5\n";} + +if ((chmod 0777,'a') == 1) {print "ok 6\n";} else {print "not ok 6\n";} + +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('c'); +if (($mode & 0777) == 0777) {print "ok 7\n";} else {print "not ok 7\n";} + +if ((chmod 0700,'c','x') == 2) {print "ok 8\n";} else {print "not ok 8\n";} + +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('c'); +if (($mode & 0777) == 0700) {print "ok 9\n";} else {print "not ok 9\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('x'); +if (($mode & 0777) == 0700) {print "ok 10\n";} else {print "not ok 10\n";} + +if ((unlink 'b','x') == 2) {print "ok 11\n";} else {print "not ok 11\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('b'); +if ($ino == 0) {print "ok 12\n";} else {print "not ok 12\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('x'); +if ($ino == 0) {print "ok 13\n";} else {print "not ok 13\n";} + +if (rename('a','b')) {print "ok 14\n";} else {print "not ok 14\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('a'); +if ($ino == 0) {print "ok 15\n";} else {print "not ok 15\n";} +$foo = (utime 500000000,500000001,'b'); +if ($foo == 1) {print "ok 16\n";} else {print "not ok 16 $foo\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('b'); +if ($ino) {print "ok 17\n";} else {print "not ok 17\n";} +if (($atime == 500000000 && $mtime == 500000001) || $wd =~ m#/afs/#) + {print "ok 18\n";} +else + {print "not ok 18 $atime $mtime\n";} + +if ((unlink 'b') == 1) {print "ok 19\n";} else {print "not ok 19\n";} +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, + $blksize,$blocks) = stat('b'); +if ($ino == 0) {print "ok 20\n";} else {print "not ok 20\n";} +unlink 'c'; + +chdir $wd || die "Can't cd back to $wd"; + +unlink 'c'; +if (`ls -l perl 2>/dev/null` =~ /^l.*->/) { # we have symbolic links + if (symlink("TEST","c")) {print "ok 21\n";} else {print "not ok 21\n";} + $foo = `grep perl c`; + if ($foo) {print "ok 22\n";} else {print "not ok 22\n";} +} +else { + print "ok 21\nok 22\n"; +} diff --git a/t/io/inplace.t b/t/io/inplace.t new file mode 100644 index 0000000000..b8a5649056 --- /dev/null +++ b/t/io/inplace.t @@ -0,0 +1,21 @@ +#!./perl + +$^I = '.bak'; + +# $Header: inplace.t,v 4.0 91/03/20 01:50:59 lwall Locked $ + +print "1..2\n"; + +@ARGV = ('.a','.b','.c'); +`echo foo | tee .a .b .c`; +while (<>) { + s/foo/bar/; +} +continue { + print; +} + +if (`cat .a .b .c` eq "bar\nbar\nbar\n") {print "ok 1\n";} else {print "not ok 1\n";} +if (`cat .a.bak .b.bak .c.bak` eq "foo\nfoo\nfoo\n") {print "ok 2\n";} else {print "not ok 2\n";} + +unlink '.a', '.b', '.c', '.a.bak', '.b.bak', '.c.bak'; diff --git a/t/io/pipe.t b/t/io/pipe.t new file mode 100644 index 0000000000..d41f5faaec --- /dev/null +++ b/t/io/pipe.t @@ -0,0 +1,56 @@ +#!./perl + +# $Header: pipe.t,v 4.0 91/03/20 01:51:02 lwall Locked $ + +$| = 1; +print "1..8\n"; + +open(PIPE, "|-") || (exec 'tr', '[A-Z]', '[a-z]'); +print PIPE "OK 1\n"; +print PIPE "ok 2\n"; +close PIPE; + +if (open(PIPE, "-|")) { + while(<PIPE>) { + s/^not //; + print; + } +} +else { + print STDOUT "not ok 3\n"; + exec 'echo', 'not ok 4'; +} + +pipe(READER,WRITER) || die "Can't open pipe"; + +if ($pid = fork) { + close WRITER; + while(<READER>) { + s/^not //; + y/A-Z/a-z/; + print; + } +} +else { + die "Couldn't fork" unless defined $pid; + close READER; + print WRITER "not ok 5\n"; + open(STDOUT,">&WRITER") || die "Can't dup WRITER to STDOUT"; + close WRITER; + exec 'echo', 'not ok 6'; +} + + +pipe(READER,WRITER) || die "Can't open pipe"; +close READER; + +$SIG{'PIPE'} = 'broken_pipe'; + +sub broken_pipe { + print "ok 7\n"; +} + +print WRITER "not ok 7\n"; +close WRITER; + +print "ok 8\n"; diff --git a/t/io/print.t b/t/io/print.t new file mode 100644 index 0000000000..30294f51fa --- /dev/null +++ b/t/io/print.t @@ -0,0 +1,32 @@ +#!./perl + +# $Header: print.t,v 4.0 91/03/20 01:51:08 lwall Locked $ + +print "1..16\n"; + +$foo = 'STDOUT'; +print $foo "ok 1\n"; + +print "ok 2\n","ok 3\n","ok 4\n"; +print STDOUT "ok 5\n"; + +open(foo,">-"); +print foo "ok 6\n"; + +printf "ok %d\n",7; +printf("ok %d\n",8); + +@a = ("ok %d%c",9,ord("\n")); +printf @a; + +$a[1] = 10; +printf STDOUT @a; + +$, = ' '; +$\ = "\n"; + +print "ok","11"; + +@x = ("ok","12\nok","13\nok"); +@y = ("15\nok","16"); +print @x,"14\nok",@y; diff --git a/t/io/tell.t b/t/io/tell.t new file mode 100644 index 0000000000..cb1fc4c3be --- /dev/null +++ b/t/io/tell.t @@ -0,0 +1,44 @@ +#!./perl + +# $Header: tell.t,v 4.0 91/03/20 01:51:14 lwall Locked $ + +print "1..13\n"; + +$TST = 'tst'; + +open($TST, '../Makefile') || (die "Can't open ../Makefile"); + +if (eof(tst)) { print "not ok 1\n"; } else { print "ok 1\n"; } + +$firstline = <$TST>; +$secondpos = tell; + +$x = 0; +while (<tst>) { + if (eof) {$x++;} +} +if ($x == 1) { print "ok 2\n"; } else { print "not ok 2\n"; } + +$lastpos = tell; + +unless (eof) { print "not ok 3\n"; } else { print "ok 3\n"; } + +if (seek($TST,0,0)) { print "ok 4\n"; } else { print "not ok 4\n"; } + +if (eof) { print "not ok 5\n"; } else { print "ok 5\n"; } + +if ($firstline eq <tst>) { print "ok 6\n"; } else { print "not ok 6\n"; } + +if ($secondpos == tell) { print "ok 7\n"; } else { print "not ok 7\n"; } + +if (seek(tst,0,1)) { print "ok 8\n"; } else { print "not ok 8\n"; } + +if (eof($TST)) { print "not ok 9\n"; } else { print "ok 9\n"; } + +if ($secondpos == tell) { print "ok 10\n"; } else { print "not ok 10\n"; } + +if (seek(tst,0,2)) { print "ok 11\n"; } else { print "not ok 11\n"; } + +if ($lastpos == tell) { print "ok 12\n"; } else { print "not ok 12\n"; } + +unless (eof) { print "not ok 13\n"; } else { print "ok 13\n"; } |