remove extraneous garbage from tests
[gitmo/Class-C3.git] / t / 10_Inconsistent_hierarchy.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 1;
7
8 =pod
9
10 This example is take from: http://www.python.org/2.3/mro.html
11
12 "Serious order disagreement" # From Guido
13 class O: pass
14 class X(O): pass
15 class Y(O): pass
16 class A(X,Y): pass
17 class B(Y,X): pass
18 try:
19     class Z(A,B): pass #creates Z(A,B) in Python 2.2
20 except TypeError:
21     pass # Z(A,B) cannot be created in Python 2.3
22
23 =cut
24
25 eval q{ 
26     {
27         package X;
28         use Class::C3;
29
30         package Y;
31         use Class::C3;    
32
33         package XY;
34         use Class::C3;
35         use base ('X', 'Y');
36
37         package YX;
38         use Class::C3;
39         use base ('Y', 'X');
40
41         package Z;
42         eval 'use Class::C3' if $Class::C3::C3_IN_CORE;
43         use base ('XY', 'YX');
44     }
45
46     Class::C3::initialize();
47
48     # now try to calculate the MRO
49     # and watch it explode :)
50     Class::C3::calculateMRO('Z');
51 };
52 #diag $@;
53 like($@, qr/Inconsistent hierarchy /, '... got the right error with an inconsistent hierarchy');