This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rv2cv hooks should not create 2nd-class subs
[perl5.git] / ext / XS-APItest / t / sym-hook.t
1
2 # Test that PL_check hooks for RV2*V can override symbol lookups.
3
4 # So far we only test RV2CV.
5
6 use XS::APItest;
7 use Test::More tests => 3;
8
9 BEGIN {
10     setup_rv2cv_addunderbar;
11     $^H{'XS::APItest/addunder'} = 1; # make foo() actually call foo_()
12 }
13
14 sub foo_ { @_ ? shift . "___" : "phew" }
15
16 is(foo(), "phew");
17
18 # Make sure subs looked up via rv2cv check hooks are not treated as second-
19 # class subs.
20
21 BEGIN { # If there is a foo symbol, this test will not be testing anything.
22     delete $::{foo};
23 }
24 is((foo bar), 'bar___');
25 $bar = "baz";
26 is((foo $bar), 'baz___');