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