From 2d38e14bacbb15b98e539843a40b3c52a225f493 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Sun, 11 Apr 2010 19:59:53 +0100 Subject: [PATCH] adding libtest-perl-critic-perl --- .../libtest-perl-critic-perl-1.01/Build.PL | 26 ++ .../libtest-perl-critic-perl-1.01/Changes | 89 +++++ .../libtest-perl-critic-perl-1.01/INSTALL | 27 ++ .../libtest-perl-critic-perl-1.01/LICENSE | 377 ++++++++++++++++++ .../libtest-perl-critic-perl-1.01/MANIFEST | 15 + .../libtest-perl-critic-perl-1.01/META.yml | 22 ++ .../libtest-perl-critic-perl-1.01/Makefile.PL | 24 ++ .../libtest-perl-critic-perl-1.01/README | 254 ++++++++++++ .../libtest-perl-critic-perl-1.01/debian/changelog | 5 + .../libtest-perl-critic-perl-1.01/debian/compat | 1 + .../libtest-perl-critic-perl-1.01/debian/control | 28 ++ .../libtest-perl-critic-perl-1.01/debian/copyright | 26 ++ .../libtest-perl-critic-perl-1.01/debian/rules | 77 ++++ .../libtest-perl-critic-perl-1.01/debian/watch | 3 + .../lib/Test/Perl/Critic.pm | 412 ++++++++++++++++++++ .../libtest-perl-critic-perl-1.01/t/00_compile.t | 17 + .../libtest-perl-critic-perl-1.01/t/01_api.t | 33 ++ .../t/96_perlcritic.t | 32 ++ .../t/98_pod_syntax.t | 14 + .../t/99_pod_coverage.t | 15 + .../libtest-perl-critic-perl-1.01/t/perlcriticrc | 23 ++ .../libtest-perl-critic-perl_1.01-1.diff.gz | Bin 0 -> 2368 bytes .../libtest-perl-critic-perl_1.01-1.dsc | 27 ++ .../libtest-perl-critic-perl_1.01.orig.tar.gz | Bin 0 -> 18590 bytes dev/i386/packages.txt | 23 +- dev/i386/packages.txt.orig | 37 ++ 26 files changed, 1585 insertions(+), 22 deletions(-) create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Build.PL create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Changes create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/INSTALL create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/LICENSE create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/MANIFEST create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/META.yml create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Makefile.PL create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/README create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/changelog create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/compat create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/control create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/copyright create mode 100755 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/rules create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/watch create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/lib/Test/Perl/Critic.pm create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/00_compile.t create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/01_api.t create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/96_perlcritic.t create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/98_pod_syntax.t create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/99_pod_coverage.t create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/perlcriticrc create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.diff.gz create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.dsc create mode 100644 dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01.orig.tar.gz create mode 100644 dev/i386/packages.txt.orig diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Build.PL b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Build.PL new file mode 100644 index 0000000..267537c --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Build.PL @@ -0,0 +1,26 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/Build.PL $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; +use Module::Build; + +my $builder = Module::Build->new( + + module_name => 'Test::Perl::Critic', + dist_author => 'Jeffrey Thalhammer ', + dist_abstract => 'Use Perl::Critic in test scripts', + license => 'perl', + + requires => {'Perl::Critic' => 0.21, + 'Perl::Critic::Utils' => 0.21, + 'Perl::Critic::Violation' => 0.21, + 'Test::More' => 0, + }, +); + +$builder->create_build_script(); diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Changes b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Changes new file mode 100644 index 0000000..528ca07 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Changes @@ -0,0 +1,89 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/Changes $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +[1.01] Released on 2007-01-24 + + PRODUCTION RELEASE: You may now consider the public API of + Test::Perl::Critic as stable. + + Edited documentation. Includes better example for using + Test::Perl::Critic in CPAN distributions. + + Added a t/perlcritic.t test to further demonstrate the typical + usage for CPAN distributions. + + No code changes. + +[0.08] Released on 2006-11-05 + + All parameters to Test::Perl::Critic can now be controlled through + the .perlcriticrc file. See the Perl::Critic POD for more info. + + Now compatible with the perlcritic.t test script that is generate + by Module::Starter::PBP. In my humble opinion, the test script + is flawed, but at least it will work now. + +[0.07] Released on 2006-08-20 + + All exceptions during testing are now fatal. + + Now supports -verbose option, just like `perlcritic` does. + + Added support for PPI::Cache, which can speedup repeated tests. + See Test::Perl::Critic documentation for more details. + + Now requires Perl-Critic version 0.19 or higher. + +[0.06] Released on 2006-05-14 + + No functionality changes or bug fixes, just refactorings. + + The all_code_files() function is now deprecated. See + all_perl_files() in Perl::Critic::Utils instead + + Now requires Perl::Critic version 0.15_03 or higher. + +[0.05] Released on 2006-03-26 + + Modified import() interface to pass all arguments to Perl::Critic. + This give you a direct hook to configure Perl::Critic and + should still be backward compatible. + +[0.04] Released on 2006-01-15 + + Updated to be compatible with Perl-Critic 0.14, but is not + backward compatible with older versions of Perl-Critic. If + you want to use the -severity option with Perl-Critic, you + need to use Perl-Critic version 0.14 or later. + +[0.03] Released on 2005-10-31 + + Now catching exceptions from Perl::Critic so the tests fail + gracefully if PPI has errors. + + Added -format option, which is similar to the -verbose option + that perlcritic has. I'm not sure why I didn't make it exactly + the same. + + Added a few more test cases. In general, this module doesn't + have very good test coverage because I haven't really figured + out how to test a Test. + +[0.02] Released on 2005-09-30 + + Some minor tweaks; Edited POD. + + Removed Test::Pod and Test::Pod::Coverage from the prerequisites + list. Those tests only run if the modules are installed. + + Test::Perl::Critic is going to require Perl::Critic version 0.08 + or later, or it won't pass its own criticism tests. + +[0.01] Not released + + "Plan to throw one away" -Frederick Brooks + diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/INSTALL b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/INSTALL new file mode 100644 index 0000000..6ca6022 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/INSTALL @@ -0,0 +1,27 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/INSTALL $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +INSTALLATION + +To install Test::Perl::Critic with C, give the following commands +to your favorite shell: + + tar -zxf Test-Perl-Critic-1.01.tar.gz + cd Test-Perl-Critic-1.01 + perl Makefile.PL + make + make test + make install + +Or if you prefer C, try this: + + tar -zxf Test-Perl-Critic-1.01.tar.gz + cd Test-Perl-Critic-1.01 + perl Build.pl + ./Build + ./Build test + ./Build install diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/LICENSE b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/LICENSE new file mode 100644 index 0000000..691d481 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/LICENSE @@ -0,0 +1,377 @@ +Terms of Perl itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +---------------------------------------------------------------------------- + +The General Public License (GPL) +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, +Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute +verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to most of +the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you wish), that +you receive source code or can get it if you want it, that you can change the +software or use pieces of it in new free programs; and that you know you can do +these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a +fee, you must give the recipients all the rights that you have. You must make +sure that they, too, receive or can get the source code. And you must show +them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer +you this license which gives you legal permission to copy, distribute and/or +modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced by +others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish +to avoid the danger that redistributors of a free program will individually obtain +patent licenses, in effect making the program proprietary. To prevent this, we +have made it clear that any patent must be licensed for everyone's free use or +not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +GNU GENERAL PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND +MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or translated +into another language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is not +restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and disclaimer of warranty; +keep intact all the notices that refer to this License and to the absence of any +warranty; and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at +your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you also +meet all of these conditions: + +a) You must cause the modified files to carry prominent notices stating that you +changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or in +part contains or is derived from the Program or any part thereof, to be licensed +as a whole at no charge to all third parties under the terms of this License. + +c) If the modified program normally reads commands interactively when run, you +must cause it, when started running for such interactive use in the most ordinary +way, to print or display an announcement including an appropriate copyright +notice and a notice that there is no warranty (or else, saying that you provide a +warranty) and that users may redistribute the program under these conditions, +and telling the user how to view a copy of this License. (Exception: if the +Program itself is interactive but does not normally print such an announcement, +your work based on the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, +and its terms, do not apply to those sections when you distribute them as +separate works. But when you distribute the same sections as part of a whole +which is a work based on the Program, the distribution of the whole must be on +the terms of this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control +the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and 2 +above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to give any +third party, for a charge no more than your cost of physically performing source +distribution, a complete machine-readable copy of the corresponding source +code, to be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable +form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the +source code for all modules it contains, plus any associated interface definition +files, plus the scripts used to control compilation and installation of the +executable. However, as a special exception, the source code distributed need +not include anything that is normally distributed (in either source or binary form) +with the major components (compiler, kernel, and so on) of the operating system +on which the executable runs, unless that component itself accompanies the +executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so long +as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not accept +this License. Therefore, by modifying or distributing the Program (or any work +based on the Program), you indicate your acceptance of this License to do so, +and all its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to copy, +distribute or modify the Program subject to these terms and conditions. You +may not impose any further restrictions on the recipients' exercise of the rights +granted herein. You are not responsible for enforcing compliance by third parties +to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement +or for any other reason (not limited to patent issues), conditions are imposed on +you (whether by court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the conditions of this +License. If you cannot distribute so as to satisfy simultaneously your obligations +under this License and any other pertinent obligations, then as a consequence +you may not distribute the Program at all. For example, if a patent license would +not permit royalty-free redistribution of the Program by all those who receive +copies directly or indirectly through you, then the only way you could satisfy +both it and this License would be to refrain entirely from distribution of the +Program. + +If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply and the section as +a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has +the sole purpose of protecting the integrity of the free software distribution +system, which is implemented by public license practices. Many people have +made generous contributions to the wide range of software distributed through +that system in reliance on consistent application of that system; it is up to the +author/donor to decide if he or she is willing to distribute software through any +other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who +places the Program under this License may add an explicit geographical +distribution limitation excluding those countries, so that distribution is permitted +only in or among countries not thus excluded. In such case, this License +incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems or +concerns. + +Each version is given a distinguishing version number. If the Program specifies a +version number of this License which applies to it and "any later version", you +have the option of following the terms and conditions either of that version or of +any later version published by the Free Software Foundation. If the Program does +not specify a version number of this License, you may choose any version ever +published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of all +derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS +NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM +"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED +TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY +WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY +OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + + +---------------------------------------------------------------------------- + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of the +package the right to use and distribute the Package in a more-or-less customary +fashion, plus the right to make reasonable modifications. + +Definitions: + +- "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through textual + modification. +- "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. +- "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. +- "You" is you, if you're thinking about copying or distributing this Package. +- "Reasonable copying fee" is whatever you can justify on the basis of + media cost, duplication charges, time of people involved, and so on. (You + will not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) +- "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you duplicate +all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived from +the Public Domain or from the Copyright Holder. A Package modified in such a +way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and when +you changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise + make them Freely Available, such as by posting said modifications + to Usenet or an equivalent medium, or placing the modifications on + a major archive site such as ftp.uu.net, or by allowing the + Copyright Holder to include your modifications in the Standard + Version of the Package. + + b) use the modified Package only within your corporation or + organization. + + c) rename any non-standard executables so the names do not + conflict with standard executables, which must also be provided, + and provide a separate manual page for each non-standard + executable that clearly documents how it differs from the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library + files, together with instructions (in the manual page or equivalent) + on where to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) accompany any non-standard executables with their + corresponding Standard Version executables, giving the + non-standard executables non-standard names, and clearly + documenting the differences in manual pages (or equivalent), + together with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this Package. +You may charge any fee you choose for support of this Package. You may not +charge a fee for this Package itself. However, you may distribute this Package in +aggregate with other (possibly commercial) programs as part of a larger +(possibly commercial) software distribution provided that you do not advertise +this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output from +the programs of this Package do not automatically fall under the copyright of this +Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +The End + + diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/MANIFEST b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/MANIFEST new file mode 100644 index 0000000..0a7cf78 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/MANIFEST @@ -0,0 +1,15 @@ +Build.PL +Changes +INSTALL +lib/Test/Perl/Critic.pm +LICENSE +Makefile.PL +MANIFEST This list of files +META.yml +README +t/00_compile.t +t/01_api.t +t/96_perlcritic.t +t/98_pod_syntax.t +t/99_pod_coverage.t +t/perlcriticrc diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/META.yml b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/META.yml new file mode 100644 index 0000000..867a39b --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/META.yml @@ -0,0 +1,22 @@ +--- +name: Test-Perl-Critic +version: 1.01 +author: + - Jeffrey Thalhammer +abstract: Use Perl::Critic in test scripts +license: perl +resources: + license: http://dev.perl.org/licenses/ +requires: + Perl::Critic: 0.21 + Perl::Critic::Utils: 0.21 + Perl::Critic::Violation: 0.21 + Test::More: 0 +provides: + Test::Perl::Critic: + file: lib/Test/Perl/Critic.pm + version: 1.01 +generated_by: Module::Build version 0.2806 +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.2.html + version: 1.2 diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Makefile.PL b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Makefile.PL new file mode 100644 index 0000000..3e64ffb --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/Makefile.PL @@ -0,0 +1,24 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/Makefile.PL $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; + +use ExtUtils::MakeMaker; + +WriteMakefile( NAME => 'Test::Perl::Critic', + AUTHOR => 'Jeffrey Thalhammer ', + ABSTRACT_FROM => 'lib/Test/Perl/Critic.pm', + VERSION_FROM => 'lib/Test/Perl/Critic.pm', + PL_FILES => {}, + PREREQ_PM => {'Perl::Critic' => 0.21, + 'Perl::Critic::Utils' => 0.21, + 'Perl::Critic::Violation' => 0.21, + 'Test::More' => 0, + }, + +); diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/README b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/README new file mode 100644 index 0000000..38b8e4d --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/README @@ -0,0 +1,254 @@ +NAME + Test::Perl::Critic - Use Perl::Critic in test programs + +SYNOPSIS + Test one file: + + use Test::Perl::Critic; + use Test::More tests => 1; + critic_ok($file); + + Or test all files in one or more directories: + + use Test::Perl::Critic; + all_critic_ok($dir_1, $dir_2, $dir_N ); + + Or test all files in a distribution: + + use Test::Perl::Critic; + all_critic_ok(); + + Recommended usage for CPAN distributions: + + use strict; + use warnings; + use File::Spec; + use Test::More; + use English qw(-no_match_vars); + + if ( not $ENV{TEST_AUTHOR} ) { + my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; + plan( skip_all => $msg ); + } + + eval { require Test::Perl::Critic; }; + + if ( $EVAL_ERROR ) { + my $msg = 'Test::Perl::Critic required to criticise code'; + plan( skip_all => $msg ); + } + + my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' ); + Test::Perl::Critic->import( -profile => $rcfile ); + all_critic_ok(); + +DESCRIPTION + Test::Perl::Critic wraps the Perl::Critic engine in a convenient + subroutine suitable for test programs written using the Test::More + framework. This makes it easy to integrate coding-standards enforcement + into the build process. For ultimate convenience (at the expense of some + flexibility), see the criticism pragma. + + If you'd like to try Perl::Critic without installing anything, there is + a web-service available at . The web-service does + not yet support all the configuration features that are available in the + native Perl::Critic API, but it should give you a good idea of what it + does. You can also invoke the perlcritic web-service from the command + line by doing an HTTP-post, such as one of these: + + $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl + + Please note that the perlcritic web-service is still alpha code. The URL + and interface to the service are subject to change. + +SUBROUTINES + critic_ok( $FILE [, $TEST_NAME ] ) + Okays the test if Perl::Critic does not find any violations in + $FILE. If it does, the violations will be reported in the test + diagnostics. The optional second argument is the name of test, + which defaults to "Perl::Critic test for $FILE". + + If you use this form, you should emit your own Test::More plan + first. + + all_critic_ok( [ @DIRECTORIES ] ) + Runs "critic_ok()" for all Perl files beneath the given list of + @DIRECTORIES. If @DIRECTORIES is empty or not given, this + function tries to find all Perl files in the blib/ directory. If + the blib/ directory does not exist, then it tries the lib/ + directory. Returns true if all files are okay, or false if any + file fails. + + This subroutine emits its own Test::More plan, so you do not + need to specify an expected number of tests yourself. + + all_code_files ( [@DIRECTORIES] ) + DEPRECATED: Use the "all_perl_files" subroutine that is exported + by Perl::Critic::Utils instead. + + Returns a list of all the Perl files found beneath each + DIRECTORY, If @DIRECTORIES is an empty list, defaults to blib/. + If blib/ does not exist, it tries lib/. Skips any files in CVS + or Subversion directories. + + A Perl file is: + + * Any file that ends in .PL, .pl, .pm, or .t + * Any file that has a first line with a shebang containing + 'perl' + +CONFIGURATION + Perl::Critic is highly configurable. By default, Test::Perl::Critic + invokes Perl::Critic with it's default configuration. But if you have + developed your code against a custom Perl::Critic configuration, you + will want to configure Test::Perl::Critic to do the same. + + Any arguments given to the "use" pragma will be passed into the + Perl::Critic constructor. So if you have developed your code using a + custom ~/.perlcriticrc file, you can direct Test::Perl::Critic to use a + custom file too. + + use Test::Perl::Critic (-profile => 't/perlcriticrc'); + all_critic_ok(); + + Now place a copy of your own ~/.perlcriticrc file in the distribution as + t/perlcriticrc. Then, "critic_ok()" will be run on all Perl files in + this distribution using this same Perl::Critic configuration. See the + Perl::Critic documentation for details on the .perlcriticrc file format. + + Any argument that is supported by the Perl::Critic constructor can be + passed through this interface. For example, you can also set the minimum + severity level, or include & exclude specific policies like this: + + use Test::Perl::Critic (-severity => 2, -exclude => ['RequireRcsKeywords']); + all_critic_ok(); + + See the Perl::Critic documentation for complete details on it's options + and arguments. + +DIAGNOSTIC DETAILS + By default, Test::Perl::Critic displays basic information about each + Policy violation in the diagnostic output of the test. You can customize + the format and content of this information by using the "-verbose" + option. This behaves exactly like the "-verbose" switch on the + perlcritic program. For example: + + use Test::Perl::Critic (-verbose => 6); + + #or... + + use Test::Perl::Critic (-verbose => '%f: %m at %l'); + + If given a number, Test::Perl::Critic reports violations using one of + the predefined formats described below. If given a string, it is + interpreted to be an actual format specification. If the "-verbose" + option is not specified, it defaults to 3. + + Verbosity Format Specification + ----------- ------------------------------------------------------------- + 1 "%f:%l:%c:%m\n", + 2 "%f: (%l:%c) %m\n", + 3 "%m at %f line %l\n", + 4 "%m at line %l, column %c. %e. (Severity: %s)\n", + 5 "%f: %m at line %l, column %c. %e. (Severity: %s)\n", + 6 "%m at line %l, near '%r'. (Severity: %s)\n", + 7 "%f: %m at line %l near '%r'. (Severity: %s)\n", + 8 "[%p] %m at line %l, column %c. (Severity: %s)\n", + 9 "[%p] %m at line %l, near '%r'. (Severity: %s)\n", + 10 "%m at line %l, column %c.\n %p (Severity: %s)\n%d\n", + 11 "%m at line %l, near '%r'.\n %p (Severity: %s)\n%d\n" + + Formats are a combination of literal and escape characters similar to + the way "sprintf" works. See String::Format for a full explanation of + the formatting capabilities. Valid escape characters are: + + Escape Meaning + ------- ---------------------------------------------------------------- + %c Column number where the violation occurred + %d Full diagnostic discussion of the violation + %e Explanation of violation or page numbers in PBP + %f Name of the file where the violation occurred. + %l Line number where the violation occurred + %m Brief description of the violation + %P Name of the Policy module that created the violation + %p Name of the Policy without the Perl::Critic::Policy:: prefix + %r The string of source code that caused the violation + %s The severity level of the violation + +CAVEATS + Despite the convenience of using a test script to enforce your coding + standards, there are some inherent risks when distributing those tests + to others. Since you don't know which version of Perl::Critic the + end-user has and whether they have installed any additional Policy + modules, you can't really be sure that your code will pass the + Test::Perl::Critic tests on another machine. + + For these reasons, we strongly advise you to make your perlcritic tests + optional, or exclude them from the distribution entirely. + + The recommended usage in the "SYNOPSIS" section illustrates one way to + make your perlcritic.t test optional. Also, you should not list + Test::Perl::Critic as a requirement in your build script. These tests + are only relevant to the author and should not be a prerequisite for + end-use. + + See + for an interesting discussion about Test::Perl::Critic and other + types of author-only regression tests. + +EXPORTS + critic_ok() + all_critic_ok() + +PERFORMANCE HACKS + If you want a small performance boost, you can tell PPI to cache results + from previous parsing runs. Most of the processing time is in + Perl::Critic, not PPI, so the speedup is not huge (only about 20%). + Nonetheless, if your distribution is large, it's worth the effort. + + Add a block of code like the following to your test program, probably + just before the call to "all_critic_ok()". Be sure to adjust the path to + the temp directory appropriately for your system. + + use File::Spec; + my $cache_path = File::Spec->catdir(File::Spec->tmpdir, + "test-perl-critic-cache-$ENV{USER}"); + if (!-d $cache_path) { + mkdir $cache_path, oct 700; + } + require PPI::Cache; + PPI::Cache->import(path => $cache_path); + + We recommend that you do NOT use this technique for tests that will go + out to end-users. They're probably going to only run the tests once, so + they will not see the benefit of the caching but will still have files + stored in their temp directory. + +BUGS + If you find any bugs, please submit them to + . Thanks. + +SEE ALSO + Module::Starter::PBP + + Perl::Critic + + Test::More + +CREDITS + Andy Lester, whose Test::Pod module provided most of the code and + documentation for Test::Perl::Critic. Thanks, Andy. + +AUTHOR + Jeffrey Ryan Thalhammer + +COPYRIGHT + Copyright (c) 2005-2006 Jeffrey Ryan Thalhammer. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the same terms as Perl itself. The full text of this license can + be found in the LICENSE file included with this module. + diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/changelog b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/changelog new file mode 100644 index 0000000..3af9fa0 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/changelog @@ -0,0 +1,5 @@ +libtest-perl-critic-perl (1.01-1) unstable; urgency=low + + * Initial Release. + + -- David Paleino Sun, 16 Dec 2007 02:23:24 +0100 diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/compat b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/compat @@ -0,0 +1 @@ +5 diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/control b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/control new file mode 100644 index 0000000..8ddac31 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/control @@ -0,0 +1,28 @@ +Source: libtest-perl-critic-perl +Section: perl +Priority: optional +Build-Depends: debhelper (>= 5.0.0), libperl-critic-perl (>= 0.21), libmodule-build-perl +Build-Depends-Indep: perl (>= 5.8.8-12) +Maintainer: Debian Perl Group +Uploaders: David Paleino , Jaldhar H. Vyas +Standards-Version: 3.7.3 +Homepage: http://search.cpan.org/dist/Test-Perl-Critic/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libtest-perl-critic-perl/ +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libtest-perl-critic-perl/ + +Package: libtest-perl-critic-perl +Architecture: all +Depends: ${perl:Depends}, ${misc:Depends}, libperl-critic-perl (>= 0.21) +Description: Use Perl::Critic in test scripts + Test::Perl::Critic wraps the Perl::Critic engine in a convenient + subroutine suitable for test programs written using the Test::More + framework. This makes it easy to integrate coding-standards + enforcement into the build process. For ultimate convenience (at the + expense of some flexibility), see the criticism pragma. + . + If you'd like to try Perl::Critic without installing anything, + there is a web-service available at http://perlcritic.com. The + web-service does not yet support all the configuration features that + are available in the native Perl::Critic API, but it should give you a + good idea of what it does. You can also invoke the perlcritic + web-service from the command line by doing an HTTP-post. diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/copyright b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/copyright new file mode 100644 index 0000000..b729482 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/copyright @@ -0,0 +1,26 @@ +This is the debian package for the Test-Perl-Critic module. +It was created by David Paleino using dh-make-perl. + +It was downloaded from http://search.cpan.org/dist/Test-Perl-Critic/ + +This copyright info was automatically extracted from the perl module. +It may not be accurate, so you better check the module sources +if don't want to get into legal troubles. + +The upstream author is: Jeffrey Thalhammer . + + +Copyright (c) 2005-2006 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in `/usr/share/common-licenses/GPL' +and the Artistic Licence in `/usr/share/common-licenses/Artistic'. + + +The Debian packaging is (C) 2007, David Paleino and +is licensed under the same terms as the software itself (see above). diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/rules b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/rules new file mode 100755 index 0000000..b02e3ef --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/rules @@ -0,0 +1,77 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. +# +# It was later modified by Jason Kohles +# http://www.jasonkohles.com/ to support Module::Build installed modules + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PACKAGE=$(shell dh_listpackages) + +ifndef PERL +PERL = /usr/bin/perl +endif + +TMP =$(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + + # Add commands to compile the package here + $(PERL) Build.PL installdirs=vendor + $(PERL) Build + $(PERL) Build test + + touch $@ + +clean: + dh_testdir + dh_testroot + + dh_clean build-stamp install-stamp + + # Add commands to clean up after the build process here + [ ! -f Build ] || $(PERL) Build distclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + + # Add commands to install the package into debian/$PACKAGE_NAME here + $(PERL) Build install destdir=$(TMP) create_packlist=0 + + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installdocs README + dh_installexamples + dh_installchangelogs Changes + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/watch b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/watch new file mode 100644 index 0000000..716da25 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/debian/watch @@ -0,0 +1,3 @@ +# format version number, currently 3; this line is compulsory! +version=3 +http://search.cpan.org/dist/Test-Perl-Critic/ .*/Test-Perl-Critic-([\.\d]+)\.(?:tar\.gz|tar|tgz)$ diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/lib/Test/Perl/Critic.pm b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/lib/Test/Perl/Critic.pm new file mode 100644 index 0000000..7fdcbdc --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/lib/Test/Perl/Critic.pm @@ -0,0 +1,412 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/lib/Test/Perl/Critic.pm $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +package Test::Perl::Critic; + +use strict; +use warnings; +use Carp qw(croak); +use English qw(-no_match_vars); +use Test::Builder qw(); +use Perl::Critic qw(); +use Perl::Critic::Violation qw(); +use Perl::Critic::Utils; + + +#--------------------------------------------------------------------------- + +our $VERSION = 1.01; + +#--------------------------------------------------------------------------- + +my $TEST = Test::Builder->new(); +my %CRITIC_ARGS = (); + +#--------------------------------------------------------------------------- + +sub import { + + my ( $self, %args ) = @_; + my $caller = caller; + + no strict 'refs'; ## no critic + *{ $caller . '::critic_ok' } = \&critic_ok; + *{ $caller . '::all_critic_ok' } = \&all_critic_ok; + + $TEST->exported_to($caller); + + # -format is supported for backward compatibility + if( exists $args{-format} ){ $args{-verbose} = $args{-format}; } + %CRITIC_ARGS = %args; + + return 1; +} + +#--------------------------------------------------------------------------- + +sub critic_ok { + + my ( $file, $test_name ) = @_; + croak q{no file specified} if not defined $file; + croak qq{"$file" does not exist} if not -f $file; + $test_name ||= qq{Test::Perl::Critic for "$file"}; + + my $critic = undef; + my @violations = (); + my $ok = 0; + + # Run Perl::Critic + eval { + # TODO: Should $critic be a global singleton? + $critic = Perl::Critic->new( %CRITIC_ARGS ); + @violations = $critic->critique( $file ); + $ok = not scalar @violations; + }; + + # Evaluate results + $TEST->ok( $ok, $test_name ); + + + if ($EVAL_ERROR) { # Trap exceptions from P::C + $TEST->diag( "\n" ); # Just to get on a new line. + $TEST->diag( qq{Perl::Critic had errors in "$file":} ); + $TEST->diag( qq{\t$EVAL_ERROR} ); + } + elsif ( not $ok ) { # Report Policy violations + $TEST->diag( "\n" ); # Just to get on a new line. + $TEST->diag( qq{Perl::Critic found these violations in "$file":} ); + + my $verbose = $critic->config->verbose(); + Perl::Critic::Violation::set_format( $verbose ); + for my $viol (@violations) { $TEST->diag("$viol") } + } + + return $ok; +} + +#--------------------------------------------------------------------------- + +sub all_critic_ok { + + my @dirs = @_ ? @_ : _starting_points(); + my @files = all_code_files( @dirs ); + $TEST->plan( tests => scalar @files ); + + my $okays = grep { critic_ok($_) } @files; + return $okays == @files; +} + +#--------------------------------------------------------------------------- + +sub all_code_files { + my @dirs = @_ ? @_ : _starting_points(); + return Perl::Critic::Utils::all_perl_files(@dirs); +} + +#--------------------------------------------------------------------------- + +sub _starting_points { + return -e 'blib' ? 'blib' : 'lib'; +} + +#--------------------------------------------------------------------------- + +1; + + +__END__ + +=pod + +=for stopwords API + +=head1 NAME + +Test::Perl::Critic - Use Perl::Critic in test programs + +=head1 SYNOPSIS + +Test one file: + + use Test::Perl::Critic; + use Test::More tests => 1; + critic_ok($file); + +Or test all files in one or more directories: + + use Test::Perl::Critic; + all_critic_ok($dir_1, $dir_2, $dir_N ); + +Or test all files in a distribution: + + use Test::Perl::Critic; + all_critic_ok(); + +Recommended usage for CPAN distributions: + + use strict; + use warnings; + use File::Spec; + use Test::More; + use English qw(-no_match_vars); + + if ( not $ENV{TEST_AUTHOR} ) { + my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; + plan( skip_all => $msg ); + } + + eval { require Test::Perl::Critic; }; + + if ( $EVAL_ERROR ) { + my $msg = 'Test::Perl::Critic required to criticise code'; + plan( skip_all => $msg ); + } + + my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' ); + Test::Perl::Critic->import( -profile => $rcfile ); + all_critic_ok(); + + +=head1 DESCRIPTION + +Test::Perl::Critic wraps the L engine in a convenient +subroutine suitable for test programs written using the L +framework. This makes it easy to integrate coding-standards +enforcement into the build process. For ultimate convenience (at the +expense of some flexibility), see the L pragma. + +If you'd like to try L without installing anything, +there is a web-service available at L. The +web-service does not yet support all the configuration features that +are available in the native Perl::Critic API, but it should give you a +good idea of what it does. You can also invoke the perlcritic +web-service from the command line by doing an HTTP-post, such as one +of these: + + $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl + +Please note that the perlcritic web-service is still alpha code. The +URL and interface to the service are subject to change. + + + +=head1 SUBROUTINES + +=over 8 + +=item critic_ok( $FILE [, $TEST_NAME ] ) + +Okays the test if Perl::Critic does not find any violations in $FILE. +If it does, the violations will be reported in the test diagnostics. +The optional second argument is the name of test, which defaults to +"Perl::Critic test for $FILE". + +If you use this form, you should emit your own L plan first. + +=item all_critic_ok( [ @DIRECTORIES ] ) + +Runs C for all Perl files beneath the given list of +C<@DIRECTORIES>. If C<@DIRECTORIES> is empty or not given, this +function tries to find all Perl files in the F directory. If +the F directory does not exist, then it tries the F +directory. Returns true if all files are okay, or false if any file +fails. + +This subroutine emits its own L plan, so you do not need +to specify an expected number of tests yourself. + +=item all_code_files ( [@DIRECTORIES] ) + +B Use the C subroutine that is exported +by L instead. + +Returns a list of all the Perl files found beneath each DIRECTORY, If +@DIRECTORIES is an empty list, defaults to F. If F does +not exist, it tries F. Skips any files in CVS or Subversion +directories. + +A Perl file is: + +=over 4 + +=item * Any file that ends in F<.PL>, F<.pl>, F<.pm>, or F<.t> + +=item * Any file that has a first line with a shebang containing 'perl' + +=back + +=back + +=head1 CONFIGURATION + +L is highly configurable. By default, +Test::Perl::Critic invokes Perl::Critic with it's default +configuration. But if you have developed your code against a custom +Perl::Critic configuration, you will want to configure +Test::Perl::Critic to do the same. + +Any arguments given to the C pragma will be passed into the +L constructor. So if you have developed your code using +a custom F<~/.perlcriticrc> file, you can direct Test::Perl::Critic to +use a custom file too. + + use Test::Perl::Critic (-profile => 't/perlcriticrc'); + all_critic_ok(); + +Now place a copy of your own F<~/.perlcriticrc> file in the distribution +as F. Then, C will be run on all Perl +files in this distribution using this same Perl::Critic configuration. +See the L documentation for details on the +F<.perlcriticrc> file format. + +Any argument that is supported by the L constructor can +be passed through this interface. For example, you can also set the +minimum severity level, or include & exclude specific policies like +this: + + use Test::Perl::Critic (-severity => 2, -exclude => ['RequireRcsKeywords']); + all_critic_ok(); + +See the L documentation for complete details on it's +options and arguments. + +=head1 DIAGNOSTIC DETAILS + +By default, Test::Perl::Critic displays basic information about each +Policy violation in the diagnostic output of the test. You can +customize the format and content of this information by using the +C<-verbose> option. This behaves exactly like the C<-verbose> switch +on the F program. For example: + + use Test::Perl::Critic (-verbose => 6); + + #or... + + use Test::Perl::Critic (-verbose => '%f: %m at %l'); + +If given a number, Test::Perl::Critic reports violations using one of +the predefined formats described below. If given a string, it is +interpreted to be an actual format specification. If the C<-verbose> +option is not specified, it defaults to 3. + + Verbosity Format Specification + ----------- ------------------------------------------------------------- + 1 "%f:%l:%c:%m\n", + 2 "%f: (%l:%c) %m\n", + 3 "%m at %f line %l\n", + 4 "%m at line %l, column %c. %e. (Severity: %s)\n", + 5 "%f: %m at line %l, column %c. %e. (Severity: %s)\n", + 6 "%m at line %l, near '%r'. (Severity: %s)\n", + 7 "%f: %m at line %l near '%r'. (Severity: %s)\n", + 8 "[%p] %m at line %l, column %c. (Severity: %s)\n", + 9 "[%p] %m at line %l, near '%r'. (Severity: %s)\n", + 10 "%m at line %l, column %c.\n %p (Severity: %s)\n%d\n", + 11 "%m at line %l, near '%r'.\n %p (Severity: %s)\n%d\n" + +Formats are a combination of literal and escape characters similar to +the way C works. See L for a full explanation +of the formatting capabilities. Valid escape characters are: + + Escape Meaning + ------- ---------------------------------------------------------------- + %c Column number where the violation occurred + %d Full diagnostic discussion of the violation + %e Explanation of violation or page numbers in PBP + %f Name of the file where the violation occurred. + %l Line number where the violation occurred + %m Brief description of the violation + %P Name of the Policy module that created the violation + %p Name of the Policy without the Perl::Critic::Policy:: prefix + %r The string of source code that caused the violation + %s The severity level of the violation + +=head1 CAVEATS + +Despite the convenience of using a test script to enforce your coding +standards, there are some inherent risks when distributing those tests +to others. Since you don't know which version of L the +end-user has and whether they have installed any additional Policy +modules, you can't really be sure that your code will pass the +Test::Perl::Critic tests on another machine. + +B + +The recommended usage in the L<"SYNOPSIS"> section illustrates one way +to make your F test optional. Also, you should B +list Test::Perl::Critic as a requirement in your build script. These +tests are only relevant to the author and should not be a prerequisite +for end-use. + +See L +for an interesting discussion about Test::Perl::Critic and other types +of author-only regression tests. + +=head1 EXPORTS + + critic_ok() + all_critic_ok() + +=head1 PERFORMANCE HACKS + +If you want a small performance boost, you can tell PPI to cache +results from previous parsing runs. Most of the processing time is in +Perl::Critic, not PPI, so the speedup is not huge (only about 20%). +Nonetheless, if your distribution is large, it's worth the effort. + +Add a block of code like the following to your test program, probably +just before the call to C. Be sure to adjust the +path to the temp directory appropriately for your system. + + use File::Spec; + my $cache_path = File::Spec->catdir(File::Spec->tmpdir, + "test-perl-critic-cache-$ENV{USER}"); + if (!-d $cache_path) { + mkdir $cache_path, oct 700; + } + require PPI::Cache; + PPI::Cache->import(path => $cache_path); + +We recommend that you do NOT use this technique for tests that will go +out to end-users. They're probably going to only run the tests once, +so they will not see the benefit of the caching but will still have +files stored in their temp directory. + +=head1 BUGS + +If you find any bugs, please submit them to +L. Thanks. + + +=head1 SEE ALSO + +L + +L + +L + +=head1 CREDITS + +Andy Lester, whose L module provided most of the code and +documentation for Test::Perl::Critic. Thanks, Andy. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2006 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/00_compile.t b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/00_compile.t new file mode 100644 index 0000000..6fe2d99 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/00_compile.t @@ -0,0 +1,17 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/00_compile.t $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; +use Test::More tests => 4; + +#--------------------------------------------------------------------------- + +use_ok('Test::Perl::Critic'); +can_ok('Test::Perl::Critic', 'critic_ok'); +can_ok('Test::Perl::Critic', 'all_critic_ok'); +can_ok('Test::Perl::Critic', 'all_code_files'); diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/01_api.t b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/01_api.t new file mode 100644 index 0000000..062666f --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/01_api.t @@ -0,0 +1,33 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/01_api.t $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; +use Test::More tests => 4; +use Test::Perl::Critic; +use English qw(-no_match_vars); + +#--------------------------------------------------------------------------- +# Export tests + +can_ok('main', 'critic_ok'); +can_ok('main', 'all_critic_ok'); + +#--------------------------------------------------------------------------- +# Test exception for missing files + +eval{ critic_ok('foobar') }; +ok( defined $EVAL_ERROR ); + +#--------------------------------------------------------------------------- +# Test exception for null file + +eval{ critic_ok() }; +ok( defined $EVAL_ERROR ); + + + diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/96_perlcritic.t b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/96_perlcritic.t new file mode 100644 index 0000000..5b7c6e9 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/96_perlcritic.t @@ -0,0 +1,32 @@ +############################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/96_perlcritic.t $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +############################################################################### + +use strict; +use warnings; +use File::Spec; +use Test::More; +use English qw(-no_match_vars); + +#----------------------------------------------------------------------------- + +if ( not $ENV{TEST_AUTHOR} ) { + my $msg = 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; + plan( skip_all => $msg ); +} + +eval { require Test::Perl::Critic; }; + +if ( $EVAL_ERROR ) { + my $msg = 'Test::Perl::Critic required to criticise code'; + plan( skip_all => $msg ); +} + +#----------------------------------------------------------------------------- + +my $rcfile = File::Spec->catfile( 't', 'perlcriticrc' ); +Test::Perl::Critic->import( -profile => $rcfile ); +all_critic_ok(); diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/98_pod_syntax.t b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/98_pod_syntax.t new file mode 100644 index 0000000..b1dc4b5 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/98_pod_syntax.t @@ -0,0 +1,14 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/98_pod_syntax.t $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; +use Test::More; + +eval 'use Test::Pod 1.00'; +plan skip_all => 'Test::Pod 1.00 required for testing POD' if $@; +all_pod_files_ok(); \ No newline at end of file diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/99_pod_coverage.t b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/99_pod_coverage.t new file mode 100644 index 0000000..e4418b3 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/99_pod_coverage.t @@ -0,0 +1,15 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/99_pod_coverage.t $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +######################################################################## + +use strict; +use warnings; +use Test::More; + +eval 'use Test::Pod::Coverage 1.00'; +plan skip_all => 'Test::Pod::Coverage 1.00 requried to test POD' if $@; +my $trustme = { trustme => [ qr{ \A (?: new | violations ) \z }x ] }; +all_pod_coverage_ok($trustme); \ No newline at end of file diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/perlcriticrc b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/perlcriticrc new file mode 100644 index 0000000..ebda8a5 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl-1.01/t/perlcriticrc @@ -0,0 +1,23 @@ +############################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/tags/Test-Perl-Critic-1.01/t/perlcriticrc $ +# $Date: 2007-01-24 22:22:10 -0800 (Wed, 24 Jan 2007) $ +# $Author: thaljef $ +# $Revision: 1183 $ +############################################################################### + +severity = 1 + +#------------------------------------------------------------------------------ + +[-CodeLayout::RequireTidyCode] + +[Documentation::RequirePodSections] +lib_sections = NAME|DESCRIPTION|SYNOPSIS|AUTHOR|COPYRIGHT +script_sections = NAME|DESCRIPTION|SYNOPSIS|AUTHOR|COPYRIGHT + +[Miscellanea::RequireRcsKeywords] +keywords = URL Date Author Revision + +[CodeLayout::ProhibitHardTabs] +allow_leading_tabs = 0 + diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.diff.gz b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..5a1815cdb32b986956eb1083af5913aeadedf895 GIT binary patch literal 2368 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 literal 0 HcmV?d00001 diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.dsc b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.dsc new file mode 100644 index 0000000..09ad1d8 --- /dev/null +++ b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01-1.dsc @@ -0,0 +1,27 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Format: 1.0 +Source: libtest-perl-critic-perl +Binary: libtest-perl-critic-perl +Architecture: all +Version: 1.01-1 +Maintainer: Debian Perl Group +Uploaders: David Paleino , Jaldhar H. Vyas +Homepage: http://search.cpan.org/dist/Test-Perl-Critic/ +Standards-Version: 3.7.3 +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libtest-perl-critic-perl/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libtest-perl-critic-perl/ +Build-Depends: debhelper (>= 5.0.0), libmodule-build-perl, libperl-critic-perl (>= 0.21) +Build-Depends-Indep: perl (>= 5.8.8-12) +Files: + 6a4f0da724a0c3bc664e8cbf1f9a67c8 18590 libtest-perl-critic-perl_1.01.orig.tar.gz + 36f3b442c4f6836533ab072c5cc5e320 2368 libtest-perl-critic-perl_1.01-1.diff.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFHcsZE2kYOR+5txmoRAl3EAJ9bS2dYbR3lpqT6dYdHqx8UHwm/8wCfa6t3 +YSyEkpP5xu7g2W8j7N0N5i8= +=7s1I +-----END PGP SIGNATURE----- diff --git a/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01.orig.tar.gz b/dev/i386/libtest-perl-critic-perl/libtest-perl-critic-perl_1.01.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b119b4cdad07573d9a04b50d0f19cc9bad3a223a GIT binary patch literal 18590 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