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; 16use mro 'c3'; 17 18# No parents 19 20package urkkk; 21use mro 'c3'; 22 23# 1 parent 24@urkkk::ISA = 'klonk'; 25 26package kayo; 27use mro 'c3'; 28 29# 2 parents 30@urkkk::ISA = ('klonk', 'kapow'); 31 32package thwacke; 33use mro 'c3'; 34 35# No parents, has @ISA 36@thwacke::ISA = (); 37 38package zzzzzwap; 39use mro 'c3'; 40 41@zzzzzwap::ISA = ('thwacke', 'kapow'); 42 43package whamm; 44use mro 'c3'; 45 46@whamm::ISA = ('kapow', 'thwacke'); 47 48package main; 49 50my %expect = 51 ( 52 klonk => [qw(klonk)], 53 urkkk => [qw(urkkk klonk kapow)], 54 kapow => [qw(kapow)], 55 kayo => [qw(kayo)], 56 thwacke => [qw(thwacke)], 57 zzzzzwap => [qw(zzzzzwap thwacke kapow)], 58 whamm => [qw(whamm kapow thwacke)], 59 ); 60 61foreach my $package (qw(klonk urkkk kapow kayo thwacke zzzzzwap whamm)) { 62 my $ref = bless [], $package; 63 my $isa = $expect{$package}; 64 is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package"); 65 66 foreach my $class ($package, @$isa, 'UNIVERSAL') { 67 object_ok($ref, $class, $package); 68 } 69} 70