This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don't create zero-length filename on VMS in Typemap.t
authorCraig A. Berry <craigberry@mac.com>
Thu, 9 Jul 2015 22:31:40 +0000 (17:31 -0500)
committerCraig A. Berry <craigberry@mac.com>
Thu, 9 Jul 2015 22:31:40 +0000 (17:31 -0500)
It turns out it's quite legal but then causes other mayhem, such
as confusing things that are looking for the "." directory (because
there is no such thing as a file without an extension so passing
an empty string to fopen creates ".;1" on disk).

Also make this test clean up its test files.

ext/XS-Typemap/t/Typemap.t

index 49ac479..46ab20f 100644 (file)
@@ -361,6 +361,8 @@ note("T_STDIO");
 
 # open a file in XS for write
 my $testfile= "stdio.tmp";
+# not everything below cleans up
+END { 1 while unlink $testfile; }
 my $fh = T_STDIO_open( $testfile );
 ok( $fh );
 
@@ -402,7 +404,8 @@ ok( print($fh "first line\n"), 'can print to return io in arg');
 ok( close($fh), 'can close return io in arg');
 $fh = "FOO";
 #now with a bad file name to make sure $fh is written to on failure
-T_STDIO_open_ret_in_arg( "", $fh);
+my $badfile = $^O eq 'VMS' ? '?' : '';
+T_STDIO_open_ret_in_arg( $badfile, $fh);
 ok( !defined$fh, 'return io in arg open failed successfully');
 
 # T_INOUT