XS::Typemap: Tests for T_INOUT typemap
authorSteffen Mueller <smueller@cpan.org>
Thu, 26 Jan 2012 18:18:33 +0000 (19:18 +0100)
committerSteffen Mueller <smueller@cpan.org>
Wed, 1 Feb 2012 07:07:49 +0000 (08:07 +0100)
ext/XS-Typemap/Typemap.pm
ext/XS-Typemap/Typemap.xs
ext/XS-Typemap/t/Typemap.t

index 38c53ce..ec08e86 100644 (file)
@@ -77,6 +77,7 @@ $VERSION = '0.08';
           T_STDIO_open T_STDIO_close T_STDIO_print
            T_PACKED_in T_PACKED_out
            T_PACKEDARRAY_in T_PACKEDARRAY_out
+           T_INOUT
           /);
 
 XSLoader::load();
index 906a66c..11b32b0 100644 (file)
@@ -1415,6 +1415,15 @@ writing.
 See L<perliol> for more information on the Perl IO abstraction
 layer. Perl must have been built with C<-Duseperlio>.
 
+=cut
+
+PerlIO *
+T_INOUT(in)
+  PerlIO *in;
+ CODE:
+  RETVAL = in; /* silly test but better than nothing */
+ OUTPUT: RETVAL
+
 =item T_OUT
 
 NOT YET
index 40946f5..e63ae62 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     }
 }
 
-use Test::More tests => 108;
+use Test::More tests => 109;
 
 use strict;
 use warnings;
@@ -355,3 +355,14 @@ if (defined $fh) {
   }
 }
 
+# T_INOUT
+SCOPE: {
+  my $buf = '';
+  local $| = 1;
+  open my $fh, "+>", \$buf or die $!;
+  my $str = "Fooo!\n";
+  print $fh $str;
+  my $fh2 = T_INOUT($fh);
+  seek($fh2, 0, 0);
+  ok(readline($fh2), $str, 'T_INOUT');
+}