source: trunk/essentials/dev-lang/perl/lib/vmsish.t@ 3280

Last change on this file since 3280 was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 6.4 KB
Line 
1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6}
7
8my $Invoke_Perl = qq(MCR $^X "-I[-.lib]");
9
10require "./test.pl";
11plan(tests => 25);
12
13SKIP: {
14 skip("tests for non-VMS only", 1) if $^O eq 'VMS';
15
16 no utf8;
17
18 BEGIN { $Orig_Bits = $^H }
19
20 # make sure that all those 'use vmsish' calls didn't do anything.
21 is( $Orig_Bits, $^H, 'use vmsish a no-op' );
22}
23
24SKIP: {
25 skip("tests for VMS only", 24) unless $^O eq 'VMS';
26
27#========== vmsish status ==========
28`$Invoke_Perl -e 1`; # Avoid system() from a pipe from harness. Mutter.
29is($?,0,"simple Perl invokation: POSIX success status");
30{
31 use vmsish qw(status);
32 is(($? & 1),1, "importing vmsish [vmsish status]");
33 {
34 no vmsish qw(status); # check unimport function
35 is($?,0, "unimport vmsish [POSIX STATUS]");
36 }
37 # and lexical scoping
38 is(($? & 1),1,"lex scope of vmsish [vmsish status]");
39}
40is($?,0,"outer lex scope of vmsish [POSIX status]");
41
42{
43 use vmsish qw(exit); # check import function
44 is($?,0,"importing vmsish exit [POSIX status]");
45}
46
47#========== vmsish exit, messages ==========
48{
49 use vmsish qw(status);
50
51 $msg = do_a_perl('-e "exit 1"');
52 $msg =~ s/\n/\\n/g; # keep output on one line
53 like($msg,'ABORT', "POSIX ERR exit, DCL error message check");
54 is($?&1,0,"vmsish status check, POSIX ERR exit");
55
56 $msg = do_a_perl('-e "use vmsish qw(exit); exit 1"');
57 $msg =~ s/\n/\\n/g; # keep output on one line
58 ok(length($msg)==0,"vmsish OK exit, DCL error message check");
59 is($?&1,1, "vmsish status check, vmsish OK exit");
60
61 $msg = do_a_perl('-e "use vmsish qw(exit); exit 44"');
62 $msg =~ s/\n/\\n/g; # keep output on one line
63 like($msg, 'ABORT', "vmsish ERR exit, DCL error message check");
64 is($?&1,0,"vmsish ERR exit, vmsish status check");
65
66 $msg = do_a_perl('-e "use vmsish qw(hushed); exit 1"');
67 $msg =~ s/\n/\\n/g; # keep output on one line
68 ok(($msg !~ /ABORT/),"POSIX ERR exit, vmsish hushed, DCL error message check");
69
70 $msg = do_a_perl('-e "use vmsish qw(exit hushed); exit 44"');
71 $msg =~ s/\n/\\n/g; # keep output on one line
72 ok(($msg !~ /ABORT/),"vmsish ERR exit, vmsish hushed, DCL error message check");
73
74 $msg = do_a_perl('-e "use vmsish qw(exit hushed); no vmsish qw(hushed); exit 44"');
75 $msg =~ s/\n/\\n/g; # keep output on one line
76 like($msg,'ABORT',"vmsish ERR exit, no vmsish hushed, DCL error message check");
77
78 $msg = do_a_perl('-e "use vmsish qw(hushed); die(qw(blah));"');
79 $msg =~ s/\n/\\n/g; # keep output on one line
80 ok(($msg !~ /ABORT/),"die, vmsish hushed, DCL error message check");
81
82 $msg = do_a_perl('-e "use vmsish qw(hushed); use Carp; croak(qw(blah));"');
83 $msg =~ s/\n/\\n/g; # keep output on one line
84 ok(($msg !~ /ABORT/),"croak, vmsish hushed, DCL error message check");
85
86 $msg = do_a_perl('-e "use vmsish qw(exit); vmsish::hushed(1); exit 44;"');
87 $msg =~ s/\n/\\n/g; # keep output on one line
88 ok(($msg !~ /ABORT/),"vmsish ERR exit, vmsish hushed at runtime, DCL error message check");
89
90 local *TEST;