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