xref: /openbsd-src/gnu/usr.bin/perl/cpan/parent/t/compile-time-file.t (revision b39c515898423c8d899e35282f4b395f7cad3298)
1*b39c5158Smillert#!/usr/bin/perl -w
2*b39c5158SmillertBEGIN {
3*b39c5158Smillert    if( $ENV{PERL_CORE} ) {
4*b39c5158Smillert        chdir 't' if -d 't';
5*b39c5158Smillert        chdir '../lib/parent';
6*b39c5158Smillert        @INC = '..';
7*b39c5158Smillert    }
8*b39c5158Smillert}
9*b39c5158Smillert
10*b39c5158Smillertuse strict;
11*b39c5158Smillertuse Test::More tests => 9;
12*b39c5158Smillertuse lib 't/lib';
13*b39c5158Smillert
14*b39c5158Smillert{
15*b39c5158Smillert    package Child;
16*b39c5158Smillert    use parent 'Dummy';
17*b39c5158Smillert}
18*b39c5158Smillert
19*b39c5158Smillert{
20*b39c5158Smillert    package Child2;
21*b39c5158Smillert    require Dummy;
22*b39c5158Smillert    use parent -norequire, 'Dummy::InlineChild';
23*b39c5158Smillert}
24*b39c5158Smillert
25*b39c5158Smillert{
26*b39c5158Smillert    package Child3;
27*b39c5158Smillert    use parent "Dummy'Outside";
28*b39c5158Smillert}
29*b39c5158Smillert
30*b39c5158Smillertmy $obj = {};
31*b39c5158Smillertbless $obj, 'Child';
32*b39c5158Smillertisa_ok $obj, 'Dummy';
33*b39c5158Smillertcan_ok $obj, 'exclaim';
34*b39c5158Smillertis $obj->exclaim, "I CAN FROM Dummy", 'Inheritance is set up correctly';
35*b39c5158Smillert
36*b39c5158Smillert$obj = {};
37*b39c5158Smillertbless $obj, 'Child2';
38*b39c5158Smillertisa_ok $obj, 'Dummy::InlineChild';
39*b39c5158Smillertcan_ok $obj, 'exclaim';
40*b39c5158Smillertis $obj->exclaim, "I CAN FROM Dummy::InlineChild", 'Inheritance is set up correctly for inlined classes';
41*b39c5158Smillert
42*b39c5158Smillert$obj = {};
43*b39c5158Smillertbless $obj, 'Child3';
44*b39c5158Smillertisa_ok $obj, 'Dummy::Outside';
45*b39c5158Smillertcan_ok $obj, 'exclaim';
46*b39c5158Smillertis $obj->exclaim, "I CAN FROM Dummy::Outside", "Inheritance is set up correctly for classes inherited from via '";
47*b39c5158Smillert
48