This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
(perl #133422) handle Off_t smaller than size_t
[perl5.git] / ext / XS-Typemap / Typemap.pm
CommitLineData
ea035a69
JH
1package XS::Typemap;
2
3=head1 NAME
4
5XS::Typemap - module to test the XS typemaps distributed with perl
6
7=head1 SYNOPSIS
8
9 use XS::Typemap;
10
11 $output = T_IV( $input );
12 $output = T_PV( $input );
13 @output = T_ARRAY( @input );
14
15=head1 DESCRIPTION
16
17This module is used to test that the XS typemaps distributed
18with perl are working as advertised. A function is available
19for each typemap definition (eventually). In general each function
20takes a variable, processes it through the OUTPUT typemap and then
21returns it using the INPUT typemap.
22
23A test script can then compare the input and output to make sure they
24are the expected values. When only an input or output function is
25provided the function will be named after the typemap entry and have
26either '_IN' or '_OUT' appended.
27
28All the functions are exported. There is no reason not to do this since
29the entire purpose is for testing Perl. Namespace pollution will be limited
30to the test script.
31
32=cut
33
b58f046e
NC
34use parent qw/ Exporter /;
35require XSLoader;
ea035a69 36
fd55ca4f 37our $VERSION = '0.16';
ea035a69 38
fd55ca4f 39our @EXPORT = (qw/
ea035a69
JH
40 T_SV
41 T_SVREF
1d2615b4 42 T_SVREF_REFCOUNT_FIXED
ea035a69 43 T_AVREF
b64f48ff 44 T_AVREF_REFCOUNT_FIXED
ea035a69 45 T_HVREF
b64f48ff 46 T_HVREF_REFCOUNT_FIXED
ea035a69 47 T_CVREF
1d2615b4 48 T_CVREF_REFCOUNT_FIXED
ea035a69
JH
49 T_SYSRET_fail T_SYSRET_pass
50 T_UV
51 T_IV
52 T_INT
53 T_ENUM
54 T_BOOL
742aa4c0 55 T_BOOL_2
b0bbf760 56 T_BOOL_OUT
ea035a69
JH
57 T_U_INT
58 T_SHORT
59 T_U_SHORT
60 T_LONG
61 T_U_LONG
62 T_CHAR
63 T_U_CHAR
64 T_FLOAT
65 T_NV
66 T_DOUBLE
e6d4bf43 67 T_PV T_PV_null
ea035a69
JH
68 T_PTR_IN T_PTR_OUT
69 T_PTRREF_IN T_PTRREF_OUT
70 T_REF_IV_REF
71 T_REF_IV_PTR_IN T_REF_IV_PTR_OUT
72 T_PTROBJ_IN T_PTROBJ_OUT
5abff6f9 73 T_OPAQUE_IN T_OPAQUE_OUT T_OPAQUE_array
aa921f48 74 T_OPAQUEPTR_IN T_OPAQUEPTR_OUT T_OPAQUEPTR_OUT_short
5abff6f9 75 T_OPAQUEPTR_IN_struct T_OPAQUEPTR_OUT_struct
ea035a69 76 T_ARRAY
c1b8440f 77 T_STDIO_open T_STDIO_open_ret_in_arg T_STDIO_close T_STDIO_print
2465d83f 78 T_PACKED_in T_PACKED_out
ea0d3d8e 79 T_PACKEDARRAY_in T_PACKEDARRAY_out
21b5216d 80 T_INOUT T_IN T_OUT
ea035a69
JH
81 /);
82
b58f046e 83XSLoader::load();
ea035a69
JH
84
85=head1 NOTES
86
87This module is for testing only and should not normally be installed.
88
89=head1 AUTHOR
90
91Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt>
92
93Copyright (C) 2001 Tim Jenness All Rights Reserved. This program is
94free software; you can redistribute it and/or modify it under the same
95terms as Perl itself.
96
97=cut
98
99
1001;
101