This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make MM_VMS::oneline build continuation lines properly.
[perl5.git] / t / mro / isa_dfs.t
CommitLineData
73519bd0
NC
1#!perl -w
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6 require "./test.pl";
7}
8
9use strict;
10
11plan 'no_plan';
12
13# package klonk doesn't have a stash.
14
15package kapow;
16
17# No parents
18
19package urkkk;
20
21# 1 parent
22@urkkk::ISA = 'klonk';
23
24package kayo;
25
26# 2 parents
27@urkkk::ISA = ('klonk', 'kapow');
28
29package thwacke;
30
31# No parents, has @ISA
32@thwacke::ISA = ();
33
34package zzzzzwap;
35
36@zzzzzwap::ISA = ('thwacke', 'kapow');
37
38package whamm;
39
40@whamm::ISA = ('kapow', 'thwacke');
41
42package main;
43
44require mro;
45
04e5ac63
NC
46my %expect =
47 (
48 klonk => [qw(klonk)],
49 urkkk => [qw(urkkk klonk kapow)],
50 kapow => [qw(kapow)],
51 kayo => [qw(kayo)],
52 thwacke => [qw(thwacke)],
53 zzzzzwap => [qw(zzzzzwap thwacke kapow)],
54 whamm => [qw(whamm kapow thwacke)],
55 );
56
73519bd0
NC
57foreach my $package (qw(klonk urkkk kapow kayo thwacke zzzzzwap whamm)) {
58 my $ref = bless [], $package;
04e5ac63
NC
59 my $isa = $expect{$package};
60 is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package");
73519bd0
NC
61
62 foreach my $class ($package, @$isa, 'UNIVERSAL') {
bbce3ca6 63 object_ok($ref, $class, $package);
73519bd0
NC
64 }
65}