Even more corner case fixes - install the resolved final cref into the callER, not...
[p5sagit/Class-Accessor-Grouped.git] / t / accessors_xs.t
CommitLineData
9540f4e4 1use strict;
2use warnings;
3use FindBin qw($Bin);
4use File::Spec::Functions;
cfed50f2 5use File::Spec::Unix (); # need this for %INC munging
9540f4e4 6use Test::More;
7use lib 't/lib';
8
8019c4d8 9BEGIN {
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 $@;
18}
9540f4e4 19
28344104 20# rerun the regular 3 tests under XSAccessor
8019c4d8 21$Class::Accessor::Grouped::USE_XS = 1;
cfed50f2 22for 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 (
cfed50f2 28 qw/AccessorGroups.pm AccessorGroupsRO.pm AccessorGroupsSubclass.pm AccessorGroupsWO.pm/,
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
45done_testing;