xref: /openbsd-src/gnu/usr.bin/perl/t/opbasic/magic_phase.t (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1*91f110e0Safresh1#!./perl
2*91f110e0Safresh1
3*91f110e0Safresh1use strict;
4*91f110e0Safresh1use warnings;
5*91f110e0Safresh1
6*91f110e0Safresh1# Test ${^GLOBAL_PHASE}
7*91f110e0Safresh1#
8*91f110e0Safresh1# Test::More, t/test.pl, etc., assert plans in END, which happens before global
9*91f110e0Safresh1# destruction. We do not want to use those programs/libraries here, so we
10*91f110e0Safresh1# place this file in directory t/opbasic.
11*91f110e0Safresh1
12*91f110e0Safresh1BEGIN { print "1..7\n" }
13*91f110e0Safresh1
14*91f110e0Safresh1sub ok ($$) {
15*91f110e0Safresh1    print "not " if !$_[0];
16*91f110e0Safresh1    print "ok";
17*91f110e0Safresh1    print " - $_[1]" if defined $_[1];
18*91f110e0Safresh1    print "\n";
19*91f110e0Safresh1}
20*91f110e0Safresh1
21*91f110e0Safresh1BEGIN {
22*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'START', 'START';
23*91f110e0Safresh1}
24*91f110e0Safresh1
25*91f110e0Safresh1CHECK {
26*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'CHECK', 'CHECK';
27*91f110e0Safresh1}
28*91f110e0Safresh1
29*91f110e0Safresh1INIT {
30*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'INIT', 'INIT';
31*91f110e0Safresh1}
32*91f110e0Safresh1
33*91f110e0Safresh1ok ${^GLOBAL_PHASE} eq 'RUN', 'RUN';
34*91f110e0Safresh1
35*91f110e0Safresh1sub Moo::DESTROY {
36*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'RUN', 'DESTROY is run-time too, usually';
37*91f110e0Safresh1}
38*91f110e0Safresh1
39*91f110e0Safresh1my $tiger = bless {}, Moo::;
40*91f110e0Safresh1
41*91f110e0Safresh1sub Kooh::DESTROY {
42*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'DESTRUCT', 'DESTRUCT';
43*91f110e0Safresh1}
44*91f110e0Safresh1
45*91f110e0Safresh1our $affe = bless {}, Kooh::;
46*91f110e0Safresh1
47*91f110e0Safresh1END {
48*91f110e0Safresh1    ok ${^GLOBAL_PHASE} eq 'END', 'END';
49*91f110e0Safresh1}
50