Improve test coverage, extract function for better testing
[perl.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 ($type, $varname, $hiertype);
11 my ($result, $expected);
12
13 $type = 'struct DATA *';
14 $varname = 'RETVAL';
15 $hiertype = 0;
16 $expected = "$type\t$varname";
17 $result = map_type($type, $varname, $hiertype);
18 is( $result, $expected,
19     "Got expected map_type for <$type>, <$varname>, <$hiertype>" );
20
21 $type = 'Crypt::Shark';
22 $varname = undef;
23 $hiertype = 0;
24 $expected = 'Crypt__Shark';
25 $result = map_type($type, $varname, $hiertype);
26 is( $result, $expected,
27     "Got expected map_type for <$type>, undef, <$hiertype>" );
28
29 $type = 'Crypt::Shark';
30 $varname = undef;
31 $hiertype = 1;
32 $expected = 'Crypt::Shark';
33 $result = map_type($type, $varname, $hiertype);
34 is( $result, $expected,
35     "Got expected map_type for <$type>, undef, <$hiertype>" );
36
37 $type = 'Crypt::TC18';
38 $varname = 'RETVAL';
39 $hiertype = 0;
40 $expected = "Crypt__TC18\t$varname";
41 $result = map_type($type, $varname, $hiertype);
42 is( $result, $expected,
43     "Got expected map_type for <$type>, <$varname>, <$hiertype>" );
44
45 $type = 'Crypt::TC18';
46 $varname = 'RETVAL';
47 $hiertype = 1;
48 $expected = "Crypt::TC18\t$varname";
49 $result = map_type($type, $varname, $hiertype);
50 is( $result, $expected,
51     "Got expected map_type for <$type>, <$varname>, <$hiertype>" );
52
53 $type = 'array(alpha,beta) gamma';
54 $varname = 'RETVAL';
55 $hiertype = 0;
56 $expected = "alpha *\t$varname";
57 $result = map_type($type, $varname, $hiertype);
58 is( $result, $expected,
59     "Got expected map_type for <$type>, <$varname>, <$hiertype>" );
60
61 $type = '(*)';
62 $varname = 'RETVAL';
63 $hiertype = 0;
64 $expected = "(* $varname )";
65 $result = map_type($type, $varname, $hiertype);
66 is( $result, $expected,
67     "Got expected map_type for <$type>, <$varname>, <$hiertype>" );