Commit | Line | Data |
9540f4e4 |
1 | use strict; |
2 | use warnings; |
3 | use FindBin qw($Bin); |
4 | use File::Spec::Functions; |
cfed50f2 |
5 | use File::Spec::Unix (); # need this for %INC munging |
9540f4e4 |
6 | use Test::More; |
7 | use lib 't/lib'; |
8 | |
8019c4d8 |
9 | BEGIN { |
ba8c183b |
10 | require Class::Accessor::Grouped; |
11 | my $xsa_ver = $Class::Accessor::Grouped::__minimum_xsa_version; |
12 | eval { |
13 | require Class::XSAccessor; |
14 | Class::XSAccessor->VERSION ($xsa_ver); |
15 | }; |
16 | plan skip_all => "Class::XSAccessor >= $xsa_ver not available" |
17 | if $@; |
8019c4d8 |
18 | } |
9540f4e4 |
19 | |
28344104 |
20 | # rerun the regular 3 tests under XSAccessor |
8019c4d8 |
21 | $Class::Accessor::Grouped::USE_XS = 1; |
cfed50f2 |
22 | for my $tname (qw/accessors.t accessors_ro.t accessors_wo.t/) { |
23 | |
24 | subtest "$tname with USE_XS (pass $_)" => sub { |
25 | my $tfn = catfile($Bin, $tname); |
26 | |
f7cf6867 |
27 | for ( |
e6f2993f |
28 | qw|AccessorGroups.pm AccessorGroups/BeenThereDoneThat.pm AccessorGroupsRO.pm AccessorGroupsSubclass.pm AccessorGroupsWO.pm|, |
cfed50f2 |
29 | File::Spec::Unix->catfile ($tfn), |
f7cf6867 |
30 | ) { |
31 | delete $INC{$_}; |
32 | no strict 'refs'; |
33 | if (my ($mod) = $_ =~ /(.+)\.pm$/ ) { |
34 | %{"${mod}::"} = (); |
35 | } |
36 | } |
cfed50f2 |
37 | |
38 | local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /subroutine .+ redefined/i }; |
39 | |
40 | do($tfn); |
41 | |
42 | } for (1 .. 2); |
8019c4d8 |
43 | } |
44 | |
45 | done_testing; |