This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
gv.c: Added gv_fetchmethod_(sv|pv|pvn)_flags.
[perl5.git] / ext / XS-APItest / t / gv_fetchmethod_flags.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 9; #23;
7
8 use_ok('XS::APItest');
9
10 sub method { 1 }
11
12 ok !XS::APItest::gv_fetchmethod_flags_type(\%::, "nothing", 1, 0);
13
14 for my $type ( 1..3 ) {
15     is XS::APItest::gv_fetchmethod_flags_type(\%::, "method", $type, 0), "*main::method", "Sanity check";
16 }
17
18 ok !XS::APItest::gv_fetchmethod_flags_type(\%::, "method\0not quite!", 1, 0), "gv_fetchmethod_flags_sv() is nul-clean";
19 ok !XS::APItest::gv_fetchmethod_flags_type(\%::, "method\0not quite!", 3, 0), "gv_fetchmethod_flags_pvn() is nul-clean";
20
21 ok XS::APItest::gv_fetchmethod_flags_type(\%::, "method\0not quite!", 0, 0), "gv_fetchmethod_flags() is not nul-clean";
22 is XS::APItest::gv_fetchmethod_flags_type(\%::, "method\0not quite!", 2, 0), "*main::method", "gv_fetchmethod_flags_pv() is not nul-clean";
23
24 =begin
25 {
26     use utf8;
27     use open qw( :utf8 :std );
28
29     package main;
30     
31     sub method { 1 }
32     sub method { 1 }
33
34     for my $type ( 1..3 ) {
35         ::is XS::APItest::gv_fetchmethod_flags_type(\%main::, "method", $type, 0), "*main::method";
36         ::is XS::APItest::gv_fetchmethod_flags_type(\%main::, "method", $type, 0), "*main::method";
37         
38         {
39             no strict 'refs';
40             ::ok !XS::APItest::gv_fetchmethod_flags_type(
41                             \%{"\357\275\215\357\275\201\357\275\211\357\275\216::"},
42                             "method", $type, 0);
43             ::ok !XS::APItest::gv_fetchmethod_flags_type(
44                             \%{"\357\275\215\357\275\201\357\275\211\357\275\216::"},
45                             "method", $type, 0);
46         }
47         ::ok !XS::APItest::gv_fetchmethod_flags_type(\%main::,
48                   "\357\275\215\357\275\205\357\275\224\357\275\210\357\275\217\357\275\204",
49                    $type, 0);
50     }
51 }
52 =cut