Commit | Line | Data |
85ccab9a |
1 | use strict; |
2 | use warnings; |
3 | use FindBin qw($Bin); |
4 | use File::Spec::Functions; |
5 | use File::Spec::Unix (); # need this for %INC munging |
6 | use Test::More; |
7 | use lib 't/lib'; |
8 | |
9 | BEGIN { |
10 | eval { require Devel::Hide }; |
11 | if ($@) { |
12 | eval { require Sub::Name }; |
13 | plan skip_all => "Devel::Hide required for this test in presence of Sub::Name" |
14 | if ! $@; |
15 | } |
16 | else { |
17 | Devel::Hide->import('Sub/Name.pm'); |
18 | } |
19 | require Class::Accessor::Grouped; |
20 | } |
21 | |
22 | # rerun the regular 3 tests under the assumption of no Sub::Name |
23 | for my $tname (qw/accessors.t accessors_ro.t accessors_wo.t/) { |
24 | |
25 | subtest "$tname without Sub::Name (pass $_)" => sub { |
26 | my $tfn = catfile($Bin, $tname); |
27 | |
28 | delete $INC{$_} for ( |
29 | qw/AccessorGroups.pm AccessorGroupsRO.pm AccessorGroupsSubclass.pm AccessorGroupsWO.pm/, |
30 | File::Spec::Unix->catfile ($tfn), |
31 | ); |
32 | |
33 | local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /subroutine .+ redefined/i }; |
34 | |
35 | do($tfn); |
36 | |
37 | } for (1 .. 2); |
38 | } |
39 | |
40 | done_testing; |