.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Dist::Zilla::Plugin::Test::Compile 3pm" .TH Dist::Zilla::Plugin::Test::Compile 3pm "2022-06-13" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Dist::Zilla::Plugin::Test::Compile \- Common tests to check syntax of your modules, using only core modules .SH "VERSION" .IX Header "VERSION" version 2.058 .SH "SYNOPSIS" .IX Header "SYNOPSIS" In your \fIdist.ini\fR: .PP .Vb 7 \& [Test::Compile] \& skip = Test$ \& fake_home = 1 \& needs_display = 1 \& fail_on_warning = author \& bail_out_on_fail = 1 \& switch = \-M\-warnings=numeric ; like "no warnings \*(Aqnumeric\*(Aq .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a Dist::Zilla plugin that runs at the gather files stage, providing a test file (configurable, defaulting to \fIt/00\-compile.t\fR). .PP This test will find all modules and scripts in your distribution, and try to compile them one by one. This means it's a bit slower than loading them all at once, but it will catch more errors. .PP The generated test is guaranteed to only depend on modules that are available in core. Most options only require perl 5.6.2; the \f(CW\*(C`bail_out_on_fail\*(C'\fR option requires the version of Test::More that shipped with perl 5.12 (but the test still runs on perl 5.6). .PP This plugin accepts the following options: .SH "CONFIGURATION OPTIONS" .IX Header "CONFIGURATION OPTIONS" .ie n .SS """filename""" .el .SS "\f(CWfilename\fP" .IX Subsection "filename" The name of the generated file. Defaults to \fIt/00\-compile.t\fR .ie n .SS """phase""" .el .SS "\f(CWphase\fP" .IX Subsection "phase" The phase for which to register prerequisites. Defaults to \f(CW\*(C`test\*(C'\fR. Setting this to a false value will disable prerequisite registration. .ie n .SS """skip""" .el .SS "\f(CWskip\fP" .IX Subsection "skip" A regex to skip compile test for \fBmodules\fR matching it. The match is done against the module name (\f(CW\*(C`Foo::Bar\*(C'\fR), not the file path (\fIlib/Foo/Bar.pm\fR). This option can be repeated to specify multiple regexes. .ie n .SS """file""" .el .SS "\f(CWfile\fP" .IX Subsection "file" A filename to also test, in addition to any files found earlier. It will be tested as a module if it ends with \f(CW\*(C`.pm\*(C'\fR or \f(CW\*(C`.PM\*(C'\fR, and as a script otherwise. Module filenames should be relative to \fIlib\fR; others should be relative to the base of the repository. This option can be repeated to specify multiple additional files. .ie n .SS """fake_home""" .el .SS "\f(CWfake_home\fP" .IX Subsection "fake_home" A boolean to indicate whether to fake \f(CW$ENV{HOME}\fR. This may be needed if your module unilaterally creates stuff in the user's home directory: indeed, some cpantesters will smoke test your distribution with a read-only home directory. Defaults to false. .ie n .SS """needs_display""" .el .SS "\f(CWneeds_display\fP" .IX Subsection "needs_display" A boolean to indicate whether to skip the compile test on non\-Win32 systems when \f(CW$ENV{DISPLAY}\fR is not set. Defaults to false. .ie n .SS """fail_on_warning""" .el .SS "\f(CWfail_on_warning\fP" .IX Subsection "fail_on_warning" A string to indicate when to add a test for warnings during compilation checks. Possible values are: .IP "\(bu" 4 \&\f(CW\*(C`none\*(C'\fR: do not test for warnings .IP "\(bu" 4 \&\f(CW\*(C`author\*(C'\fR: test for warnings only when \s-1AUTHOR_TESTING\s0 is set (default, and recommended) .IP "\(bu" 4 \&\f(CW\*(C`all\*(C'\fR: always test for warnings (not recommended, as this can prevent installation of modules when upstream dependencies exhibit warnings in a new Perl release) .ie n .SS """bail_out_on_fail""" .el .SS "\f(CWbail_out_on_fail\fP" .IX Subsection "bail_out_on_fail" A boolean to indicate whether the test will \s-1BAIL_OUT\s0 of all subsequent tests when compilation failures are encountered. Defaults to false. .ie n .SS """module_finder""" .el .SS "\f(CWmodule_finder\fP" .IX Subsection "module_finder" This is the name of a FileFinder for finding modules to check. The default value is \f(CW\*(C`:InstallModules\*(C'\fR; this option can be used more than once. \fI.pod\fR files are always skipped. .PP Other predefined finders are listed in \&\*(L"default_finders\*(R" in Dist::Zilla::Role::FileFinderUser. You can define your own with the [FileFinder::ByName] and [FileFinder::Filter] plugins. .ie n .SS """script_finder""" .el .SS "\f(CWscript_finder\fP" .IX Subsection "script_finder" Just like \f(CW\*(C`module_finder\*(C'\fR, but for finding scripts. The default value is \&\f(CW\*(C`:PerlExecFiles\*(C'\fR (when available; otherwise \f(CW\*(C`:ExecFiles\*(C'\fR) \&\*(-- see also Dist::Zilla::Plugin::ExecDir, to make sure these files are properly marked as executables for the installer. .ie n .SS """xt_mode""" .el .SS "\f(CWxt_mode\fP" .IX Subsection "xt_mode" When true, the default \f(CW\*(C`filename\*(C'\fR becomes \fIxt/author/00\-compile.t\fR and the default \f(CW\*(C`dependency\*(C'\fR phase becomes \f(CW\*(C`develop\*(C'\fR. .ie n .SS """switch""" .el .SS "\f(CWswitch\fP" .IX Subsection "switch" Use this option to pass a command-line switch (e.g. \f(CW\*(C`\-d:Confess\*(C'\fR, \f(CW\*(C`\-M\-warnings=numeric\*(C'\fR) to the command that tests the module or script. Can be used more than once. See perlrun for more on constructing these switches. .SH "RUNTIME ENVIRONMENT OPTIONS" .IX Header "RUNTIME ENVIRONMENT OPTIONS" If the environment variable \f(CW$PERL_COMPILE_TEST_DEBUG\fR is set to a true option when the test is run, the command to test each file will be printed as a \f(CW\*(C`diag\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\(bu" 4 Test::NeedsDisplay .IP "\(bu" 4 Test::Script .SH "SUPPORT" .IX Header "SUPPORT" Bugs may be submitted through the \s-1RT\s0 bug tracker (or bug\-Dist\-Zilla\-Plugin\-Test\-Compile@rt.cpan.org ). .PP There is also a mailing list available for users of this distribution, at . .PP There is also an irc channel available for users of this distribution, at \&\f(CW\*(C`#distzilla\*(C'\fR on \f(CW\*(C`irc.perl.org\*(C'\fR . .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Je\*'ro\*^me Quelin .IP "\(bu" 4 Karen Etheridge .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" .IP "\(bu" 4 Ahmad M. Zawawi .IP "\(bu" 4 Olivier Mengue\*' .IP "\(bu" 4 Kent Fredric .IP "\(bu" 4 Jesse Luehrs .IP "\(bu" 4 David Golden .IP "\(bu" 4 Randy Stauner .IP "\(bu" 4 Harley Pig .IP "\(bu" 4 Graham Knop .IP "\(bu" 4 fayland .IP "\(bu" 4 Peter Shangov .IP "\(bu" 4 Chris Weyl .IP "\(bu" 4 Ricardo \s-1SIGNES\s0 .IP "\(bu" 4 Marcel Gruenauer .SH "COPYRIGHT AND LICENCE" .IX Header "COPYRIGHT AND LICENCE" This software is copyright (c) 2009 by Je\*'ro\*^me Quelin. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.