1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More tests => 2;
7
8BEGIN {
9    use_ok('Class::C3::XS');
10}
11
12=pod
13
14This tests the classic diamond inheritence pattern.
15
16   <A>
17  /   \
18<B>   <C>
19  \   /
20   <D>
21
22=cut
23
24{
25    package Diamond_A;
26    our @ISA = qw//;
27}
28{
29    package Diamond_B;
30    use base 'Diamond_A';
31}
32{
33    package Diamond_C;
34    use base 'Diamond_A';     
35}
36{
37    package Diamond_D;
38    use base ('Diamond_B', 'Diamond_C');
39}
40
41is_deeply(
42    [ Class::C3::XS::calculateMRO('Diamond_D') ],
43    [ qw(Diamond_D Diamond_B Diamond_C Diamond_A) ],
44    '... got the right MRO for Diamond_D');
45