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
CommitLineData
bb5e8eb4
JK
1#!/usr/bin/perl
2use strict;
3use warnings;
4use Test::More tests => 7;
5use lib qw( lib );
6use ExtUtils::ParseXS::Utilities qw(
7 map_type
8);
9
361d4be6 10my ($self, $type, $varname);
bb5e8eb4
JK
11my ($result, $expected);
12
13$type = 'struct DATA *';
14$varname = 'RETVAL';
361d4be6 15$self->{hiertype} = 0;
bb5e8eb4 16$expected = "$type\t$varname";
361d4be6 17$result = map_type($self, $type, $varname);
bb5e8eb4 18is( $result, $expected,
361d4be6 19 "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
bb5e8eb4
JK
20
21$type = 'Crypt::Shark';
22$varname = undef;
361d4be6 23$self->{hiertype} = 0;
bb5e8eb4 24$expected = 'Crypt__Shark';
361d4be6 25$result = map_type($self, $type, $varname);
bb5e8eb4 26is( $result, $expected,
361d4be6 27 "Got expected map_type for <$type>, undef, <$self->{hiertype}>" );
bb5e8eb4
JK
28
29$type = 'Crypt::Shark';
30$varname = undef;
361d4be6 31$self->{hiertype} = 1;
bb5e8eb4 32$expected = 'Crypt::Shark';
361d4be6 33$result = map_type($self, $type, $varname);
bb5e8eb4 34is( $result, $expected,
361d4be6 35 "Got expected map_type for <$type>, undef, <$self->{hiertype}>" );
bb5e8eb4
JK
36
37$type = 'Crypt::TC18';
38$varname = 'RETVAL';
361d4be6 39$self->{hiertype} = 0;
bb5e8eb4 40$expected = "Crypt__TC18\t$varname";
361d4be6 41$result = map_type($self, $type, $varname);
bb5e8eb4 42is( $result, $expected,
361d4be6 43 "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
bb5e8eb4
JK
44
45$type = 'Crypt::TC18';
46$varname = 'RETVAL';
361d4be6 47$self->{hiertype} = 1;
bb5e8eb4 48$expected = "Crypt::TC18\t$varname";
361d4be6 49$result = map_type($self, $type, $varname);
bb5e8eb4 50is( $result, $expected,
361d4be6 51 "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
bb5e8eb4
JK
52
53$type = 'array(alpha,beta) gamma';
54$varname = 'RETVAL';
361d4be6 55$self->{hiertype} = 0;
bb5e8eb4 56$expected = "alpha *\t$varname";
361d4be6 57$result = map_type($self, $type, $varname);
bb5e8eb4 58is( $result, $expected,
361d4be6 59 "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );
bb5e8eb4
JK
60
61$type = '(*)';
62$varname = 'RETVAL';
361d4be6 63$self->{hiertype} = 0;
bb5e8eb4 64$expected = "(* $varname )";
361d4be6 65$result = map_type($self, $type, $varname);
bb5e8eb4 66is( $result, $expected,
361d4be6 67 "Got expected map_type for <$type>, <$varname>, <$self->{hiertype}>" );