This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Bump $VERSION in many modules that have changed.
[perl5.git] / ext / XS / Typemap / Typemap.pm
1 package XS::Typemap;
2
3 =head1 NAME
4
5 XS::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
17 This module is used to test that the XS typemaps distributed
18 with perl are working as advertised. A function is available
19 for each typemap definition (eventually). In general each function
20 takes a variable, processes it through the OUTPUT typemap and then
21 returns it using the INPUT typemap.
22
23 A test script can then compare the input and output to make sure they
24 are the expected values. When only an input or output function is
25 provided the function will be named after the typemap entry and have
26 either '_IN' or '_OUT' appended.
27
28 All the functions are exported. There is no reason not to do this since
29 the entire purpose is for testing Perl. Namespace pollution will be limited
30 to the test script.
31
32 =cut
33
34 use base qw/ DynaLoader Exporter /;
35
36
37 use vars qw/ $VERSION @EXPORT /;
38
39 $VERSION = '0.02';
40
41 @EXPORT = (qw/
42            T_SV
43            T_SVREF
44            T_AVREF
45            T_HVREF
46            T_CVREF
47            T_SYSRET_fail T_SYSRET_pass
48            T_UV
49            T_IV
50            T_INT
51            T_ENUM
52            T_BOOL
53            T_U_INT
54            T_SHORT
55            T_U_SHORT
56            T_LONG
57            T_U_LONG
58            T_CHAR
59            T_U_CHAR
60            T_FLOAT
61            T_NV
62            T_DOUBLE
63            T_PV
64            T_PTR_IN T_PTR_OUT
65            T_PTRREF_IN T_PTRREF_OUT
66            T_REF_IV_REF
67            T_REF_IV_PTR_IN T_REF_IV_PTR_OUT
68            T_PTROBJ_IN T_PTROBJ_OUT
69            T_OPAQUE_IN T_OPAQUE_OUT T_OPAQUE_array
70            T_OPAQUEPTR_IN T_OPAQUEPTR_OUT T_OPAQUEPTR_OUT_short
71            T_OPAQUEPTR_IN_struct T_OPAQUEPTR_OUT_struct
72            T_ARRAY
73            T_STDIO_open T_STDIO_close T_STDIO_print
74            /);
75
76
77 bootstrap XS::Typemap;
78
79 =head1 NOTES
80
81 This module is for testing only and should not normally be installed.
82
83 =head1 AUTHOR
84
85 Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt>
86
87 Copyright (C) 2001 Tim Jenness All Rights Reserved.  This program is
88 free software; you can redistribute it and/or modify it under the same
89 terms as Perl itself.
90
91 =cut
92
93
94 1;
95