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 | ||
34 | use base qw/ DynaLoader Exporter /; | |
35 | ||
36 | ||
37 | use vars qw/ $VERSION @EXPORT /; | |
38 | ||
ae8d64f5 | 39 | $VERSION = '0.03'; |
ea035a69 JH |
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 | |
5abff6f9 | 69 | T_OPAQUE_IN T_OPAQUE_OUT T_OPAQUE_array |
aa921f48 | 70 | T_OPAQUEPTR_IN T_OPAQUEPTR_OUT T_OPAQUEPTR_OUT_short |
5abff6f9 | 71 | T_OPAQUEPTR_IN_struct T_OPAQUEPTR_OUT_struct |
ea035a69 JH |
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 |