Add get_all_method_names
[gitmo/Class-MOP.git] / t / 306_is_class_loaded.t
CommitLineData
89f74416 1use strict;
2use warnings;
89f74416 3
8db4963b 4use FindBin qw/$Bin/;
5use lib "$Bin/lib";
6
7699d177 7use Test::More;
89f74416 8use Class::MOP ();
9
7699d177 10plan 'skip_all' => 'This test is only meaningful for an XS-enabled CMOP with Perl < 5.10'
f6db4612 11 if Class::MOP::IS_RUNNING_ON_5_10() || ! Class::MOP::USING_XS();
12
89f74416 13
7699d177 14plan tests => 1;
15
16# With pre-5.10 Perl, just defining this sub appears to shit in
17# TestClassLoaded's symbol tables (see the SCALAR package symbol you
18# end up with). This confuses the XS is_class_loaded method, which
19# looks for _any_ symbol, not just code symbols of VERSION/AUTHORITY
20# etc.
21
22sub whatever {
b39d2247 23 TestClassLoaded::this_method_does_not_even_exist();
89f74416 24}
25
26Class::MOP::load_class('TestClassLoaded');
27
28TODO: {
7699d177 29 local $TODO = 'The XS is_class_loaded is confused by the bogus method defined in whatever()';
b39d2247 30 ok(
31 TestClassLoaded->can('a_method'),
32 'TestClassLoader::a_method is defined'
33 );
89f74416 34}
35