Commit | Line | Data |
cd6c9654 |
1 | use Test::More tests => 10; |
bf5734d4 |
2 | |
13021a80 |
3 | BEGIN { |
4 | if ($ENV{PERL_CORE}) { |
5 | chdir('t') if -d 't'; |
6 | @INC = qw(../lib); |
7 | } |
8 | } |
9 | |
bf5734d4 |
10 | BEGIN { use_ok('NEXT') }; |
11 | my $order = 0; |
13021a80 |
12 | |
13 | package A; |
14 | @ISA = qw/B C D/; |
15 | |
bf5734d4 |
16 | sub test { ++$order; ::ok($order==1,"test A"); $_[0]->NEXT::ACTUAL::test;} |
13021a80 |
17 | |
18 | package B; |
bf5734d4 |
19 | @ISA = qw/D C/; |
20 | sub test { ++$order; ::ok($order==2,"test B"); $_[0]->NEXT::ACTUAL::test;} |
13021a80 |
21 | |
22 | package C; |
23 | @ISA = qw/D/; |
bf5734d4 |
24 | sub test { |
25 | ++$order; ::ok($order==4||$order==6,"test C"); |
26 | $_[0]->NEXT::ACTUAL::test; |
27 | } |
13021a80 |
28 | |
29 | package D; |
30 | |
bf5734d4 |
31 | sub test { |
32 | ++$order; ::ok($order==3||$order==5||$order==7||$order==8,"test D"); |
33 | $_[0]->NEXT::ACTUAL::test; |
34 | } |
13021a80 |
35 | |
36 | package main; |
37 | |
38 | my $foo = {}; |
39 | |
40 | bless($foo,"A"); |
41 | |
bf5734d4 |
42 | eval{ $foo->test } |
43 | ? fail("Didn't die on missing ancestor") |
44 | : pass("Correctly dies after full traversal"); |