Plan 9 from Bell Labs’s /usr/web/sources/contrib/gabidiaz/root/sys/src/cmd/perl/lib/File/Temp/t/posix.t

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#!/usr/bin/perl -w
# Test for File::Temp - POSIX functions

BEGIN {
	chdir 't' if -d 't';
	@INC = '../lib';
	require Test; import Test;
	plan(tests => 7);
}

use strict;

use File::Temp qw/ :POSIX unlink0 /;
use FileHandle;

ok(1);

# TMPNAM - scalar

print "# TMPNAM: in a scalar context: \n";
my $tmpnam = tmpnam();

# simply check that the file does not exist
# Not a 100% water tight test though if another program 
# has managed to create one in the meantime.
ok( !(-e $tmpnam ));

print "# TMPNAM file name: $tmpnam\n";

# TMPNAM list context
# Not strict posix behaviour
(my $fh, $tmpnam) = tmpnam();

print "# TMPNAM: in list context: $fh $tmpnam\n";

# File is opened - make sure it exists
ok( (-e $tmpnam ));

# Unlink it - a possible NFS issue again if TMPDIR is not a local disk
my $status = unlink0($fh, $tmpnam);
if ($status) {
  ok( $status );
} else {
  skip("Skip test failed probably due to \$TMPDIR being on NFS",1);
}

# TMPFILE

$fh = tmpfile();

if (defined $fh) {
  ok( $fh );
  print "# TMPFILE: tmpfile got FH $fh\n";

  $fh->autoflush(1) if $] >= 5.006;

  # print something to it
  my $original = "Hello a test\n";
  print "# TMPFILE: Wrote line: $original";
  print $fh $original
    or die "Error printing to tempfile\n";

  # rewind it
  ok( seek($fh,0,0) );

  # Read from it
  my $line = <$fh>;

  print "# TMPFILE: Read line: $line";
  ok( $original, $line);

  close($fh);

} else {
  # Skip all the remaining tests
  foreach (1..3) {
    skip("Skip test failed probably due to \$TMPDIR being on NFS",1);
  }
}





Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].