This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
A typemap is a file, not a directory.
[perl5.git] / dist / ExtUtils-ParseXS / t / 104-map_type.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use Test::More tests =>  7;
5 use lib qw( lib );
6 use ExtUtils::ParseXS::Utilities qw(
7   map_type
8 );
9
10 my ($self, $type, $varname);
11 my ($result, $expected);
12
13 $type = 'struct DATA *';
14 $varname = 'RETVAL';
15 $self->{hiertype} = 0;
16 $expected = "$type\t$varname";
17 $result = map_type($self, $type, $varname);
18 is( $result, $expected,
19     "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
20
21 $type = 'Crypt::Shark';
22 $varname = undef;
23 $self->{hiertype} = 0;
24 $expected = 'Crypt__Shark';
25 $result = map_type($self, $type, $varname);
26 is( $result, $expected,
27     "Got expected map_type for <$type>, undef, <$self->{hiertype}>" );
28
29 $type = 'Crypt::Shark';
30 $varname = undef;
31 $self->{hiertype} = 1;
32 $expected = 'Crypt::Shark';
33 $result = map_type($self, $type, $varname);
34 is( $result, $expected,
35     "Got expected map_type for <$type>, undef, <$self->{hiertype}>" );
36
37 $type = 'Crypt::TC18';
38 $varname = 'RETVAL';
39 $self->{hiertype} = 0;
40 $expected = "Crypt__TC18\t$varname";
41 $result = map_type($self, $type, $varname);
42 is( $result, $expected,
43     "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
44
45 $type = 'Crypt::TC18';
46 $varname = 'RETVAL';
47 $self->{hiertype} = 1;
48 $expected = "Crypt::TC18\t$varname";
49 $result = map_type($self, $type, $varname);
50 is( $result, $expected,
51     "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
52
53 $type = 'array(alpha,beta) gamma';
54 $varname = 'RETVAL';
55 $self->{hiertype} = 0;
56 $expected = "alpha *\t$varname";
57 $result = map_type($self, $type, $varname);
58 is( $result, $expected,
59     "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
60
61 $type = '(*)';
62 $varname = 'RETVAL';
63 $self->{hiertype} = 0;
64 $expected = "(* $varname )";
65 $result = map_type($self, $type, $varname);
66 is( $result, $expected,
67     "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );