Check the correct line endings in your project
\*(C`Test::EOL\*(C' lets you check for the presence of trailing whitespace and/or windows line endings in your perl code. It reports its results in standard \*(C`Test::Simple\*(C' fashion:
use Test::EOL tests => 1; eol_unix_ok( 'lib/Module.pm', 'Module is ^M free');
and to add checks for trailing whitespace:
use Test::EOL tests => 1; eol_unix_ok( 'lib/Module.pm', 'Module is ^M and trailing whitespace free', { trailing_whitespace => 1 });
Module authors can include the following in a t/eol.t and have \*(C`Test::EOL\*(C' automatically find and check all perl files in a module distribution:
use Test::EOL; all_perl_files_ok();
or
use Test::EOL; all_perl_files_ok( @mydirs );
and if authors would like to check for trailing whitespace:
use Test::EOL; all_perl_files_ok({ trailing_whitespace => 1 });
or
use Test::EOL; all_perl_files_ok({ trailing_whitespace => 1 }, @mydirs );
This module scans your project/distribution for any perl files (scripts, modules, etc) for the presence of windows line endings.
all_perl_files_ok( [ \%options ], [ @directories ] )
Applies \*(C`eol_unix_ok()\*(C' to all perl files found in @directories (and sub directories). If no <@directories> is given, the starting point is one level above the current running script, that should cover all the files of a typical \s-1CPAN\s0 distribution. A perl file is *.pl or *.pm or *.t or a file starting with \*(C`#!...perl\*(C'
Valid \*(C`\%options\*(C' currently are:
trailing_whitespace By default Test::EOL only looks for Windows (\s-1CR/LF\s0) line-endings. Set this to true to raise errors if any kind of trailing whitespace is present in the file.
all_reasons Normally Test::EOL reports only the first error in every file (given that a text file originated on Windows will fail every single line). Set this a true value to register a test failure for every line with an error.
If the test plan is defined:
use Test::EOL tests => 3; all_perl_files_ok();
the total number of files tested must be specified.
eol_unix_ok ( $file [, $text] [, \%options ] )
Run a unix \s-1EOL\s0 check on $file. For a module, the path (lib/My/Module.pm) or the name (My::Module) can be both used. $text is the diagnostic label emited after the \*(C`ok\*(C'/\*(C`not ok\*(C' \s-1TAP\s0 output. \*(C`\%options\*(C' takes the same values as described in \*(L"all_perl_files_ok\*(R".
A list of functions that can be exported. You can delete this section if you don't export anything, such as for a purely object-oriented module.
Shamelessly ripped off from Test::NoTabs.
Test::More, Test::Pod. Test::Distribution, <Test:NoWarnings>, Test::NoTabs, Module::Install::AuthorTests.
Arthur Axel 'fREW' Schmidt <[email protected]>
Florian Ragwitz <[email protected]>
Kent Fredric <[email protected]>
Peter Rabbitson <[email protected]>
Tomas Doran <[email protected]>
Olivier Mengue <[email protected]>
This software is copyright (c) 2012 by Tomas Doran.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.