xref: /openbsd-src/gnu/usr.bin/perl/t/class/phasers.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1#!./perl
2
3BEGIN {
4    chdir 't' if -d 't';
5    require './test.pl';
6    set_up_inc('../lib');
7    require Config;
8}
9
10use v5.36;
11use feature 'class';
12no warnings 'experimental::class';
13
14# ADJUST
15{
16    my $adjusted;
17    my $class_in_adjust;
18
19    class Testcase1 {
20        ADJUST { $adjusted .= "a" }
21        ADJUST { $adjusted .= "b" }
22        ADJUST { $class_in_adjust = __CLASS__; }
23    }
24
25    Testcase1->new;
26    is($adjusted, "ab", 'both ADJUST blocks run in order');
27    is($class_in_adjust, "Testcase1", 'value of __CLASS__ in ADJUST block');
28}
29
30# $self in ADJUST
31{
32    my $self_in_ADJUST;
33
34    class Testcase2 {
35        ADJUST { $self_in_ADJUST = $self; }
36    }
37
38    my $obj = Testcase2->new;
39    is($self_in_ADJUST, $obj, '$self is set correctly inside ADJUST blocks');
40}
41
42done_testing;
43