Commit | Line | Data |
---|---|---|
ea035a69 JH |
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 | ||
b58f046e NC |
34 | use parent qw/ Exporter /; |
35 | require XSLoader; | |
ea035a69 JH |
36 | |
37 | use vars qw/ $VERSION @EXPORT /; | |
38 | ||
147e3846 | 39 | $VERSION = '0.15'; |
ea035a69 JH |
40 | |
41 | @EXPORT = (qw/ | |
42 | T_SV | |
43 | T_SVREF | |
1d2615b4 | 44 | T_SVREF_REFCOUNT_FIXED |
ea035a69 | 45 | T_AVREF |
b64f48ff | 46 | T_AVREF_REFCOUNT_FIXED |
ea035a69 | 47 | T_HVREF |
b64f48ff | 48 | T_HVREF_REFCOUNT_FIXED |
ea035a69 | 49 | T_CVREF |
1d2615b4 | 50 | T_CVREF_REFCOUNT_FIXED |
ea035a69 JH |
51 | T_SYSRET_fail T_SYSRET_pass |
52 | T_UV | |
53 | T_IV | |
54 | T_INT | |
55 | T_ENUM | |
56 | T_BOOL | |
742aa4c0 | 57 | T_BOOL_2 |
b0bbf760 | 58 | T_BOOL_OUT |
ea035a69 JH |
59 | T_U_INT |
60 | T_SHORT | |
61 | T_U_SHORT | |
62 | T_LONG | |
63 | T_U_LONG | |
64 | T_CHAR | |
65 | T_U_CHAR | |
66 | T_FLOAT | |
67 | T_NV | |
68 | T_DOUBLE | |
e6d4bf43 | 69 | T_PV T_PV_null |
ea035a69 JH |
70 | T_PTR_IN T_PTR_OUT |
71 | T_PTRREF_IN T_PTRREF_OUT | |
72 | T_REF_IV_REF | |
73 | T_REF_IV_PTR_IN T_REF_IV_PTR_OUT | |
74 | T_PTROBJ_IN T_PTROBJ_OUT | |
5abff6f9 | 75 | T_OPAQUE_IN T_OPAQUE_OUT T_OPAQUE_array |
aa921f48 | 76 | T_OPAQUEPTR_IN T_OPAQUEPTR_OUT T_OPAQUEPTR_OUT_short |
5abff6f9 | 77 | T_OPAQUEPTR_IN_struct T_OPAQUEPTR_OUT_struct |
ea035a69 | 78 | T_ARRAY |
c1b8440f | 79 | T_STDIO_open T_STDIO_open_ret_in_arg T_STDIO_close T_STDIO_print |
2465d83f | 80 | T_PACKED_in T_PACKED_out |
ea0d3d8e | 81 | T_PACKEDARRAY_in T_PACKEDARRAY_out |
21b5216d | 82 | T_INOUT T_IN T_OUT |
ea035a69 JH |
83 | /); |
84 | ||
b58f046e | 85 | XSLoader::load(); |
ea035a69 JH |
86 | |
87 | =head1 NOTES | |
88 | ||
89 | This module is for testing only and should not normally be installed. | |
90 | ||
91 | =head1 AUTHOR | |
92 | ||
93 | Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt> | |
94 | ||
95 | Copyright (C) 2001 Tim Jenness All Rights Reserved. This program is | |
96 | free software; you can redistribute it and/or modify it under the same | |
97 | terms as Perl itself. | |
98 | ||
99 | =cut | |
100 | ||
101 | ||
102 | 1; | |
103 |