This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Added t/test_pl/tempfile.t
[perl5.git] / t / test_pl / tempfile.t
1 #!./perl
2
3 BEGIN {
4     chdir 't' if -d 't';
5     require './test.pl';
6 }
7 use strict;
8
9 my $prefix = 'tmp'.$$;
10
11 sub skip_files{
12   my($skip,$to) = @_;
13   note("skipping $skip filenames so that the next one will end with $to.");
14   tempfile() for 1..$skip;
15 }
16
17 note("skipping the first filename because it is taken for use by _fresh_perl()");
18
19 is( tempfile(), "${prefix}B");
20 is( tempfile(), "${prefix}C");
21
22 skip_files(22,'Z');
23
24 is( tempfile(), "${prefix}Z", 'Last single letter filename');
25 is( tempfile(), "${prefix}AA", 'First double letter filename');
26
27 skip_files(24,'AZ');
28
29 is( tempfile(), "${prefix}AZ");
30 is( tempfile(), "${prefix}BA");
31
32 skip_files(26 * 24 + 24,'ZZ');
33
34 is( tempfile(), "${prefix}ZZ", 'Last available filename');
35 ok( !eval{tempfile()}, 'Should bail after Last available filename' );
36 my $err = "$@";
37 like( $err, qr{^Can't find temporary file name starting}, 'check error string' );
38
39 done_testing();