1#!/usr/bin/perl 2use strict; 3use warnings; 4use Carp; 5use Cwd qw(cwd); 6use File::Temp qw( tempdir ); 7use Test::More tests => 2; 8use ExtUtils::ParseXS::Utilities qw( 9 process_typemaps 10); 11 12my $startdir = cwd(); 13{ 14 my ($type_kind_ref, $proto_letter_ref, $input_expr_ref, $output_expr_ref); 15 my $typemap = 'typemap'; 16 my $tdir = tempdir( CLEANUP => 1 ); 17 chdir $tdir or croak "Unable to change to tempdir for testing"; 18 eval { 19 ($type_kind_ref, $proto_letter_ref, $input_expr_ref, $output_expr_ref) 20 = process_typemaps( $typemap, $tdir ); 21 }; 22 like( $@, qr/Can't find \Q$typemap\E in \Q$tdir\E/, #' 23 "Got expected result for no typemap in current directory" ); 24 chdir $startdir; 25} 26 27{ 28 my ($type_kind_ref, $proto_letter_ref, $input_expr_ref, $output_expr_ref); 29 my $typemap = [ qw( pseudo typemap ) ]; 30 my $tdir = tempdir( CLEANUP => 1 ); 31 chdir $tdir or croak "Unable to change to tempdir for testing"; 32 open my $IN, '>', 'typemap' or croak "Cannot open for writing"; 33 print $IN "\n"; 34 close $IN or croak "Cannot close after writing"; 35 eval { 36 ($type_kind_ref, $proto_letter_ref, $input_expr_ref, $output_expr_ref) 37 = process_typemaps( $typemap, $tdir ); 38 }; 39 like( $@, qr/Can't find pseudo in \Q$tdir\E/, #' 40 "Got expected result for no typemap in current directory" ); 41 chdir $startdir; 42} 43 44