1#!perl -w 2 3BEGIN { 4 chdir 't' if -d 't'; 5 require "./test.pl"; 6 set_up_inc('../lib'); 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 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 57foreach my $package (qw(klonk urkkk kapow kayo thwacke zzzzzwap whamm)) { 58 my $ref = bless [], $package; 59 my $isa = $expect{$package}; 60 is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package"); 61 62 foreach my $class ($package, @$isa, 'UNIVERSAL') { 63 object_ok($ref, $class, $package); 64 } 65} 66