NAME¶
Test::Portability::Files - Check file names portability
VERSION¶
Version 0.05
SYNOPSIS¶
use Test::More;
eval "use Test::Portability::Files";
plan skip_all => "Test::Portability::Files required for testing filenames portability" if $@;
options(all_tests => 1); # to be hyper-strict
run_tests();
DESCRIPTION¶
This module is used to check the portability across operating systems of the
names of the files present in the distribution of a module. The tests use the
advices given in "Files and Filesystems" in perlport. The author of
a distribution can select which tests to execute.
To use this module, simply copy the code from the synopsis in a test file named
t/portfs.t for example, and add it to your
MANIFEST. You can
delete the call to "options()" to enable only most common tests.
By default, not all tests are enabled because some are judged too cumbersome to
be practical, especially since some of the most limited platforms (like
MS-DOS) seem to be no longer supported. Here are the default options:
- •
- "use_file_find" is not enabled (check only
the names as listed in MANIFEST)
- •
- "test_amiga_length" is enabled
- •
- "test_ansi_chars" is enabled
- •
- "test_case" is enabled
- •
- "test_dos_length" is not enabled
- •
- "test_mac_length" is enabled
- •
- "test_one_dot" is enabled
- •
- "test_space" is enabled
- •
- "test_special_chars" is enabled
- •
- "test_symlink" is enabled
- •
- "test_vms_length" is enabled
To change any option, please see "options()".
EXPORT¶
The following functions are exported:
- •
- "options()"
- •
- "run_tests()"
FUNCTIONS¶
- "options()"
- Set the module options, in particular, select which tests
to execute. Expects a hash.
General options
- •
- "use_file_find" - set to 1 to check all the files
in the current hierarchy using "File::Find" instead of only
checking files listed in MANIFEST.
Tests
- •
- "all_tests" - select all tests.
- •
- "test_amiga_length" - check that the name fits
within AmigaOS name length limitations (107 characters).
- •
- "test_ansi_chars" - check that the name only uses
the portable filename characters as defined by ANSI C and recommended
by perlport.
- •
- "test_case" - check that the name of the file
does not clash with the name of another file on case-insensitive
filesystems.
- •
- "test_dir_noext" - check that the directory has
no extension.
- •
- "test_dos_length" - check that the name fits
within DOS name length limitations (8 characters max for the base name, 3
characters max for the extension).
- •
- "test_mac_length" - check that the name fits
within Mac OS Classic name length limitations (31 characters).
- •
- "test_one_dot" - check that the name only has one
dot.
- •
- "test_space" - check that the name has nos
space.
- •
- "test_special_chars" - check that the name does
not use special characters.
- •
- "test_symlink" - check that the file is not a
symbolic link.
- •
- "test_vms_length" - check that the name fits
within VMS name length limitations (39 characters max for the base name,
39 characters max for the extension).
Example
options(use_file_find => 1, all_tests => 1);
selects all tests and runs them against all files found using
"File::Find".
- "test_name_portability()"
- Test the portability of the given file name.
- "run_tests()"
- Execute the tests selected by "options()".
SEE ALSO¶
perlport
AUTHOR¶
Sebastien Aperghis-Tramoni, <sebastien@aperghis.net>
BUGS¶
Please report any bugs or feature requests to
"bug-test-portability-files@rt.cpan.org", or through the web
interface at <
http://rt.cpan.org>. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
COPYRIGHT & LICENSE¶
Copyright 2004 Sebastien Aperghis-Tramoni, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.