diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-09-17 11:49:30 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-09-17 11:49:30 +0000 |
commit | eed7fde46a7c97cd15428b560d0a91c36138ee71 (patch) | |
tree | 94901758496aaa93022529749a15209be24111d9 /t/op/lfs.t | |
parent | 9461e3d094a555dd8be14b1286f461b93b333ad9 (diff) | |
download | perl-eed7fde46a7c97cd15428b560d0a91c36138ee71.tar.gz |
Filesystem quotas may stop you from using large files.
p4raw-id: //depot/cfgperl@4167
Diffstat (limited to 't/op/lfs.t')
-rw-r--r-- | t/op/lfs.t | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/t/op/lfs.t b/t/op/lfs.t index ae6aac6079..af7853b270 100644 --- a/t/op/lfs.t +++ b/t/op/lfs.t @@ -29,13 +29,15 @@ sub explain { print <<EOM; # # If the lfs (large file support: large meaning larger than two gigabytes) -# tests are skipped or fail, it may mean either that your process is not -# allowed to write large files or that the file system you are running -# the tests on doesn't support large files, or both. You may also need -# to reconfigure your kernel. (This is all very system-dependent.) +# tests are skipped or fail, it may mean either that your process +# (or process group) is not allowed to write large files (resource +# limits) or that the file system you are running the tests on doesn't +# let your user/group have large files (quota) or the filesystem simply +# doesn't support large files. You may even need to reconfigure your kernel. +# (This is all very operating system and site-dependent.) # # Perl may still be able to support large files, once you have -# such a process and such a (file) system. +# such a process, enough quota, and such a (file) system. # EOM } @@ -82,15 +84,22 @@ unless (@s == 13 && # By now we better be sure that we do have sparse files: # if we are not, the following will hog 5 gigabytes of disk. Ooops. +$ENV{LC_ALL} = "C"; + open(BIG, ">big") or do { warn "open failed: $!\n"; bye }; binmode BIG; seek(BIG, 5_000_000_000, $SEEK_SET); + # Either the print or (more likely, thanks to buffering) the close will # fail if there are are filesize limitations (process or fs). my $print = print BIG "big"; my $close = close BIG if $print; unless ($print && $close) { - $ENV{LC_ALL} = "C"; + unless ($print) { + print "# print failed: $!\n" + } else { + print "# close failed: $!\n" + } if ($! =~/File too large/) { print "1..0\n# writing past 2GB failed\n"; explain(); |