diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-12-08 15:29:18 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-12-08 15:29:18 +0000 |
commit | b6345914e6a5bcc0fcf2c030fb88a31b5c80a120 (patch) | |
tree | a5b43e5862ff20553674c0a26426bb0df5ad5a2b /t/op/exec.t | |
parent | e9a057b35f1944aacb024aac49328f7d8e424652 (diff) | |
download | perl-b6345914e6a5bcc0fcf2c030fb88a31b5c80a120.tar.gz |
[PATCH lib/vmsish.t] Small test name abuse.
From: Michael G Schwern <schwern@pobox.com>
Date: Fri, 7 Dec 2001 20:03:45 -0500
Message-ID: <20011208010345.GD642@blackrider>
Subject: [PATCH vms/test.com] Goodbye frightening echo kludge!
From: Michael G Schwern <schwern@pobox.com>
Date: Fri, 7 Dec 2001 20:13:54 -0500
Message-ID: <20011208011354.GE642@blackrider>
Subject: [PATCH t/io/pipe.t t/test.pl] Cleanup & $NO_ENDING
From: Michael G Schwern <schwern@pobox.com>
Date: Fri, 7 Dec 2001 21:47:36 -0500
Message-ID: <20011208024736.GH642@blackrider>
Subject: [PATCH t/op/exec.t] Piping and newline on pipe tests
From: Michael G Schwern <schwern@pobox.com>
Date: Fri, 7 Dec 2001 23:09:43 -0500
Message-ID: <20011208040943.GK642@blackrider>
Subject: [PATCH] vms/test.com -- skip tty tests when not interactive
Message-Id: <a05101004b83754903506@[172.16.52.1]>
Date: Fri, 7 Dec 2001 23:28:15 -0600
From: "Craig A. Berry" <craigberry@mac.com>
p4raw-id: //depot/perl@13535
Diffstat (limited to 't/op/exec.t')
-rwxr-xr-x | t/op/exec.t | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/t/op/exec.t b/t/op/exec.t index 1be58fe5cc..271570fcd5 100755 --- a/t/op/exec.t +++ b/t/op/exec.t @@ -14,7 +14,9 @@ $| = 1; # flush stdout $ENV{LC_ALL} = 'C'; # Forge English error messages. $ENV{LANGUAGE} = 'C'; # Ditto in GNU. -plan(tests => 14); +my $Is_VMS = $^O eq 'VMS'; + +plan(tests => 20); my $Perl = which_perl(); @@ -22,27 +24,59 @@ my $exit; SKIP: { skip("bug/feature of pdksh", 2) if $^O eq 'os2'; - $exit = system qq{$Perl -le "print q{ok 1 - interpreted system(EXPR)"}}; + my $tnum = curr_test(); + $exit = system qq{$Perl -le "print q{ok $tnum - interp system(EXPR)"}}; next_test(); is( $exit, 0, ' exited 0' ); } -$exit = system qq{$Perl -le "print q{ok 3 - split & direct call system(EXPR)"}}; +my $tnum = curr_test(); +$exit = system qq{$Perl -le "print q{ok $tnum - split & direct system(EXPR)"}}; next_test(); is( $exit, 0, ' exited 0' ); # On VMS you need the quotes around the program or it won't work. # On Unix its the opposite. -my $quote = $^O eq 'VMS' ? '"' : ''; +my $quote = $Is_VMS ? '"' : ''; +$tnum = curr_test(); $exit = system $Perl, '-le', - "${quote}print q{ok 5 - system(PROG, LIST)}${quote}"; + "${quote}print q{ok $tnum - system(PROG, LIST)}${quote}"; next_test(); is( $exit, 0, ' exited 0' ); +# Some basic piped commands. Some OS's have trouble with "helpfully" +# putting newlines on the end of piped output. So we split this into +# newline insensitive and newline sensitive tests. +my $echo_out = `$Perl -e "print 'ok'" | $Perl -le "print <STDIN>"`; +$echo_out =~ s/\n\n/\n/g; +is( $echo_out, "ok\n", 'piped echo emulation'); + +{ + # here we check if extra newlines are going to be slapped on + # piped output. + local $TODO = 'VMS sticks newlines on everything' if $Is_VMS; + + is( scalar `$Perl -e "print 'ok'"`, + "ok", 'no extra newlines on ``' ); + + is( scalar `$Perl -e "print 'ok'" | $Perl -e "print <STDIN>"`, + "ok", 'no extra newlines on pipes'); + + is( scalar `$Perl -le "print 'ok'" | $Perl -le "print <STDIN>"`, + "ok\n\n", 'doubled up newlines'); + + is( scalar `$Perl -e "print 'ok'" | $Perl -le "print <STDIN>"`, + "ok\n", 'extra newlines on inside pipes'); + + is( scalar `$Perl -le "print 'ok'" | $Perl -e "print <STDIN>"`, + "ok\n", 'extra newlines on outgoing pipes'); +} + + is( system(qq{$Perl -e "exit 0"}), 0, 'Explicit exit of 0' ); -my $exit_one = $^O eq 'VMS' ? 4 << 8 : 1 << 8; +my $exit_one = $Is_VMS ? 4 << 8 : 1 << 8; is( system(qq{$Perl "-I../lib" -e "use vmsish qw(hushed); exit 1"}), $exit_one, 'Explicit exit of 1' ); @@ -66,8 +100,10 @@ END TODO: { + my $tnum = curr_test(); if( $^O =~ /Win32/ ) { - print "not ok 11 - exec failure doesn't terminate process # TODO Win32 exec failure waits for user input\n"; + print "not ok $tnum - exec failure doesn't terminate process # TODO Win32 exec failure waits for user input\n"; + next_test; last TODO; } |