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