Test-Timer-2.12000755000765000024 014071630265 13355 5ustar00jonasbnstaff000000000000README100644000765000024 50314071630265 14274 0ustar00jonasbnstaff000000000000Test-Timer-2.12This archive contains the distribution Test-Timer, version 2.12: test module to test/assert response times This software is Copyright (c) 2021 by Jonas Brømsø. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) This README file was generated by Dist::Zilla::Plugin::Readme v6.022. LICENSE100644000765000024 2152314071630265 14466 0ustar00jonasbnstaff000000000000Test-Timer-2.12This software is Copyright (c) 2021 by Jonas Brømsø. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The Artistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble This license establishes the terms under which a given free software Package may be copied, modified, distributed, and/or redistributed. The intent is that the Copyright Holder maintains some artistic control over the development of that Package while still keeping the Package available as open source and free software. You are always permitted to make arrangements wholly outside of this license directly with the Copyright Holder of a given Package. If the terms of this license do not permit the full use that you propose to make of the Package, you should contact the Copyright Holder and seek a different licensing arrangement. Definitions "Copyright Holder" means the individual(s) or organization(s) named in the copyright notice for the entire Package. "Contributor" means any party that has contributed code or other material to the Package, in accordance with the Copyright Holder's procedures. "You" and "your" means any person who would like to copy, distribute, or modify the Package. "Package" means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files. A given Package may consist of either the Standard Version, or a Modified Version. "Distribute" means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization. "Distributor Fee" means any fee that you charge for Distributing this Package or providing support for this Package to another party. It does not mean licensing fees. "Standard Version" refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder. "Modified Version" means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. "Original License" means this Artistic License as Distributed with the Standard Version of the Package, in its current version or as it may be modified by The Perl Foundation in the future. "Source" form means the source code, documentation source, and configuration files for the Package. "Compiled" form means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. Permission for Use and Modification Without Distribution (1) You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction, provided that you do not Distribute the Modified Version. Permissions for Redistribution of the Standard Version (2) You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction, either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers. At your discretion, such verbatim copies may or may not include a Compiled form of the Package. (3) You may apply any bug fixes, portability changes, and other modifications made available from the Copyright Holder. The resulting Package will still be considered the Standard Version, and as such will be subject to the Original License. Distribution of Modified Versions of the Package as Source (4) You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) provided that you clearly document how it differs from the Standard Version, including, but not limited to, documenting any non-standard features, executables, or modules, and provided that you do at least ONE of the following: (a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version. (b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version. (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under (i) the Original License or (ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source (5) You may Distribute Compiled forms of the Standard Version without the Source, provided that you include complete instructions on how to get the Source of the Standard Version. Such instructions must be valid at the time of your distribution. If these instructions, at any time while you are carrying out such distribution, become invalid, you must provide new instructions on demand or cease further distribution. If you provide valid instructions or cease distribution within thirty days after you become aware that the instructions are invalid, then you do not forfeit any of your rights under this license. (6) You may Distribute a Modified Version in Compiled form without the Source, provided that you comply with Section 4 with respect to the Source of the Modified Version. Aggregating or Linking the Package (7) You may aggregate the Package (either the Standard Version or Modified Version) with other packages and Distribute the resulting aggregation provided that you do not charge a licensing fee for the Package. Distributor Fees are permitted, and licensing fees for other components in the aggregation are permitted. The terms of this license apply to the use and Distribution of the Standard or Modified Versions as included in the aggregation. (8) You are permitted to link Modified and Standard Versions with other works, to embed the Package in a larger work of your own, or to build stand-alone binary or bytecode versions of applications that include the Package, and Distribute the result without restriction, provided the result does not expose a direct interface to the Package. Items That are Not Considered Part of a Modified Version (9) Works (including, but not limited to, modules and scripts) that merely extend or make use of the Package, do not, by themselves, cause the Package to be a Modified Version. In addition, such works are not considered parts of the Package itself, and are not subject to the terms of this license. General Provisions (10) Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. (11) If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. (12) This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. (13) This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. INSTALL100644000765000024 442414071630265 14473 0ustar00jonasbnstaff000000000000Test-Timer-2.12This is the Perl distribution Test-Timer. Installing Test-Timer is straightforward. ## Installation with cpanm If you have cpanm, you only need one line: % cpanm Test::Timer If it does not have permission to install modules to the current perl, cpanm will automatically set up and install to a local::lib in your home directory. See the local::lib documentation (https://metacpan.org/pod/local::lib) for details on enabling it in your environment. ## Installing with the CPAN shell Alternatively, if your CPAN shell is set up, you should just be able to do: % cpan Test::Timer ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, install configure prerequisites (see below), then build it: % perl Build.PL % ./Build && ./Build test Then install it: % ./Build install Or the more portable variation: % perl Build.PL % perl Build % perl Build test % perl Build install If your perl is system-managed, you can create a local::lib in your home directory to install modules to. For details, see the local::lib documentation: https://metacpan.org/pod/local::lib The prerequisites of this distribution will also have to be installed manually. The prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated by running the manual build process described above. ## Configure Prerequisites This distribution requires other modules to be installed before this distribution's installer can be run. They can be found under the "configure_requires" key of META.yml or the "{prereqs}{configure}{requires}" key of META.json. ## Other Prerequisites This distribution may require additional modules to be installed after running Build.PL or Makefile.PL. Look for prerequisites in the following phases: * to run ./Build or make, PHASE = build * to use the module code itself, PHASE = runtime * to run tests, PHASE = test They can all be found in the "PHASE_requires" key of MYMETA.yml or the "{prereqs}{PHASE}{requires}" key of MYMETA.json. ## Documentation Test-Timer documentation is available as POD. You can run `perldoc` from a shell to read the documentation: % perldoc Test::Timer For more information on installing Perl modules via CPAN, please see: https://www.cpan.org/modules/INSTALL.html META.yml100644000765000024 241414071630265 14710 0ustar00jonasbnstaff000000000000Test-Timer-2.12--- abstract: 'test module to test/assert response times' author: - 'Jonas Brømsø ' build_requires: File::Spec: '0' IO::Handle: '0' IPC::Open3: '0' Module::Build: '0.30' Pod::Coverage::TrustPod: '0' Test::Fatal: '0' Test::Kwalitee: '1.21' Test::More: '0' Test::Pod: '1.41' Test::Pod::Coverage: '1.08' Test::Tester: '1.302111' configure_requires: ExtUtils::MakeMaker: '0' Module::Build: '0.30' dynamic_config: 0 generated_by: 'Dist::Zilla version 6.022, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Test-Timer provides: Test::Timer: file: lib/Test/Timer.pm version: '2.12' Test::Timer::TimeoutException: file: lib/Test/Timer/TimeoutException.pm version: '2.12' requires: Benchmark: '0' Carp: '0' English: '0' Error: '0' Test::Builder: '0' Test::Builder::Module: '0' perl: '5.006' resources: bugtracker: https://github.com/jonasbn/perl-test-timer/issues homepage: https://jonasbn.github.io/perl-test-timer/ repository: https://github.com/jonasbn/perl-test-timer.git version: '2.12' x_generated_by_perl: v5.32.0 x_serialization_backend: 'YAML::Tiny version 1.73' x_spdx_expression: Artistic-2.0 MANIFEST100644000765000024 103514071630265 14566 0ustar00jonasbnstaff000000000000Test-Timer-2.12# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.022. Build.PL CHANGELOG.md INSTALL LICENSE MANIFEST MANIFEST.SKIP META.json META.yml Makefile.PL README cpanfile cpanfile.snapshot dictionary.dic dist.ini docs/test-timer.graffle lib/Test/Timer.pm lib/Test/Timer/TimeoutException.pm perl-test-timer.code-workspace t/00-compile.t t/Test/Timer/Test.pm t/_benchmark.t t/_runtest.t t/author-critic.t t/author-pod-coverage.t t/author-pod-syntax.t t/release-kwalitee.t t/release-meta-json.t t/test-tester.t t/time_alert.t cpanfile100644000765000024 173114071630265 15144 0ustar00jonasbnstaff000000000000Test-Timer-2.12requires 'Benchmark'; requires 'Carp'; requires 'English'; requires 'Error'; requires 'Test::Builder'; requires 'Test::Builder::Module'; requires 'perl', '5.006'; on 'build', sub { requires 'Module::Build', '0.30'; }; on 'test', sub { requires 'File::Spec'; requires 'IO::Handle'; requires 'IPC::Open3'; requires 'Pod::Coverage::TrustPod'; requires 'Test::Fatal'; requires 'Test::Kwalitee', '1.21'; requires 'Test::More'; requires 'Test::Pod', '1.41'; requires 'Test::Pod::Coverage', '1.08'; requires 'Test::Tester', '1.302111'; }; on 'configure', sub { requires 'ExtUtils::MakeMaker'; requires 'Module::Build', '0.30'; }; on 'develop', sub { requires 'Pod::Coverage::TrustPod'; requires 'Test::CPAN::Changes', '0.19'; requires 'Test::CPAN::Meta::JSON', '0.16'; requires 'Test::Kwalitee', '1.21'; requires 'Test::Perl::Critic'; requires 'Test::Pod', '1.41'; requires 'Test::Pod::Coverage', '1.08'; }; dist.ini100644000765000024 500614071630265 15103 0ustar00jonasbnstaff000000000000Test-Timer-2.12; REF: Dist::Zilla https://metacpan.org/pod/Dist::Zilla name = Test-Timer main_module = lib/Test/Timer.pm author = Jonas Brømsø license = Artistic_2_0 copyright_holder = Jonas Brømsø ; REF: https://metacpan.org/pod/Dist::Zilla::PluginBundle::Filter [@Filter] -bundle = @Basic -remove = GatherDir ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::GatherDir [GatherDir] ; this plugin needs no config and gathers most of your files exclude_filename = LICENSE ; REF: Dist::Zilla::Plugin::GithubMeta: https://metacpan.org/pod/Dist::Zilla::Plugin::GithubMeta [GithubMeta] homepage = https://jonasbn.github.io/perl-test-timer/ issues = 1 ; REF: Dist::Zilla::Plugin::ReadmeAnyFromPod: https://metacpan.org/pod/Dist::Zilla::Plugin::ReadmeAnyFromPod ; REF: http://blogs.perl.org/users/ovid/2014/03/a-simple-distini-for-distzilla.html [ ReadmeAnyFromPod / MarkdownInRoot ] filename = README.md ; REF: Dist::Zilla::Plugin:::VersionFromMainModule https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromMainModule [VersionFromMainModule] ; REF: Dist::Zilla::Plugin::ExtraTests https://metacpan.org/pod/Dist::Zilla::Plugin::ExtraTests [ExtraTests] ; REF: Dist::Zilla::Plugin::Test::Perl::Critic https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Perl::Critic [Test::Perl::Critic] critic_config = .perlcriticrc ; REF: Dist::Zilla::Plugin::PodCoverageTests: https://metacpan.org/pod/Dist::Zilla::Plugin::PodCoverageTests [PodCoverageTests] ; REF: Dist::Zilla::Plugin::PodSyntaxTests: https://metacpan.org/pod/Dist::Zilla::Plugin::PodSyntaxTests [PodSyntaxTests] ; REF: Dist::Zilla::Plugin::Test::Kwalitee: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Kwalitee [Test::Kwalitee] ; REF: Dist::Zilla::Plugin::Test::Compile: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Compile [Test::Compile] fail_on_warning = none ; REF: Dist::Zilla::Plugin::MetaJSON: https://metacpan.org/pod/Dist::Zilla::Plugin::MetaJSON [MetaJSON] ; REF: Dist::Zilla::Plugin::Test::CPAN::Meta::JSON: https://metacpan.org/pod/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON [Test::CPAN::Meta::JSON] ; REF: Dist::Zilla::Plugin::ModuleBuild: https://metacpan.org/pod/Dist::Zilla::Plugin::ModuleBuild [ModuleBuild] mb_version = 0.30 ; REF: Dist::Zilla::Plugin::MetaProvides::Package : https://metacpan.org/pod/Dist::Zilla::Plugin::MetaProvides::Package [MetaProvides::Package] ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::Prereqs::FromCPANfile [Prereqs::FromCPANfile] ; REF: https://metacpan.org/pod/Dist::Zilla::Plugin::InstallGuide [InstallGuide] Build.PL100644000765000024 322314071630265 14732 0ustar00jonasbnstaff000000000000Test-Timer-2.12 # This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.022. use strict; use warnings; use Module::Build 0.30; my %module_build_args = ( "build_requires" => { "Module::Build" => "0.30" }, "configure_requires" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.30" }, "dist_abstract" => "test module to test/assert response times", "dist_author" => [ "Jonas Br\x{f8}ms\x{f8} " ], "dist_name" => "Test-Timer", "dist_version" => "2.12", "license" => "artistic_2", "module_name" => "Test::Timer", "recursive_test_files" => 1, "requires" => { "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0, "perl" => "5.006" }, "test_requires" => { "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" } ); my %fallback_build_requires = ( "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Module::Build" => "0.30", "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" ); unless ( eval { Module::Build->VERSION(0.4004) } ) { delete $module_build_args{test_requires}; $module_build_args{build_requires} = \%fallback_build_requires; } my $build = Module::Build->new(%module_build_args); $build->create_build_script; META.json100644000765000024 503614071630265 15063 0ustar00jonasbnstaff000000000000Test-Timer-2.12{ "abstract" : "test module to test/assert response times", "author" : [ "Jonas Br\u00f8ms\u00f8 " ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 6.022, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Test-Timer", "prereqs" : { "build" : { "requires" : { "Module::Build" : "0.30" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0", "Module::Build" : "0.30" } }, "develop" : { "requires" : { "Pod::Coverage::TrustPod" : "0", "Test::CPAN::Changes" : "0.19", "Test::CPAN::Meta::JSON" : "0.16", "Test::Kwalitee" : "1.21", "Test::Perl::Critic" : "0", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08" } }, "runtime" : { "requires" : { "Benchmark" : "0", "Carp" : "0", "English" : "0", "Error" : "0", "Test::Builder" : "0", "Test::Builder::Module" : "0", "perl" : "5.006" } }, "test" : { "requires" : { "File::Spec" : "0", "IO::Handle" : "0", "IPC::Open3" : "0", "Pod::Coverage::TrustPod" : "0", "Test::Fatal" : "0", "Test::Kwalitee" : "1.21", "Test::More" : "0", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08", "Test::Tester" : "1.302111" } } }, "provides" : { "Test::Timer" : { "file" : "lib/Test/Timer.pm", "version" : "2.12" }, "Test::Timer::TimeoutException" : { "file" : "lib/Test/Timer/TimeoutException.pm", "version" : "2.12" } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/jonasbn/perl-test-timer/issues" }, "homepage" : "https://jonasbn.github.io/perl-test-timer/", "repository" : { "type" : "git", "url" : "https://github.com/jonasbn/perl-test-timer.git", "web" : "https://github.com/jonasbn/perl-test-timer" } }, "version" : "2.12", "x_generated_by_perl" : "v5.32.0", "x_serialization_backend" : "Cpanel::JSON::XS version 4.25", "x_spdx_expression" : "Artistic-2.0" } Makefile.PL100644000765000024 354214071630265 15414 0ustar00jonasbnstaff000000000000Test-Timer-2.12# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.022. use strict; use warnings; use 5.006; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "test module to test/assert response times", "AUTHOR" => "Jonas Br\x{f8}ms\x{f8} ", "BUILD_REQUIRES" => { "Module::Build" => "0.30" }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.30" }, "DISTNAME" => "Test-Timer", "LICENSE" => "artistic_2", "MIN_PERL_VERSION" => "5.006", "NAME" => "Test::Timer", "PREREQ_PM" => { "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0 }, "TEST_REQUIRES" => { "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Pod::Coverage::TrustPod" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" }, "VERSION" => "2.12", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Benchmark" => 0, "Carp" => 0, "English" => 0, "Error" => 0, "File::Spec" => 0, "IO::Handle" => 0, "IPC::Open3" => 0, "Module::Build" => "0.30", "Pod::Coverage::TrustPod" => 0, "Test::Builder" => 0, "Test::Builder::Module" => 0, "Test::Fatal" => 0, "Test::Kwalitee" => "1.21", "Test::More" => 0, "Test::Pod" => "1.41", "Test::Pod::Coverage" => "1.08", "Test::Tester" => "1.302111" ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); CHANGELOG.md100644000765000024 2324614071630265 15276 0ustar00jonasbnstaff000000000000Test-Timer-2.12# Revision history for Test-Timer ## 2.12 2021-07-08 Maintenance release, update not required * Updated CODE OF CONDUCT to latest version (thanks to Yak) * Migrated change log (`Changes`) from text file to Markdown file, renamed to: `CHANGELOG.md` * Removed [Dist::Zilla::Plugin::Test::CPAN::Changes](https://metacpan.org/pod/Dist::Zilla::Plugin::Test::CPAN::Changes) from [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) configuration * All code has been run through [Perl::Tidy](https://metacpan.org/pod/Perl::Tidy) ## 2.11 2019-09-06T17:43:07Z Maintenance release, update not required * Applied PR [#23](https://github.com/jonasbn/perl-test-timer/pulls/16) with POD improvements from Mohammad S Anwar ## 2.10 2019-02-19T16:13:40Z Maintenance release, update not required * Cleaned the code a bit and eliminated use of regular expression for parsing output from Benchmark, issue [#21](https://github.com/jonasbn/perl-test-timer/issues/21) ## 2.09 2017-11-24 Maintenance release, update not required * Attempting to address issues with [tests on Windows](http://www.cpantesters.org/distro/T/Test-Timer.html?grade=3&perlmat=2&patches=2&oncpan=2&distmat=2&perlver=ALL&osname=ALL&version=2.08) * Reinstated `sleep` over `select` in the test suite * Changed some test parameters was made a bit less relaxed attempting to decrease the execution time for the test suite * Removed loose match in regular, it should be possible to anticipate the timeout * Removed redundant tests, trying to cut down execution time for the test suite ## 2.08 2017-11-20 Maintenance release, update not required * Addressing reports on failing tests from CPAN testers ## 2.07 2017-11-18 Maintenance release, update not required * Addressing issue [#17](https://github.com/jonasbn/perl-test-timer/issues/17), the tests are now more liberal, so when executed on smokers, CI environments and similar, load will not influence the test results. The requirement for [Test::Tester](https://metacpan.org/pod/Test::Tester) has been updated and a patch required by this distribution has been included ## 2.06 2017-11-14 Maintenance release, update not required * Added cancellation of alarm, based on advice from Erik Johansen * Implemented own `sleep`, based on `select`, this might address possible issues with `sleep` implementations ## 2.05 2017-11-12 Maintenance release, update not required * Addressed issue [#11](https://github.com/jonasbn/perl-test-timer/issues/11) adding experimental graphical support elements to the documentation ## 2.04 2017-10-15 Maintenance release, update not required * Minor improvements to Test::Timer::TimeoutException, some obsoleted code could be removed * Generalising test asserting, since CPAN testers are sometime constrained on resources, making it impossible to predict the actual timeout value, see [example](http://www.cpantesters.org/cpan/report/2561e32c-9efa-11e7-bc90-bbe42ddde1fb) * Correction of spelling mistake via PR [#16](https://github.com/jonasbn/perl-test-timer/pulls/16) from Gregor Herrmann of the Debian Perl Group ## 2.03 2017-07-01 Maintenance release, update not required * Minor clean up in code and tests ## 2.02 2017-06-30 Maintenance release, update recommended * Correction to documentation * Improvements to alarm signal handling and other internal parts * Addressed issue [#15](https://github.com/jonasbn/perl-test-timer/issues/15) meaning thresholds are now included in the assertions ## 2.01 2017-06-12 Bug fix release, update recommended * Fixed bug where execution/time would be reported as `0`, ref: issue [#13](https://github.com/jonasbn/perl-test-timer/issues/13) ## 2.00 2017-06-06 Feature release, update recommended * Improved diagnostics based on feedback for change introduced in 1.00 from Nigel Horne. The actual measured time used is now presented, ref: issue [#12](https://github.com/jonasbn/perl-test-timer/issues/12) * private subroutine `_runtest_atleast` factored out, ref: [#9](https://github.com/jonasbn/perl-test-timer/issues/9) ## 1.00 2017-06-03 Feature release, update recommended * Implemented suggestion for improvement from Nigel Horne [#10](https://github.com/jonasbn/perl-test-timer/issues/10) This change impacts all the diagnostics, so these now communicate the relevant specified thresholds * Added [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) plugins requirements causing issues to `dist.ini`, so these are explicitly specified * Exchanged CJM´s: [Dist::Zilla::Plugin::VersionFromModule](https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromModule) for Dave Rolskys: [Dist::Zilla::Plugin::VersionFromMainModule](https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromMainModule) There are some deprecation notices from Dist::Zilla making tests fail see XDG's [PR](https://github.com/madsen/dist-zilla-plugins-cjm/pull/5) ## 0.18 2016-12-30 Maintenance release, update not required * Reenabled Github issues over RT, the [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) plugins not completely compatible ## 0.17 2016-12-30 Maintenance release, update not required * Exchanged use of Test::Exception for Test::Fatal * Exchanged use of: [Dist::Zilla::Plugin::GitHub::Meta](https://metacpan.org/pod/Dist::Zilla::Plugin::GitHub::Meta) for [Dist::Zilla::Plugin::GithubMeta](https://metacpan.org/pod/Dist::Zilla::Plugin::GithubMeta) to specify a proper homepage attribute ## 0.16 2016-12-29 Maintenance release, update not required * Elimination of warnings in test suite, PR [#4](https://github.com/jonasbn/perl-test-timer/pulls/4) from p-alik ## 0.15 2016-12-11 Maintenance release, update not required * Addressed Kwalitee test: `has_meta_json` * Addressing minor cosmetics issues in release 0.14 ## 0.14 2016-12-10 Maintenance release, update not required * Corrections to file permissions, PR [#7](https://github.com/jonasbn/perl-test-timer/pulls/7) from Kent Fredric ## 0.13 2016-08-05 Maintenance release, update not required * Corrections to the POD, PR [#5](https://github.com/jonasbn/perl-test-timer/pulls/5) from Nick Morrott ## 0.12 2015-08-02 Maintenance release, update not required * Added `MetaProvides` to [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) build, this should assist in addressing the issue listed on CPANTS, see also below * Addressing [issue](http://cpants.cpanauthors.org/dist/Test-Timer-0.11) with inconsistent version ## 0.11 2015-07-15 Maintenance release, update not required * Requirement for Perl 5.12 sneaked in issue [#3](https://github.com/jonasbn/perl-test-timer/issues/3), analysed code with [Perl::MinimumVersion](https://metacpan.org/pod/Perl::MinimumVersion) and decided for Perl version 5.6.0 as minimum requirement ## 0.10 2015-06-01 Maintenance release, update not required * [Test::Tester](https://metacpan.org/pod/Test::Tester) is marked as a normal runtime dependency issue [#2](https://github.com/jonasbn/perl-test-timer/issues/2) (RT:1047699) * Upgraded license from Artistic license 1.0 to Artistic license 2.0 * Migrated build system from [Module::Build](https://metacpan.org/pod/Module::Build) to [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) ## 0.09 2014-08-29 Maintenance release, update not required * Addressing issue [#1](https://github.com/jonasbn/perl-test-timer/issues/1), the occassional report on failing the rigid test of: `test_between` ## 0.08 2014-02-22 Maintenance release, update not required * Repository migrated to Github from hosted Subversion * Plenty of POD updates * Added `changes.t` automatic assertion of the integrity of the `Changes` file ## 0.07 2013-07-31 Maintenance release, update not required * Corrected minor issue in this file, had forgotten to run in through [the validator](http://changes.cpanhq.org/validate) ## 0.06 2013-07-26 Maintenance release, update not required * Fixed up `Changes` file as part of my Questhub quest adhering to the standard described in: [CPAN::Changes::Spec](https://metacpan.org/module/CPAN::Changes::Spec) ## 0.05 2008-11-16 Bug fix release, update not required * Added use of [Test::Builder::Module](https://metacpan.org/pod/Test::Builder::Module) * Added patch from brian d foy, bug in `_run_test` ## 0.04 2007-03-18 Maintenance release, update not required * Added creation of traditional `Makefile.PL` to `Build.PL` * Added `Makefile.PL` to `MANIFEST` ## 0.03 2007-03-11 Maintenance release, update not required * Removed version number from `README` * Read up on the [Test::Perl::Critic](https://metacpan.org/pod/Test::Perl::Critic) documentation and updated my [Perl::Critic](https://metacpan.org/pod/Perl::Critic) test (t/critic.t), introducing `t/perlcriticrc` and added a few of the requirements needed by this test to build requirements * Moved [Test::Tester](https://metacpan.org/pod/Test::Tester) to general requirements from build requirements * Minor changes to POD ## 0.02 2007-03-10 Feature release, update recommended * Removed support for reference to arrays as second parameter to `time_nok`, `time_ok`, `time_almost` and `time_atleast` - `time_between` is recommended * Read up on the [Test::Builder](https://metacpan.org/pod/Test::Builder) does and eliminated the builder subroutine, this has also been removed from the test-suite (`t/test-tester.t`) * Added some more tests, to get better coverage, thanks to PJCJ for [Devel::Cover](https://metacpan.org/pod/Devel::Cover) this module really helps, since aiming at better coverage, makes you think about your tests and code and you can eliminate stuff you do not need * Updated POD added DIAGNOSTICS among other things * Fixed bug in Test::Timer, with alarm being scoped using my, should be our, pointed out by Paul Evans * Ran all code through [Perl::Tidy](https://metacpan.org/pod/Perl::Tidy) ## 0.01 2007-03-01 Feature release * First version, released on an unsuspecting world. t000755000765000024 014071630265 13541 5ustar00jonasbnstaff000000000000Test-Timer-2.12_runtest.t100644000765000024 121514071630265 15730 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t## no critic (RequireVersionVar RequireExplicitPackage RequireEndWithOne) use warnings; use strict; use Test::Fatal; # like use Test::More; # ok use Test::Timer; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); $Test::Timer::alarm = 2; ok( !Test::Timer::_runtest(), 'testing without parameters' ); ok( !Test::Timer::_runtest( sub { return; }, undef ), 'testing with single parameters' ); ok( !Test::Timer::_runtest( sub { return; }, 1, undef ), 'testing with two parameters' ); ok( !Test::Timer::_runtest( sub { return; }, 10, 1 ), 'testing with two thresholds in wrong order' ); done_testing(); MANIFEST.SKIP100644000765000024 406114071630265 15335 0ustar00jonasbnstaff000000000000Test-Timer-2.12############################################################################################ # Lifted from ExtUtils::MANIFEST # # ref: https://metacpan.org/source/ETHER/ExtUtils-Manifest-1.70/lib/ExtUtils/MANIFEST.SKIP # ############################################################################################ # Avoid version control files. \bRCS\b \bCVS\b \bSCCS\b ,v$ \B\.svn\b \B\.git\b \B\.gitignore\b \b_darcs\b \B\.cvsignore$ # Avoid VMS specific MakeMaker generated files \bDescrip.MMS$ \bDESCRIP.MMS$ \bdescrip.mms$ # Avoid Makemaker generated and utility files. \bMANIFEST\.bak \bMakefile$ \bblib/ \bMakeMaker-\d \bpm_to_blib\.ts$ \bpm_to_blib$ \bblibdirs\.ts$ # 6.18 through 6.25 generated this \b_eumm/ # 7.05_05 and above # Avoid Module::Build generated and utility files. \bBuild$ \b_build/ \bBuild.bat$ \bBuild.COM$ \bBUILD.COM$ \bbuild.com$ # and Module::Build::Tiny generated files \b_build_params$ # Avoid temp and backup files. ~$ \.old$ \#$ \b\.# \.bak$ \.tmp$ \.# \.rej$ \..*\.sw.?$ # Avoid OS-specific files/dirs # Mac OSX metadata \B\.DS_Store # Mac OSX SMB mount metadata files \B\._ # Avoid Devel::Cover and Devel::CoverX::Covered files. \bcover_db\b \bcovered\b # Avoid prove files \B\.prove$ # Avoid MYMETA files ^MYMETA\. ######################################################################### # My own additions # # ref: https://gist.github.com/jonasbn/aa6646544f2233de39f34c49532215ad # ######################################################################### # Avoid archives of perl distribution -[\d\.\_]+\.tar -[\d\.\_]+\.tar\.gz # Github files \.travis\.yml # Komodo files \.komodoproject \.kpf # SublimeText 2/3 files \.sublime-project \.sublime-workspace # Perl::Tidy error files \bperltidy\.ERR # Jekyll github pages files _config.yml ^assets README\.mkdn README\.md CONTRIBUTING\.md CODE_OF_CONDUCT\.md ^\.github/ # Avoid directory and files generated by carton ^local/ # Project files ^prototypes/ dictionary.dic100644000765000024 522014071630265 16263 0ustar00jonasbnstaff000000000000Test-Timer-2.12aspell default speller rowl 1.10Na p`@Dg enphonet1.1*F*K*L*N*TBR BT FHKHRHTK@KBKHKKKMKNKPKRKSKWLNMN MR"MT#NH$NK%PF&PK'PL)PR+RL-RN.SK0SL2SS3ST5TF6TM7TT8WL9WP:WR;WX<*FN *K*KN'*KXG*LK^*LRl*NK{*NW*TL*TM*TTBRMBRNBTF BTSF.HKS9HRMHHTP[K@ByKBKHNKKBKKMKMLKNSKNTKPNKRK6KS@PKWLcLNTvMNMMNWMRTMTKNHNNKPFNPKKPKSPL#PLT0PRBCPRSTRLSaRNBtRNTSKSKSSLSSSSBSTKTFLTMT.TTNWLT[WPoWR{WXN*FNFivanova *Kok *KNLKMNTSacknowledgements*KXNL occassional *LKalik*LRMalrm*NKuniejo*NKPNannocpan*NWanwar*TLSTatleast*TMSTatmost*TTKNFK editorconfigBRMSbrmsBRNbrianBTFbdfoyBTSSbartosz F foyHKShokusHRMNherrmannHTPhttpHTPShttpsK@BgithubK@BMT GithubMeta KBgaborKHNSNjohansenKKBSKjakubski KKM CJMKMLgmailKNSBNjonasbnKNTNLkentnlKPNcpanKPNTSCPANTSKRK gregoagregorKS@BQuesthubKWLTKwaliteeLNTleonerdMNMMFXNMinimumVersionMNWmanwarMRTmorrottMTKPNmetacpanNHNnhorne NKnokPFNSpevansPKKKPJCJPKSpokus PLperlPLTTperltidyPRBTprobot PRSprsRLSKSRolskysRNBLT ReenabledRNTMruntimeRNTSTruntest SKsigSKSLST sexualized SLZilla SSsocioSSBszaboSSBKBszabgabSTKSXDG'sTFLdevel TMTKSSPXNTimeoutException TTtodoWLTT validator WP wip WRveri& WXNFRMNMTL$VersionFromMainModule"WXNFRMTLVersionFromModule)teqb}  38-"};cP@4u=$GXP[TjKk&time_alert.t100644000765000024 44214071630265 16173 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t## no critic (RequireVersionVar RequireExplicitPackage RequireEndWithOne) use warnings; use strict; use Test::More; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); use_ok('Test::Timer'); time_nok( sub { _sleep(10); }, 1, 'Failing test' ); done_testing(); _benchmark.t100644000765000024 122014071630265 16152 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t## no critic (RequireVersionVar RequireExplicitPackage RequireEndWithOne) use warnings; use strict; use Test::Fatal; # like use Test::More; use Test::Timer; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); # TODO: rename to ALARM to adhere to Perl::Critic policy # $Test::Timer::alarm = 2; like( exception { Test::Timer::_benchmark( sub { _sleep(20); }, 1 ); }, qr/\d+/xsm, 'Caught timeout exception' ); ok( Test::Timer::_benchmark( sub { _sleep(1); } ), 'testing without threshold' ); ok( Test::Timer::_benchmark( sub { _sleep(2); }, 1 ), 'testing with threshold' ); done_testing(); 00-compile.t100644000765000024 236314071630265 15737 0ustar00jonasbnstaff000000000000Test-Timer-2.12/tuse 5.006; use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058 use Test::More; plan tests => 2; my @module_files = ( 'Test/Timer.pm', 'Test/Timer/TimeoutException.pm' ); # no fake home requested my @switches = ( -d 'blib' ? '-Mblib' : '-Ilib', ); use File::Spec; use IPC::Open3; use IO::Handle; open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; my @warnings; for my $lib (@module_files) { # see L my $stderr = IO::Handle->new; diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} } $^X, @switches, '-e', "require q[$lib]")) if $ENV{PERL_COMPILE_TEST_DEBUG}; my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]"); binmode $stderr, ':crlf' if $^O eq 'MSWin32'; my @_warnings = <$stderr>; waitpid($pid, 0); is($?, 0, "$lib loaded ok"); shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ and not eval { +require blib; blib->VERSION('1.01') }; if (@_warnings) { warn @_warnings; push @warnings, @_warnings; } } # no warning checks; test-tester.t100644000765000024 672014071630265 16356 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t## no critic (RequireVersionVar RequireExplicitPackage RequireEndWithOne ProhibitEmptyQuotes) use warnings; use strict; use Test::Tester; use Test::More; use Test::Timer; use FindBin qw($Bin); use lib "$Bin/../t"; use Test::Timer::Test qw(_sleep); $Test::Timer::alarm = 5; check_test( sub { time_ok( sub { _sleep(1); }, 2, 'time_ok, passing test' ); }, { ok => 1, name => 'time_ok, passing test', depth => 2, diag => '' }, 'Succeeding test of time_ok' ); check_test( sub { time_ok( sub { _sleep(2); }, 1, 'time_ok, failing test' ); }, { ok => 0, name => 'time_ok, failing test', depth => 2, diag => qr/Test ran \d+ seconds and exceeded specified threshold of 1 seconds/ }, 'Failing test of time_ok' ); check_test( sub { time_nok( sub { _sleep(1); }, 3, 'time_nok, failing test' ); }, { ok => 0, name => 'time_nok, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not exceed specified threshold of 3 seconds/ }, 'Failing test of time_nok' ); check_test( sub { time_nok( sub { _sleep(3); }, 1, 'time_nok, passing test' ); }, { ok => 1, name => 'time_nok, passing test', depth => 1, diag => '' }, 'Passing test of time_nok' ); check_test( sub { time_between( sub { _sleep(1); }, 0, 3, 'time_between, passing test' ); }, { ok => 1, name => 'time_between, passing test', depth => 1, diag => '' }, 'Passing test of time_between' ); check_test( sub { time_between( sub { _sleep(3); }, 1, 2, 'time_between, failing test' ); }, { ok => 0, name => 'time_between, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not execute within specified interval 1 - 2 seconds/ }, 'Failing test of time_between' ); check_test( sub { time_atmost( sub { _sleep(1); }, 2, 'time_atmost, passing test' ); }, { ok => 1, name => 'time_atmost, passing test', depth => 1, diag => '' }, 'Succeeding test of time_atmost' ); check_test( sub { time_atmost( sub { _sleep(2); }, 1, 'time_atmost, failing test' ); }, { ok => 0, name => 'time_atmost, failing test', depth => 1, diag => qr/Test ran \d+ seconds and exceeded specified threshold of 1 seconds/ }, 'Failing test of time_atmost' ); check_test( sub { time_atleast( sub { _sleep(1); }, 3, 'time_atleast, failing test' ); }, { ok => 0, name => 'time_atleast, failing test', depth => 1, diag => qr/Test ran \d+ seconds and did not exceed specified threshold of 3 seconds/ }, 'Failing test of time_atleast' ); check_test( sub { time_atleast( sub { _sleep(2); }, 1, 'time_atleast, passing test' ); }, { ok => 1, name => 'time_atleast, passing test', depth => 1, diag => '' }, 'Passing test of time_atleast' ); check_test( sub { time_between( sub { _sleep(10); }, 1, 3, 'time_between, long running test, should time out' ); }, { ok => 0, name => 'time_between, long running test, should time out', depth => 1, diag => qr/Execution ran \d+ seconds and did not execute within specified interval 1 - 3 seconds/ }, 'failing long running test of time_between with timeout' ); done_testing(); cpanfile.snapshot100644000765000024 16016714071630265 17053 0ustar00jonasbnstaff000000000000Test-Timer-2.12# carton snapshot format: version 1.0 DISTRIBUTIONS Algorithm-Diff-1.1903 pathname: T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz provides: Algorithm::Diff 1.1903 Algorithm::Diff::_impl 1.1903 requirements: ExtUtils::MakeMaker 0 Archive-Any-Lite-0.11 pathname: I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz provides: Archive::Any::Lite 0.11 Archive::Any::Lite::Tar 0.11 Archive::Any::Lite::Zip 0.11 requirements: Archive::Tar 1.76 Archive::Zip 0 ExtUtils::MakeMaker 0 ExtUtils::MakeMaker::CPANfile 0.08 File::Spec 0 File::Temp 0.19 IO::Uncompress::Bunzip2 0 IO::Zlib 0 Archive-Zip-1.59 pathname: P/PH/PHRED/Archive-Zip-1.59.tar.gz provides: Archive::Zip 1.59 Archive::Zip::Archive 1.59 Archive::Zip::BufferedFileHandle 1.59 Archive::Zip::DirectoryMember 1.59 Archive::Zip::FileMember 1.59 Archive::Zip::Member 1.59 Archive::Zip::MemberRead 1.59 Archive::Zip::MockFileHandle 1.59 Archive::Zip::NewFileMember 1.59 Archive::Zip::StringMember 1.59 Archive::Zip::Tree 1.59 Archive::Zip::ZipFileMember 1.59 requirements: Compress::Raw::Zlib 2.017 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Find 0 File::Path 0 File::Spec 0.80 File::Temp 0 IO::File 0 IO::Handle 0 IO::Seekable 0 Time::Local 0 perl 5.006 Array-Diff-0.07 pathname: T/TY/TYPESTER/Array-Diff-0.07.tar.gz provides: Array::Diff 0.07 requirements: Algorithm::Diff 1.19 Class::Accessor::Fast 0 ExtUtils::MakeMaker 6.42 Filter::Util::Call 0 Test::More 0 B-Keywords-1.15 pathname: R/RU/RURBAN/B-Keywords-1.15.tar.gz provides: B::Keywords 1.15 requirements: B 0 ExtUtils::MakeMaker 0 CPAN-Changes-0.400002 pathname: H/HA/HAARG/CPAN-Changes-0.400002.tar.gz provides: CPAN::Changes 0.400002 CPAN::Changes::Group undef CPAN::Changes::Release undef Test::CPAN::Changes 0.400002 requirements: ExtUtils::MakeMaker 0 Text::Wrap 0.003 version 0.9906 CPAN-DistnameInfo-0.12 pathname: G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz provides: CPAN::DistnameInfo 0.12 requirements: ExtUtils::MakeMaker 0 Test::More 0 Class-Accessor-0.34 pathname: K/KA/KASEI/Class-Accessor-0.34.tar.gz provides: Class::Accessor 0.34 Class::Accessor::Fast 0.34 Class::Accessor::Faster 0.34 requirements: ExtUtils::MakeMaker 0 base 1.01 Class-Data-Inheritable-0.08 pathname: T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz provides: Class::Data::Inheritable 0.08 requirements: ExtUtils::MakeMaker 0 Class-Inspector-1.32 pathname: P/PL/PLICEASE/Class-Inspector-1.32.tar.gz provides: Class::Inspector 1.32 Class::Inspector::Functions 1.32 requirements: ExtUtils::MakeMaker 0 File::Spec 0.80 perl 5.006 Class-Tiny-1.006 pathname: D/DA/DAGOLDEN/Class-Tiny-1.006.tar.gz provides: Class::Tiny 1.006 Class::Tiny::Object 1.006 requirements: Carp 0 ExtUtils::MakeMaker 6.17 perl 5.006 strict 0 warnings 0 Class-XSAccessor-1.19 pathname: S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz provides: Class::XSAccessor 1.19 Class::XSAccessor::Array 1.19 requirements: ExtUtils::MakeMaker 0 Test::More 0 Time::HiRes 0 XSLoader 0 perl 5.008 Clone-0.39 pathname: G/GA/GARU/Clone-0.39.tar.gz provides: Clone 0.39 requirements: ExtUtils::MakeMaker 0 Test::More 0 Config-Tiny-2.23 pathname: R/RS/RSAVAGE/Config-Tiny-2.23.tgz provides: Config::Tiny 2.23 requirements: ExtUtils::MakeMaker 0 File::Spec 3.3 File::Temp 0.22 Test::More 0.47 UNIVERSAL 0 perl v5.8.1 strict 0 utf8 0 Cpanel-JSON-XS-3.0239 pathname: R/RU/RURBAN/Cpanel-JSON-XS-3.0239.tar.gz provides: Cpanel::JSON::XS 3.0239 requirements: ExtUtils::MakeMaker 0 Pod::Text 2.08 Data-OptList-0.110 pathname: R/RJ/RJBS/Data-OptList-0.110.tar.gz provides: Data::OptList 0.110 requirements: ExtUtils::MakeMaker 0 List::Util 0 Params::Util 0 Sub::Install 0.921 strict 0 warnings 0 Data-Section-0.200007 pathname: R/RJ/RJBS/Data-Section-0.200007.tar.gz provides: Data::Section 0.200007 requirements: Encode 0 ExtUtils::MakeMaker 0 MRO::Compat 0.09 Sub::Exporter 0.979 strict 0 warnings 0 Devel-StackTrace-2.02 pathname: D/DR/DROLSKY/Devel-StackTrace-2.02.tar.gz provides: Devel::StackTrace 2.02 Devel::StackTrace::Frame 2.02 requirements: ExtUtils::MakeMaker 0 File::Spec 0 Scalar::Util 0 overload 0 perl 5.006 strict 0 warnings 0 Devel-Symdump-2.18 pathname: A/AN/ANDK/Devel-Symdump-2.18.tar.gz provides: Devel::Symdump 2.18 Devel::Symdump::Export undef requirements: Compress::Zlib 0 ExtUtils::MakeMaker 0 Test::More 0 perl 5.004 Dist-Zilla-Plugin-VersionFromMainModule-0.03 pathname: D/DR/DROLSKY/Dist-Zilla-Plugin-VersionFromMainModule-0.03.tar.gz provides: Dist::Zilla::Plugin::VersionFromMainModule 0.03 requirements: Dist::Zilla::Role::VersionProvider 0 ExtUtils::MakeMaker 0 Module::Metadata 1.000005 Moose 0 namespace::autoclean 0 strict 0 warnings 0 Email-Address-1.908 pathname: R/RJ/RJBS/Email-Address-1.908.tar.gz provides: Email::Address 1.908 requirements: ExtUtils::MakeMaker 0 overload 0 strict 0 warnings 0 Error-0.17025 pathname: S/SH/SHLOMIF/Error-0.17025.tar.gz provides: Error 0.17025 Error::Simple 0.17025 Error::WarnDie undef Error::subs undef requirements: Module::Build 0.280801 Scalar::Util 0 perl v5.6.0 strict 0 warnings 0 Exception-Class-1.43 pathname: D/DR/DROLSKY/Exception-Class-1.43.tar.gz provides: Exception::Class 1.43 Exception::Class::Base 1.43 requirements: Class::Data::Inheritable 0.02 Devel::StackTrace 2.00 ExtUtils::MakeMaker 0 Scalar::Util 0 base 0 overload 0 perl 5.008001 strict 0 warnings 0 Exporter-Tiny-1.000000 pathname: T/TO/TOBYINK/Exporter-Tiny-1.000000.tar.gz provides: Exporter::Shiny 1.000000 Exporter::Tiny 1.000000 requirements: ExtUtils::MakeMaker 6.17 perl 5.006001 ExtUtils-Config-0.008 pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz provides: ExtUtils::Config 0.008 requirements: Data::Dumper 0 ExtUtils::MakeMaker 6.30 strict 0 warnings 0 ExtUtils-Helpers-0.026 pathname: L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz provides: ExtUtils::Helpers 0.026 ExtUtils::Helpers::Unix 0.026 ExtUtils::Helpers::VMS 0.026 ExtUtils::Helpers::Windows 0.026 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Spec::Functions 0 Text::ParseWords 3.24 perl 5.006 strict 0 warnings 0 ExtUtils-InstallPaths-0.011 pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.011.tar.gz provides: ExtUtils::InstallPaths 0.011 requirements: Carp 0 ExtUtils::Config 0.002 ExtUtils::MakeMaker 0 File::Spec 0 perl 5.006 strict 0 warnings 0 ExtUtils-MakeMaker-CPANfile-0.08 pathname: I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.08.tar.gz provides: ExtUtils::MakeMaker::CPANfile 0.08 requirements: CPAN::Meta::Converter 2.141170 Cwd 0 ExtUtils::MakeMaker 6.17 File::Path 0 Module::CPANfile 0 Test::More 0.88 version 0.76 File-Find-Object-v0.3.2 pathname: S/SH/SHLOMIF/File-Find-Object-v0.3.2.tar.gz provides: File::Find::Object v0.3.2 File::Find::Object::Base v0.3.2 File::Find::Object::DeepPath v0.3.2 File::Find::Object::PathComp v0.3.2 File::Find::Object::Result v0.3.2 File::Find::Object::TopPath v0.3.2 requirements: Carp 0 Class::XSAccessor 0 ExtUtils::MakeMaker 0 Fcntl 0 File::Spec 0 List::Util 0 Module::Build 0.28 integer 0 parent 0 perl 5.008 strict 0 warnings 0 File-HomeDir-1.002 pathname: R/RE/REHSACK/File-HomeDir-1.002.tar.gz provides: File::HomeDir 1.002 File::HomeDir::Darwin 1.002 File::HomeDir::Darwin::Carbon 1.002 File::HomeDir::Darwin::Cocoa 1.002 File::HomeDir::Driver 1.002 File::HomeDir::FreeDesktop 1.002 File::HomeDir::MacOS9 1.002 File::HomeDir::TIE 1.002 File::HomeDir::Test 1.002 File::HomeDir::Unix 1.002 File::HomeDir::Windows 1.002 requirements: Carp 0 Cwd 3 ExtUtils::MakeMaker 0 File::Basename 0 File::Path 2.01 File::Spec 3 File::Temp 0.19 File::Which 0.05 Mac::SystemDirectory 0.04 POSIX 0 perl 5.005003 File-Remove-1.57 pathname: S/SH/SHLOMIF/File-Remove-1.57.tar.gz provides: File::Remove 1.57 requirements: Cwd 3.29 ExtUtils::MakeMaker 0 File::Glob 0 File::Path 0 File::Spec 3.29 constant 0 perl 5.006 strict 0 vars 0 warnings 0 File-ShareDir-1.104 pathname: R/RE/REHSACK/File-ShareDir-1.104.tar.gz provides: File::ShareDir 1.104 requirements: Carp 0 Class::Inspector 1.12 ExtUtils::MakeMaker 0 File::ShareDir::Install 0.03 File::Spec 0.80 perl 5.008001 warnings 0 File-ShareDir-Install-0.11 pathname: E/ET/ETHER/File-ShareDir-Install-0.11.tar.gz provides: File::ShareDir::Install 0.11 requirements: Carp 0 Exporter 0 File::Spec 0 IO::Dir 0 Module::Build::Tiny 0.034 perl 5.008 strict 0 warnings 0 File-Which-1.22 pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz provides: File::Which 1.22 requirements: ExtUtils::MakeMaker 0 perl 5.006 Hook-LexWrap-0.26 pathname: E/ET/ETHER/Hook-LexWrap-0.26.tar.gz provides: Hook::LexWrap 0.26 requirements: Carp 0 ExtUtils::MakeMaker 0 overload 0 perl 5.006 strict 0 warnings 0 IO-Capture-0.05 pathname: R/RE/REYNOLDS/IO-Capture-0.05.tar.gz provides: IO::Capture 0.05 IO::Capture::Stderr undef IO::Capture::Stdout undef IO::Capture::Tie_STDx undef requirements: Carp 0 ExtUtils::MakeMaker 0 Test::More 0 IO-String-1.08 pathname: G/GA/GAAS/IO-String-1.08.tar.gz provides: IO::String 1.08 requirements: ExtUtils::MakeMaker 0 JSON-2.94 pathname: I/IS/ISHIGAKI/JSON-2.94.tar.gz provides: JSON 2.94 JSON::Backend::PP 2.94 requirements: ExtUtils::MakeMaker 0 Test::More 0 JSON-MaybeXS-1.003009 pathname: E/ET/ETHER/JSON-MaybeXS-1.003009.tar.gz provides: JSON::MaybeXS 1.003009 requirements: Carp 0 Cpanel::JSON::XS 2.3310 ExtUtils::CBuilder 0.27 ExtUtils::MakeMaker 0 File::Spec 0 File::Temp 0 JSON::PP 2.27300 Scalar::Util 0 perl 5.006 Lingua-EN-Inflect-1.902 pathname: D/DC/DCONWAY/Lingua-EN-Inflect-1.902.tar.gz provides: Lingua::EN::Inflect 1.902 requirements: ExtUtils::MakeMaker 0 Test::More 0 List-MoreUtils-0.425 pathname: R/RE/REHSACK/List-MoreUtils-0.425.tar.gz provides: List::MoreUtils 0.425 List::MoreUtils::PP 0.425 requirements: Exporter::Tiny 0.038 ExtUtils::MakeMaker 0 List::MoreUtils::XS 0.423 List-MoreUtils-XS-0.426 pathname: R/RE/REHSACK/List-MoreUtils-XS-0.426.tar.gz provides: List::MoreUtils::XS 0.426 requirements: Carp 0 ExtUtils::MakeMaker 0 File::Basename 0 File::Copy 0 File::Path 0 File::Spec 0 IPC::Cmd 0 XSLoader 0.22 base 0 MCE-1.831 pathname: M/MA/MARIOROY/MCE-1.831.tar.gz provides: MCE 1.831 MCE::Candy 1.831 MCE::Core::Input::Generator 1.831 MCE::Core::Input::Handle 1.831 MCE::Core::Input::Iterator 1.831 MCE::Core::Input::Request 1.831 MCE::Core::Input::Sequence 1.831 MCE::Core::Manager 1.831 MCE::Core::Validation 1.831 MCE::Core::Worker 1.831 MCE::Flow 1.831 MCE::Grep 1.831 MCE::Loop 1.831 MCE::Map 1.831 MCE::Mutex 1.831 MCE::Mutex::Channel 1.831 MCE::Mutex::Flock 1.831 MCE::Queue 1.831 MCE::Relay 1.831 MCE::Signal 1.831 MCE::Step 1.831 MCE::Stream 1.831 MCE::Subs 1.831 MCE::Util 1.831 requirements: Carp 0 ExtUtils::MakeMaker 0 Fcntl 0 File::Path 0 Getopt::Long 0 IO::Handle 0 Scalar::Util 0 Socket 0 Storable 2.04 Symbol 0 Time::HiRes 0 base 0 bytes 0 constant 0 perl 5.008 strict 0 warnings 0 MRO-Compat-0.13 pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz provides: MRO::Compat 0.13 requirements: ExtUtils::MakeMaker 0 perl 5.006 Mac-SystemDirectory-0.10 pathname: E/ET/ETHER/Mac-SystemDirectory-0.10.tar.gz provides: Mac::SystemDirectory 0.10 requirements: Exporter 0 ExtUtils::MakeMaker 0 XSLoader 0 perl 5.006 strict 0 warnings 0 Mixin-Linewise-0.108 pathname: R/RJ/RJBS/Mixin-Linewise-0.108.tar.gz provides: Mixin::Linewise 0.108 Mixin::Linewise::Readers 0.108 Mixin::Linewise::Writers 0.108 requirements: Carp 0 ExtUtils::MakeMaker 0 IO::File 0 PerlIO::utf8_strict 0 Sub::Exporter 0 perl 5.008001 strict 0 warnings 0 Module-Build-0.4224 pathname: L/LE/LEONT/Module-Build-0.4224.tar.gz provides: Module::Build 0.4224 Module::Build::Base 0.4224 Module::Build::Compat 0.4224 Module::Build::Config 0.4224 Module::Build::Cookbook 0.4224 Module::Build::Dumper 0.4224 Module::Build::Notes 0.4224 Module::Build::PPMMaker 0.4224 Module::Build::Platform::Default 0.4224 Module::Build::Platform::MacOS 0.4224 Module::Build::Platform::Unix 0.4224 Module::Build::Platform::VMS 0.4224 Module::Build::Platform::VOS 0.4224 Module::Build::Platform::Windows 0.4224 Module::Build::Platform::aix 0.4224 Module::Build::Platform::cygwin 0.4224 Module::Build::Platform::darwin 0.4224 Module::Build::Platform::os2 0.4224 Module::Build::PodParser 0.4224 requirements: CPAN::Meta 2.142060 CPAN::Meta::YAML 0.003 Cwd 0 Data::Dumper 0 ExtUtils::CBuilder 0.27 ExtUtils::Install 0 ExtUtils::Manifest 0 ExtUtils::Mkbootstrap 0 ExtUtils::ParseXS 2.21 File::Basename 0 File::Compare 0 File::Copy 0 File::Find 0 File::Path 0 File::Spec 0.82 File::Temp 0.15 Getopt::Long 0 Module::Metadata 1.000002 Parse::CPAN::Meta 1.4401 Perl::OSType 1 Pod::Man 2.17 TAP::Harness 3.29 Test::More 0.49 Text::Abbrev 0 Text::ParseWords 0 perl 5.006001 version 0.87 Module-Build-Tiny-0.039 pathname: L/LE/LEONT/Module-Build-Tiny-0.039.tar.gz provides: Module::Build::Tiny 0.039 requirements: CPAN::Meta 0 DynaLoader 0 Exporter 5.57 ExtUtils::CBuilder 0 ExtUtils::Config 0.003 ExtUtils::Helpers 0.020 ExtUtils::Install 0 ExtUtils::InstallPaths 0.002 ExtUtils::ParseXS 0 File::Basename 0 File::Find 0 File::Path 0 File::Spec::Functions 0 Getopt::Long 2.36 JSON::PP 2 Pod::Man 0 TAP::Harness::Env 0 perl 5.006 strict 0 warnings 0 Module-CPANTS-Analyse-0.96 pathname: I/IS/ISHIGAKI/Module-CPANTS-Analyse-0.96.tar.gz provides: Module::CPANTS::Analyse 0.96 Module::CPANTS::Kwalitee 0.96 Module::CPANTS::Kwalitee::BrokenInstaller 0.96 Module::CPANTS::Kwalitee::CpantsErrors 0.96 Module::CPANTS::Kwalitee::Distname 0.96 Module::CPANTS::Kwalitee::Distros 0.96 Module::CPANTS::Kwalitee::Files 0.96 Module::CPANTS::Kwalitee::FindModules 0.96 Module::CPANTS::Kwalitee::License 0.96 Module::CPANTS::Kwalitee::Manifest 0.96 Module::CPANTS::Kwalitee::MetaYML 0.96 Module::CPANTS::Kwalitee::NeedsCompiler 0.96 Module::CPANTS::Kwalitee::Pod 0.96 Module::CPANTS::Kwalitee::Prereq 0.96 Module::CPANTS::Kwalitee::Repackageable 0.96 Module::CPANTS::Kwalitee::Signature 0.96 Module::CPANTS::Kwalitee::Uses 0.96 Module::CPANTS::Kwalitee::Version 0.96 requirements: Archive::Any::Lite 0.06 Archive::Tar 1.48 Array::Diff 0.04 CPAN::DistnameInfo 0.06 CPAN::Meta::Validator 2.133380 CPAN::Meta::YAML 0.008 Class::Accessor 0.19 ExtUtils::MakeMaker 0 ExtUtils::MakeMaker::CPANfile 0.08 File::Find::Object v0.2.1 IO::Capture 0.05 JSON::MaybeXS 0 Module::ExtractUse 0.33 Module::Pluggable 2.96 Set::Scalar 0 Software::License 0.103008 Software::License::CC_BY_SA_3_0 0 Text::Balanced 0 version 0.73 Module-CPANfile-1.1002 pathname: M/MI/MIYAGAWA/Module-CPANfile-1.1002.tar.gz provides: Module::CPANfile 1.1002 Module::CPANfile::Environment undef Module::CPANfile::Prereq undef Module::CPANfile::Prereqs undef Module::CPANfile::Requirement undef requirements: CPAN::Meta 2.12091 CPAN::Meta::Prereqs 2.12091 ExtUtils::MakeMaker 0 JSON::PP 2.27300 parent 0 Module-ExtractUse-0.341 pathname: D/DO/DOMM/Module-ExtractUse-0.341.tar.gz provides: Module::ExtractUse 0.341 Module::ExtractUse::Grammar undef Parse::RecDescent::Module::ExtractUse::Grammar undef requirements: Carp 0 Module::Build 0.28 Parse::RecDescent 1.967009 Pod::Strip 0 Test::Deep 0 Test::More 0 Test::NoWarnings 0 perl 5.008 strict 0 vars 0 warnings 0 Module-Pluggable-5.2 pathname: S/SI/SIMONW/Module-Pluggable-5.2.tar.gz provides: Devel::InnerPackage 0.4 Module::Pluggable 5.2 Module::Pluggable::Object 5.2 requirements: Exporter 5.57 ExtUtils::MakeMaker 0 File::Basename 0 File::Find 0 File::Spec 3.00 File::Spec::Functions 0 if 0 perl 5.00503 strict 0 PPI-1.236 pathname: M/MI/MITHALDU/PPI-1.236.tar.gz provides: PPI 1.236 PPI::Cache 1.236 PPI::Document 1.236 PPI::Document::File 1.236 PPI::Document::Fragment 1.236 PPI::Document::Normalized 1.236 PPI::Dumper 1.236 PPI::Element 1.236 PPI::Exception 1.236 PPI::Exception::ParserRejection 1.236 PPI::Find 1.236 PPI::Lexer 1.236 PPI::Node 1.236 PPI::Normal 1.236 PPI::Normal::Standard 1.236 PPI::Statement 1.236 PPI::Statement::Break 1.236 PPI::Statement::Compound 1.236 PPI::Statement::Data 1.236 PPI::Statement::End 1.236 PPI::Statement::Expression 1.236 PPI::Statement::Given 1.236 PPI::Statement::Include 1.236 PPI::Statement::Include::Perl6 1.236 PPI::Statement::Null 1.236 PPI::Statement::Package 1.236 PPI::Statement::Scheduled 1.236 PPI::Statement::Sub 1.236 PPI::Statement::Unknown 1.236 PPI::Statement::UnmatchedBrace 1.236 PPI::Statement::Variable 1.236 PPI::Statement::When 1.236 PPI::Structure 1.236 PPI::Structure::Block 1.236 PPI::Structure::Condition 1.236 PPI::Structure::Constructor 1.236 PPI::Structure::For 1.236 PPI::Structure::Given 1.236 PPI::Structure::List 1.236 PPI::Structure::Subscript 1.236 PPI::Structure::Unknown 1.236 PPI::Structure::When 1.236 PPI::Token 1.236 PPI::Token::ArrayIndex 1.236 PPI::Token::Attribute 1.236 PPI::Token::BOM 1.236 PPI::Token::Cast 1.236 PPI::Token::Comment 1.236 PPI::Token::DashedWord 1.236 PPI::Token::Data 1.236 PPI::Token::End 1.236 PPI::Token::HereDoc 1.236 PPI::Token::Label 1.236 PPI::Token::Magic 1.236 PPI::Token::Number 1.236 PPI::Token::Number::Binary 1.236 PPI::Token::Number::Exp 1.236 PPI::Token::Number::Float 1.236 PPI::Token::Number::Hex 1.236 PPI::Token::Number::Octal 1.236 PPI::Token::Number::Version 1.236 PPI::Token::Operator 1.236 PPI::Token::Pod 1.236 PPI::Token::Prototype 1.236 PPI::Token::Quote 1.236 PPI::Token::Quote::Double 1.236 PPI::Token::Quote::Interpolate 1.236 PPI::Token::Quote::Literal 1.236 PPI::Token::Quote::Single 1.236 PPI::Token::QuoteLike 1.236 PPI::Token::QuoteLike::Backtick 1.236 PPI::Token::QuoteLike::Command 1.236 PPI::Token::QuoteLike::Readline 1.236 PPI::Token::QuoteLike::Regexp 1.236 PPI::Token::QuoteLike::Words 1.236 PPI::Token::Regexp 1.236 PPI::Token::Regexp::Match 1.236 PPI::Token::Regexp::Substitute 1.236 PPI::Token::Regexp::Transliterate 1.236 PPI::Token::Separator 1.236 PPI::Token::Structure 1.236 PPI::Token::Symbol 1.236 PPI::Token::Unknown 1.236 PPI::Token::Whitespace 1.236 PPI::Token::Word 1.236 PPI::Token::_QuoteEngine 1.236 PPI::Token::_QuoteEngine::Full 1.236 PPI::Token::_QuoteEngine::Simple 1.236 PPI::Tokenizer 1.236 PPI::Transform 1.236 PPI::Transform::UpdateCopyright 1.236 PPI::Util 1.236 PPI::XSAccessor 1.236 requirements: Class::Inspector 1.22 Clone 0.30 Digest::MD5 2.35 ExtUtils::MakeMaker 6.59 File::Remove 1.42 File::Spec 0.84 IO::String 1.07 List::MoreUtils 0.16 List::Util 1.33 Params::Util 1.00 Storable 2.17 Task::Weaken 0 Test::Deep 0 Test::More 0.86 Test::Object 0.07 Test::SubCalls 1.07 perl 5.006 PPIx-Regexp-0.052 pathname: W/WY/WYANT/PPIx-Regexp-0.052.tar.gz provides: PPIx::Regexp 0.052 PPIx::Regexp::Constant 0.052 PPIx::Regexp::Dumper 0.052 PPIx::Regexp::Element 0.052 PPIx::Regexp::Lexer 0.052 PPIx::Regexp::Node 0.052 PPIx::Regexp::Node::Range 0.052 PPIx::Regexp::Node::Unknown 0.052 PPIx::Regexp::StringTokenizer 0.052 PPIx::Regexp::Structure 0.052 PPIx::Regexp::Structure::Assertion 0.052 PPIx::Regexp::Structure::BranchReset 0.052 PPIx::Regexp::Structure::Capture 0.052 PPIx::Regexp::Structure::CharClass 0.052 PPIx::Regexp::Structure::Code 0.052 PPIx::Regexp::Structure::Main 0.052 PPIx::Regexp::Structure::Modifier 0.052 PPIx::Regexp::Structure::NamedCapture 0.052 PPIx::Regexp::Structure::Quantifier 0.052 PPIx::Regexp::Structure::RegexSet 0.052 PPIx::Regexp::Structure::Regexp 0.052 PPIx::Regexp::Structure::Replacement 0.052 PPIx::Regexp::Structure::Subexpression 0.052 PPIx::Regexp::Structure::Switch 0.052 PPIx::Regexp::Structure::Unknown 0.052 PPIx::Regexp::Support 0.052 PPIx::Regexp::Token 0.052 PPIx::Regexp::Token::Assertion 0.052 PPIx::Regexp::Token::Backreference 0.052 PPIx::Regexp::Token::Backtrack 0.052 PPIx::Regexp::Token::CharClass 0.052 PPIx::Regexp::Token::CharClass::POSIX 0.052 PPIx::Regexp::Token::CharClass::POSIX::Unknown 0.052 PPIx::Regexp::Token::CharClass::Simple 0.052 PPIx::Regexp::Token::Code 0.052 PPIx::Regexp::Token::Comment 0.052 PPIx::Regexp::Token::Condition 0.052 PPIx::Regexp::Token::Control 0.052 PPIx::Regexp::Token::Delimiter 0.052 PPIx::Regexp::Token::Greediness 0.052 PPIx::Regexp::Token::GroupType 0.052 PPIx::Regexp::Token::GroupType::Assertion 0.052 PPIx::Regexp::Token::GroupType::BranchReset 0.052 PPIx::Regexp::Token::GroupType::Code 0.052 PPIx::Regexp::Token::GroupType::Modifier 0.052 PPIx::Regexp::Token::GroupType::NamedCapture 0.052 PPIx::Regexp::Token::GroupType::Subexpression 0.052 PPIx::Regexp::Token::GroupType::Switch 0.052 PPIx::Regexp::Token::Interpolation 0.052 PPIx::Regexp::Token::Literal 0.052 PPIx::Regexp::Token::Modifier 0.052 PPIx::Regexp::Token::NoOp 0.052 PPIx::Regexp::Token::Operator 0.052 PPIx::Regexp::Token::Quantifier 0.052 PPIx::Regexp::Token::Recursion 0.052 PPIx::Regexp::Token::Reference 0.052 PPIx::Regexp::Token::Structure 0.052 PPIx::Regexp::Token::Unknown 0.052 PPIx::Regexp::Token::Unmatched 0.052 PPIx::Regexp::Token::Whitespace 0.052 PPIx::Regexp::Tokenizer 0.052 PPIx::Regexp::Util 0.052 requirements: Carp 0 Exporter 0 List::MoreUtils 0 List::Util 0 PPI::Document 1.117 Scalar::Util 0 Task::Weaken 0 Test::More 0.88 base 0 constant 0 perl 5.006 strict 0 warnings 0 PPIx-Utilities-1.001000 pathname: E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz provides: PPIx::Utilities 1.001000 PPIx::Utilities::Exception::Bug 1.001000 PPIx::Utilities::Node 1.001000 PPIx::Utilities::Statement 1.001000 requirements: Data::Dumper 0 Exception::Class 0 Exporter 0 PPI 1.208 PPI::Document 1.208 PPI::Document::Fragment 1.208 PPI::Dumper 1.208 Readonly 0 Scalar::Util 0 Task::Weaken 0 Test::Deep 0 Test::More 0 base 0 strict 0 warnings 0 Params-Util-1.07 pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz provides: Params::Util 1.07 requirements: ExtUtils::CBuilder 0.27 ExtUtils::MakeMaker 6.52 File::Spec 0.80 Scalar::Util 1.18 Test::More 0.42 perl 5.00503 Parse-RecDescent-1.967015 pathname: J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz provides: Parse::RecDescent 1.967015 Parse::RecDescent::Action 1.967015 Parse::RecDescent::ColCounter 1.967015 Parse::RecDescent::Directive 1.967015 Parse::RecDescent::Error 1.967015 Parse::RecDescent::Expectation 1.967015 Parse::RecDescent::InterpLit 1.967015 Parse::RecDescent::LineCounter 1.967015 Parse::RecDescent::Literal 1.967015 Parse::RecDescent::OffsetCounter 1.967015 Parse::RecDescent::Operator 1.967015 Parse::RecDescent::Production 1.967015 Parse::RecDescent::Repetition 1.967015 Parse::RecDescent::Result 1.967015 Parse::RecDescent::Rule 1.967015 Parse::RecDescent::Subrule 1.967015 Parse::RecDescent::Token 1.967015 Parse::RecDescent::UncondReject 1.967015 requirements: Test::More 0 Text::Balanced 1.95 Path-Tiny-0.104 pathname: D/DA/DAGOLDEN/Path-Tiny-0.104.tar.gz provides: Path::Tiny 0.104 Path::Tiny::Error 0.104 requirements: Carp 0 Cwd 0 Digest 1.03 Digest::SHA 5.45 Exporter 5.57 ExtUtils::MakeMaker 6.17 Fcntl 0 File::Copy 0 File::Glob 0 File::Path 2.07 File::Spec 0.86 File::Temp 0.19 File::stat 0 constant 0 if 0 overload 0 perl 5.008001 strict 0 warnings 0 Perl-Critic-1.130 pathname: P/PE/PETDANCE/Perl-Critic-1.130.tar.gz provides: Perl::Critic 1.130 Perl::Critic::Annotation 1.130 Perl::Critic::Command 1.130 Perl::Critic::Config 1.130 Perl::Critic::Document 1.130 Perl::Critic::Exception 1.130 Perl::Critic::Exception::AggregateConfiguration 1.130 Perl::Critic::Exception::Configuration 1.130 Perl::Critic::Exception::Configuration::Generic 1.130 Perl::Critic::Exception::Configuration::NonExistentPolicy 1.130 Perl::Critic::Exception::Configuration::Option 1.130 Perl::Critic::Exception::Configuration::Option::Global 1.130 Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter 1.130 Perl::Critic::Exception::Configuration::Option::Global::ParameterValue 1.130 Perl::Critic::Exception::Configuration::Option::Policy 1.130 Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter 1.130 Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue 1.130 Perl::Critic::Exception::Fatal 1.130 Perl::Critic::Exception::Fatal::Generic 1.130 Perl::Critic::Exception::Fatal::Internal 1.130 Perl::Critic::Exception::Fatal::PolicyDefinition 1.130 Perl::Critic::Exception::IO 1.130 Perl::Critic::Exception::Parse 1.130 Perl::Critic::OptionsProcessor 1.130 Perl::Critic::Policy 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitUselessTopic 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction 1.130 Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA 1.130 Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless 1.130 Perl::Critic::Policy::CodeLayout::ProhibitHardTabs 1.130 Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins 1.130 Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists 1.130 Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace 1.130 Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines 1.130 Perl::Critic::Policy::CodeLayout::RequireTidyCode 1.130 Perl::Critic::Policy::CodeLayout::RequireTrailingCommas 1.130 Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops 1.130 Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse 1.130 Perl::Critic::Policy::ControlStructures::ProhibitDeepNests 1.130 Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames 1.130 Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions 1.130 Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions 1.130 Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode 1.130 Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks 1.130 Perl::Critic::Policy::ControlStructures::ProhibitYadaOperator 1.130 Perl::Critic::Policy::Documentation::PodSpelling 1.130 Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName 1.130 Perl::Critic::Policy::Documentation::RequirePodAtEnd 1.130 Perl::Critic::Policy::Documentation::RequirePodLinksIncludeText 1.130 Perl::Critic::Policy::Documentation::RequirePodSections 1.130 Perl::Critic::Policy::ErrorHandling::RequireCarping 1.130 Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval 1.130 Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators 1.130 Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles 1.130 Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin 1.130 Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest 1.130 Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline 1.130 Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect 1.130 Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop 1.130 Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen 1.130 Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint 1.130 Perl::Critic::Policy::InputOutput::RequireBriefOpen 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedClose 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedOpen 1.130 Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls 1.130 Perl::Critic::Policy::InputOutput::RequireEncodingWithUTF8Layer 1.130 Perl::Critic::Policy::Miscellanea::ProhibitFormats 1.130 Perl::Critic::Policy::Miscellanea::ProhibitTies 1.130 Perl::Critic::Policy::Miscellanea::ProhibitUnrestrictedNoCritic 1.130 Perl::Critic::Policy::Miscellanea::ProhibitUselessNoCritic 1.130 Perl::Critic::Policy::Modules::ProhibitAutomaticExportation 1.130 Perl::Critic::Policy::Modules::ProhibitConditionalUseStatements 1.130 Perl::Critic::Policy::Modules::ProhibitEvilModules 1.130 Perl::Critic::Policy::Modules::ProhibitExcessMainComplexity 1.130 Perl::Critic::Policy::Modules::ProhibitMultiplePackages 1.130 Perl::Critic::Policy::Modules::RequireBarewordIncludes 1.130 Perl::Critic::Policy::Modules::RequireEndWithOne 1.130 Perl::Critic::Policy::Modules::RequireExplicitPackage 1.130 Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage 1.130 Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish 1.130 Perl::Critic::Policy::Modules::RequireVersionVar 1.130 Perl::Critic::Policy::NamingConventions::Capitalization 1.130 Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames 1.130 Perl::Critic::Policy::Objects::ProhibitIndirectSyntax 1.130 Perl::Critic::Policy::References::ProhibitDoubleSigils 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitComplexRegexes 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitEscapedMetacharacters 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitSingleCharAlternation 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUnusedCapture 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUnusualDelimiters 1.130 Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic 1.130 Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline 1.130 Perl::Critic::Policy::RegularExpressions::RequireDotMatchAnything 1.130 Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting 1.130 Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching 1.130 Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils 1.130 Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms 1.130 Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity 1.130 Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef 1.130 Perl::Critic::Policy::Subroutines::ProhibitManyArgs 1.130 Perl::Critic::Policy::Subroutines::ProhibitNestedSubs 1.130 Perl::Critic::Policy::Subroutines::ProhibitReturnSort 1.130 Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes 1.130 Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines 1.130 Perl::Critic::Policy::Subroutines::ProtectPrivateSubs 1.130 Perl::Critic::Policy::Subroutines::RequireArgUnpacking 1.130 Perl::Critic::Policy::Subroutines::RequireFinalReturn 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings 1.130 Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict 1.130 Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitComplexVersion 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitLongChainsOfMethodCalls 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator 1.130 Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireConstantVersion 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator 1.130 Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator 1.130 Perl::Critic::Policy::Variables::ProhibitAugmentedAssignmentInDeclaration 1.130 Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations 1.130 Perl::Critic::Policy::Variables::ProhibitEvilVariables 1.130 Perl::Critic::Policy::Variables::ProhibitLocalVars 1.130 Perl::Critic::Policy::Variables::ProhibitMatchVars 1.130 Perl::Critic::Policy::Variables::ProhibitPackageVars 1.130 Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames 1.130 Perl::Critic::Policy::Variables::ProhibitPunctuationVars 1.130 Perl::Critic::Policy::Variables::ProhibitReusedNames 1.130 Perl::Critic::Policy::Variables::ProhibitUnusedVariables 1.130 Perl::Critic::Policy::Variables::ProtectPrivateVars 1.130 Perl::Critic::Policy::Variables::RequireInitializationForLocalVars 1.130 Perl::Critic::Policy::Variables::RequireLexicalLoopIterators 1.130 Perl::Critic::Policy::Variables::RequireLocalizedPunctuationVars 1.130 Perl::Critic::Policy::Variables::RequireNegativeIndices 1.130 Perl::Critic::PolicyConfig 1.130 Perl::Critic::PolicyFactory 1.130 Perl::Critic::PolicyListing 1.130 Perl::Critic::PolicyParameter 1.130 Perl::Critic::PolicyParameter::Behavior 1.130 Perl::Critic::PolicyParameter::Behavior::Boolean 1.130 Perl::Critic::PolicyParameter::Behavior::Enumeration 1.130 Perl::Critic::PolicyParameter::Behavior::Integer 1.130 Perl::Critic::PolicyParameter::Behavior::String 1.130 Perl::Critic::PolicyParameter::Behavior::StringList 1.130 Perl::Critic::ProfilePrototype 1.130 Perl::Critic::Statistics 1.130 Perl::Critic::TestUtils 1.130 Perl::Critic::Theme 1.130 Perl::Critic::ThemeListing 1.130 Perl::Critic::UserProfile 1.130 Perl::Critic::Utils 1.130 Perl::Critic::Utils::Constants 1.130 Perl::Critic::Utils::DataConversion 1.130 Perl::Critic::Utils::McCabe 1.130 Perl::Critic::Utils::POD 1.130 Perl::Critic::Utils::POD::ParseInteriorSequence 1.130 Perl::Critic::Utils::PPI 1.130 Perl::Critic::Utils::Perl 1.130 Perl::Critic::Violation 1.130 Test::Perl::Critic::Policy 1.130 requirements: B::Keywords 1.05 Carp 0 Config::Tiny 2 Email::Address 1.889 English 0 Exception::Class 1.23 Exporter 5.63 File::Basename 0 File::Find 0 File::HomeDir 0 File::Path 0 File::Spec 0 File::Spec::Unix 0 File::Temp 0 File::Which 0 Getopt::Long 0 IO::String 0 IPC::Open2 1 List::MoreUtils 0.19 List::Util 0 Module::Build 0.4024 Module::Pluggable 3.1 PPI 1.224 PPI::Document 1.224 PPI::Document::File 1.224 PPI::Node 1.224 PPI::Token::Quote::Single 1.224 PPI::Token::Whitespace 1.224 PPIx::Regexp 0.027 PPIx::Utilities::Node 1.001 PPIx::Utilities::Statement 1.001 Perl::Tidy 0 Pod::Parser 0 Pod::PlainText 0 Pod::Select 0 Pod::Spell 1 Pod::Usage 0 Readonly 2 Scalar::Util 0 String::Format 1.13 Task::Weaken 0 Term::ANSIColor 2.02 Test::Builder 0.92 Test::Deep 0 Test::More 0 Text::ParseWords 3 base 0 charnames 0 lib 0 overload 0 perl 5.006001 strict 0 version 0.77 warnings 0 Perl-Tidy-20170521 pathname: S/SH/SHANCOCK/Perl-Tidy-20170521.tar.gz provides: Perl::Tidy 20170521 Perl::Tidy::Debugger 20170521 Perl::Tidy::DevNull 20170521 Perl::Tidy::Diagnostics 20170521 Perl::Tidy::FileWriter 20170521 Perl::Tidy::Formatter 20170521 Perl::Tidy::HtmlWriter 20170521 Perl::Tidy::IOScalar 20170521 Perl::Tidy::IOScalarArray 20170521 Perl::Tidy::IndentationItem 20170521 Perl::Tidy::LineBuffer 20170521 Perl::Tidy::LineSink 20170521 Perl::Tidy::LineSource 20170521 Perl::Tidy::Logger 20170521 Perl::Tidy::Tokenizer 20170521 Perl::Tidy::VerticalAligner 20170521 Perl::Tidy::VerticalAligner::Alignment 20170521 Perl::Tidy::VerticalAligner::Line 20170521 requirements: ExtUtils::MakeMaker 0 PerlIO-utf8_strict-0.007 pathname: L/LE/LEONT/PerlIO-utf8_strict-0.007.tar.gz provides: PerlIO::utf8_strict 0.007 requirements: ExtUtils::MakeMaker 0 XSLoader 0 perl 5.008 strict 0 warnings 0 Pod-Coverage-0.23 pathname: R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz provides: Pod::Coverage 0.23 Pod::Coverage::CountParents undef Pod::Coverage::ExportOnly undef Pod::Coverage::Extractor 0.23 Pod::Coverage::Overloader undef requirements: Devel::Symdump 2.01 ExtUtils::MakeMaker 0 Pod::Find 0.21 Pod::Parser 1.13 Test::More 0 Pod-Coverage-TrustPod-0.100003 pathname: R/RJ/RJBS/Pod-Coverage-TrustPod-0.100003.tar.gz provides: Pod::Coverage::TrustPod 0.100003 requirements: ExtUtils::MakeMaker 6.30 Pod::Coverage::CountParents 0 Pod::Eventual::Simple 0 Pod::Find 0 base 0 strict 0 warnings 0 Pod-Eventual-0.094001 pathname: R/RJ/RJBS/Pod-Eventual-0.094001.tar.gz provides: Pod::Eventual 0.094001 Pod::Eventual::Simple 0.094001 requirements: Carp 0 ExtUtils::MakeMaker 6.30 Mixin::Linewise::Readers 0.102 strict 0 warnings 0 Pod-Spell-1.20 pathname: D/DO/DOLMEN/Pod-Spell-1.20.tar.gz provides: Pod::Spell 1.20 Pod::Wordlist 1.20 requirements: Carp 0 Class::Tiny 0 ExtUtils::MakeMaker 0 File::ShareDir 0 File::ShareDir::Install 0.06 Lingua::EN::Inflect 0 POSIX 0 Path::Tiny 0 Pod::Escapes 0 Pod::Parser 0 Text::Wrap 0 constant 0 locale 0 parent 0 perl 5.008 strict 0 warnings 0 Pod-Strip-1.02 pathname: D/DO/DOMM/Pod-Strip-1.02.tar.gz provides: Pod::Strip 1.02 requirements: Pod::Simple 3.00 Test::More 0 Readonly-2.05 pathname: S/SA/SANKO/Readonly-2.05.tar.gz provides: Readonly 2.05 Readonly::Array undef Readonly::Hash undef Readonly::Scalar undef requirements: Module::Build::Tiny 0.035 perl 5.005 Set-Scalar-1.29 pathname: D/DA/DAVIDO/Set-Scalar-1.29.tar.gz provides: Set::Scalar 1.29 Set::Scalar::Base 1.29 Set::Scalar::Null 1.29 Set::Scalar::Real 1.29 Set::Scalar::Universe 1.29 Set::Scalar::Valued 1.29 Set::Scalar::ValuedUniverse 1.29 Set::Scalar::Virtual 1.29 requirements: ExtUtils::MakeMaker 0 Software-License-0.103012 pathname: R/RJ/RJBS/Software-License-0.103012.tar.gz provides: Software::License 0.103012 Software::License::AGPL_3 0.103012 Software::License::Apache_1_1 0.103012 Software::License::Apache_2_0 0.103012 Software::License::Artistic_1_0 0.103012 Software::License::Artistic_2_0 0.103012 Software::License::BSD 0.103012 Software::License::CC0_1_0 0.103012 Software::License::Custom 0.103012 Software::License::FreeBSD 0.103012 Software::License::GFDL_1_2 0.103012 Software::License::GFDL_1_3 0.103012 Software::License::GPL_1 0.103012 Software::License::GPL_2 0.103012 Software::License::GPL_3 0.103012 Software::License::LGPL_2_1 0.103012 Software::License::LGPL_3_0 0.103012 Software::License::MIT 0.103012 Software::License::Mozilla_1_0 0.103012 Software::License::Mozilla_1_1 0.103012 Software::License::Mozilla_2_0 0.103012 Software::License::None 0.103012 Software::License::OpenSSL 0.103012 Software::License::Perl_5 0.103012 Software::License::PostgreSQL 0.103012 Software::License::QPL_1_0 0.103012 Software::License::SSLeay 0.103012 Software::License::Sun 0.103012 Software::License::Zlib 0.103012 Software::LicenseUtils 0.103012 requirements: Carp 0 Data::Section 0 ExtUtils::MakeMaker 0 File::Spec 0 IO::Dir 0 Module::Load 0 Text::Template 0 parent 0 perl 5.006 strict 0 warnings 0 Software-License-CCpack-1.11 pathname: B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz provides: Software::License::CC_BY_1_0 1.11 Software::License::CC_BY_2_0 1.11 Software::License::CC_BY_3_0 1.11 Software::License::CC_BY_4_0 1.11 Software::License::CC_BY_NC_1_0 1.11 Software::License::CC_BY_NC_2_0 1.11 Software::License::CC_BY_NC_3_0 1.11 Software::License::CC_BY_NC_4_0 1.11 Software::License::CC_BY_NC_ND_2_0 1.11 Software::License::CC_BY_NC_ND_3_0 1.11 Software::License::CC_BY_NC_ND_4_0 1.11 Software::License::CC_BY_NC_SA_1_0 1.11 Software::License::CC_BY_NC_SA_2_0 1.11 Software::License::CC_BY_NC_SA_3_0 1.11 Software::License::CC_BY_NC_SA_4_0 1.11 Software::License::CC_BY_ND_1_0 1.11 Software::License::CC_BY_ND_2_0 1.11 Software::License::CC_BY_ND_3_0 1.11 Software::License::CC_BY_ND_4_0 1.11 Software::License::CC_BY_ND_NC_1_0 1.11 Software::License::CC_BY_SA_1_0 1.11 Software::License::CC_BY_SA_2_0 1.11 Software::License::CC_BY_SA_3_0 1.11 Software::License::CC_BY_SA_4_0 1.11 Software::License::CC_PDM_1_0 1.11 Software::License::CCpack 1.11 requirements: ExtUtils::MakeMaker 0 Software::License 0 String-Format-1.17 pathname: D/DA/DARREN/String-Format-1.17.tar.gz provides: String::Format 1.17 requirements: ExtUtils::MakeMaker 0 Test::More 0 Sub-Exporter-0.987 pathname: R/RJ/RJBS/Sub-Exporter-0.987.tar.gz provides: Sub::Exporter 0.987 Sub::Exporter::Util 0.987 requirements: Carp 0 Data::OptList 0.100 ExtUtils::MakeMaker 6.30 Params::Util 0.14 Sub::Install 0.92 strict 0 warnings 0 Sub-Install-0.928 pathname: R/RJ/RJBS/Sub-Install-0.928.tar.gz provides: Sub::Install 0.928 requirements: B 0 Carp 0 ExtUtils::MakeMaker 6.30 Scalar::Util 0 strict 0 warnings 0 Task-Weaken-1.04 pathname: A/AD/ADAMK/Task-Weaken-1.04.tar.gz provides: Task::Weaken 1.04 requirements: ExtUtils::MakeMaker 6.42 File::Spec 0.80 Scalar::Util 1.14 Test::More 0.42 perl 5.005 Test-CPAN-Meta-JSON-0.16 pathname: B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz provides: Test::CPAN::Meta::JSON 0.16 Test::CPAN::Meta::JSON::Version 0.16 requirements: ExtUtils::MakeMaker 0 IO::File 0 JSON 2.15 Test::Builder 0 Test::Builder::Tester 0 Test::More 0.70 Test-Deep-1.127 pathname: R/RJ/RJBS/Test-Deep-1.127.tar.gz provides: Test::Deep 1.127 Test::Deep::All undef Test::Deep::Any undef Test::Deep::Array undef Test::Deep::ArrayEach undef Test::Deep::ArrayElementsOnly undef Test::Deep::ArrayLength undef Test::Deep::ArrayLengthOnly undef Test::Deep::Blessed undef Test::Deep::Boolean undef Test::Deep::Cache undef Test::Deep::Cache::Simple undef Test::Deep::Class undef Test::Deep::Cmp undef Test::Deep::Code undef Test::Deep::Hash undef Test::Deep::HashEach undef Test::Deep::HashElements undef Test::Deep::HashKeys undef Test::Deep::HashKeysOnly undef Test::Deep::Ignore undef Test::Deep::Isa undef Test::Deep::ListMethods undef Test::Deep::MM undef Test::Deep::Methods undef Test::Deep::NoTest undef Test::Deep::None undef Test::Deep::Number undef Test::Deep::Obj undef Test::Deep::Ref undef Test::Deep::RefType undef Test::Deep::Regexp undef Test::Deep::RegexpMatches undef Test::Deep::RegexpOnly undef Test::Deep::RegexpRef undef Test::Deep::RegexpRefOnly undef Test::Deep::RegexpVersion undef Test::Deep::ScalarRef undef Test::Deep::ScalarRefOnly undef Test::Deep::Set undef Test::Deep::Shallow undef Test::Deep::Stack undef Test::Deep::String undef Test::Deep::SubHash undef Test::Deep::SubHashElements undef Test::Deep::SubHashKeys undef Test::Deep::SubHashKeysOnly undef Test::Deep::SuperHash undef Test::Deep::SuperHashElements undef Test::Deep::SuperHashKeys undef Test::Deep::SuperHashKeysOnly undef requirements: ExtUtils::MakeMaker 0 List::Util 1.09 Scalar::Util 1.09 Test::Builder 0 Test-Fatal-0.014 pathname: R/RJ/RJBS/Test-Fatal-0.014.tar.gz provides: Test::Fatal 0.014 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 Test::Builder 0 Try::Tiny 0.07 strict 0 warnings 0 Test-Kwalitee-1.26 pathname: E/ET/ETHER/Test-Kwalitee-1.26.tar.gz provides: Test::Kwalitee 1.26 requirements: Cwd 0 Exporter 0 ExtUtils::MakeMaker 0 Module::CPANTS::Analyse 0.92 Test::Builder 0.88 parent 0 perl 5.006 strict 0 warnings 0 Test-NoWarnings-1.04 pathname: A/AD/ADAMK/Test-NoWarnings-1.04.tar.gz provides: Test::NoWarnings 1.04 Test::NoWarnings::Warning 1.04 requirements: ExtUtils::MakeMaker 0 Test::Builder 0.86 Test::More 0.47 Test::Tester 0.107 perl 5.006 Test-Object-0.07 pathname: A/AD/ADAMK/Test-Object-0.07.tar.gz provides: Test::Object 0.07 Test::Object::Test 0.07 requirements: Carp 0 Exporter 0 ExtUtils::MakeMaker 0 File::Spec 0.80 Scalar::Util 1.16 Test::Builder 0.33 Test::Builder::Tester 1.02 Test::More 0.42 overload 0 Test-Perl-Critic-1.03 pathname: T/TH/THALJEF/Test-Perl-Critic-1.03.tar.gz provides: Test::Perl::Critic 1.03 requirements: Carp 0 English 0 MCE 1.52 Module::Build 0.4 Perl::Critic 1.105 Perl::Critic::Utils 1.105 Perl::Critic::Violation 1.105 Test::Builder 0 Test::More 0 strict 0 warnings 0 Test-Pod-1.51 pathname: E/ET/ETHER/Test-Pod-1.51.tar.gz provides: Test::Pod 1.51 requirements: ExtUtils::MakeMaker 0 File::Find 0 Pod::Simple 3.05 Test::Builder::Tester 1.02 Test::More 0.62 perl 5.008 Test-Pod-Coverage-1.10 pathname: N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz provides: Test::Pod::Coverage 1.10 requirements: ExtUtils::MakeMaker 0 Pod::Coverage 0 Test::Builder 0 perl 5.006 strict 0 warnings 0 Test-Simple-1.302111 pathname: E/EX/EXODIST/Test-Simple-1.302111.tar.gz provides: Test2 1.302111 Test2::API 1.302111 Test2::API::Breakage 1.302111 Test2::API::Context 1.302111 Test2::API::Instance 1.302111 Test2::API::Stack 1.302111 Test2::Event 1.302111 Test2::Event::Bail 1.302111 Test2::Event::Diag 1.302111 Test2::Event::Encoding 1.302111 Test2::Event::Exception 1.302111 Test2::Event::Fail 1.302111 Test2::Event::Generic 1.302111 Test2::Event::Note 1.302111 Test2::Event::Ok 1.302111 Test2::Event::Pass 1.302111 Test2::Event::Plan 1.302111 Test2::Event::Skip 1.302111 Test2::Event::Subtest 1.302111 Test2::Event::TAP::Version 1.302111 Test2::Event::Waiting 1.302111 Test2::EventFacet 1.302111 Test2::EventFacet::About 1.302111 Test2::EventFacet::Amnesty 1.302111 Test2::EventFacet::Assert 1.302111 Test2::EventFacet::Control 1.302111 Test2::EventFacet::Error 1.302111 Test2::EventFacet::Info 1.302111 Test2::EventFacet::Meta 1.302111 Test2::EventFacet::Parent 1.302111 Test2::EventFacet::Plan 1.302111 Test2::EventFacet::Trace 1.302111 Test2::Formatter 1.302111 Test2::Formatter::TAP 1.302111 Test2::Hub 1.302111 Test2::Hub::Interceptor 1.302111 Test2::Hub::Interceptor::Terminator 1.302111 Test2::Hub::Subtest 1.302111 Test2::IPC 1.302111 Test2::IPC::Driver 1.302111 Test2::IPC::Driver::Files 1.302111 Test2::Tools::Tiny 1.302111 Test2::Util 1.302111 Test2::Util::ExternalMeta 1.302111 Test2::Util::Facets2Legacy 1.302111 Test2::Util::HashBase 1.302111 Test2::Util::Trace 1.302111 Test::Builder 1.302111 Test::Builder::Formatter 1.302111 Test::Builder::IO::Scalar 2.114 Test::Builder::Module 1.302111 Test::Builder::Tester 1.302111 Test::Builder::Tester::Color 1.302111 Test::Builder::Tester::Tie 1.302111 Test::Builder::TodoDiag 1.302111 Test::More 1.302111 Test::Simple 1.302111 Test::Tester 1.302111 Test::Tester::Capture 1.302111 Test::Tester::CaptureRunner 1.302111 Test::Tester::Delegate 1.302111 Test::use::ok 1.302111 ok 1.302111 requirements: ExtUtils::MakeMaker 0 File::Spec 0 File::Temp 0 Scalar::Util 1.13 Storable 0 perl 5.006002 utf8 0 Test-SubCalls-1.09 pathname: A/AD/ADAMK/Test-SubCalls-1.09.tar.gz provides: Test::SubCalls 1.09 requirements: ExtUtils::MakeMaker 6.42 File::Spec 0.80 Hook::LexWrap 0.20 Test::Builder::Tester 1.02 Test::More 0.42 Text-Template-1.47 pathname: M/MS/MSCHOUT/Text-Template-1.47.tar.gz provides: Text::Template 1.47 Text::Template::Preprocess 1.47 requirements: Carp 0 Exporter 0 ExtUtils::MakeMaker 0 perl 5.004 strict 0 vars 0 Try-Tiny-0.28 pathname: E/ET/ETHER/Try-Tiny-0.28.tar.gz provides: Try::Tiny 0.28 requirements: Carp 0 Exporter 5.57 ExtUtils::MakeMaker 0 constant 0 perl 5.006 strict 0 warnings 0 XSLoader-0.24 pathname: S/SA/SAPER/XSLoader-0.24.tar.gz provides: XSLoader 0.24 requirements: ExtUtils::MakeMaker 0 Test::More 0.47 Test000755000765000024 014071630265 14763 5ustar00jonasbnstaff000000000000Test-Timer-2.12/libTimer.pm100644000765000024 5461414071630265 16573 0ustar00jonasbnstaff000000000000Test-Timer-2.12/lib/Testpackage Test::Timer; use warnings; use strict; use vars qw($VERSION @ISA @EXPORT); use Benchmark; # timestr use Carp qw(croak); use Error qw(:try); use Test::Builder; use base 'Test::Builder::Module'; use constant TRUE => 1; use constant FALSE => 0; #own use Test::Timer::TimeoutException; @EXPORT = qw(time_ok time_nok time_atleast time_atmost time_between); $VERSION = '2.12'; my $test = Test::Builder->new; my $timeout = 0; # TODO: this should be renamed to ALARM to adhere with Variables::ProhibitPackageVars our $alarm = 2; # default alarm # syntactic sugar for time_atmost sub time_ok { return time_atmost(@_); } # inverse test of time_ok sub time_nok { my ( $code, $upperthreshold, $name ) = @_; # timing from zero to upper threshold my ( $within, $time ) = _runtest( $code, 0, $upperthreshold ); # are we within the specified threshold if ( $within == TRUE ) { # we inverse the result, since we are the inverse of time_ok $within = FALSE; $test->ok( $within, $name ); # no, we fail $test->diag( "Test ran $time seconds and did not exceed specified threshold of $upperthreshold seconds" ); } else { # we inverse the result, since we are the inverse of time_ok $within = TRUE; $test->ok( $within, $name ); # yes, we do not fail } return $within; } # test to make sure we are below a specified threshold sub time_atmost { my ( $code, $upperthreshold, $name ) = @_; # timing from zero to upper threshold my ( $within, $time ) = _runtest( $code, 0, $upperthreshold ); # are we within the specified threshold if ( $within == TRUE ) { $test->ok( $within, $name ); # yes, we do not fail } else { $test->ok( $within, $name ); # no, we fail $test->diag( "Test ran $time seconds and exceeded specified threshold of $upperthreshold seconds" ); } return $within; } # test to make sure we are above a specified threshold sub time_atleast { my ( $code, $lowerthreshold, $name ) = @_; # timing from lowerthreshold to nothing my ( $above, $time ) = _runtest( $code, $lowerthreshold, undef ); # are we above the specified threshold if ( $above == TRUE ) { $test->ok( $above, $name ); # yes, we do not fail } else { $test->ok( $above, $name ); # no, we fail $test->diag( "Test ran $time seconds and did not exceed specified threshold of $lowerthreshold seconds" ); } return $above; } # test to make sure we are witin a specified threshold time frame sub time_between { my ( $code, $lowerthreshold, $upperthreshold, $name ) = @_; # timing from lower to upper threshold my ( $within, $time ) = _runtest( $code, $lowerthreshold, $upperthreshold ); # are we within the specified threshold if ( $within == TRUE ) { $test->ok( $within, $name ); # yes, we do not fail } else { $test->ok( $within, $name ); # no, we fail if ($timeout) { $test->diag( "Execution ran $timeout seconds and did not execute within specified interval $lowerthreshold - $upperthreshold seconds and timed out" ); } else { $test->diag( "Test ran $time seconds and did not execute within specified interval $lowerthreshold - $upperthreshold seconds" ); } } return $within; } # helper routine to make initiate timing and make initial interpretation of results # test mehtods do the final interpretation sub _runtest { my ( $code, $lowerthreshold, $upperthreshold ) = @_; my $ok = FALSE; my $time = 0; try { # we have both a lower and upper threshold (time_between, time_most, time_ok) if ( defined $lowerthreshold and defined $upperthreshold ) { $time = _benchmark( $code, $upperthreshold ); if ( $time >= $lowerthreshold and $time <= $upperthreshold ) { $ok = TRUE; } else { $ok = FALSE; } # we just have a lower threshold (time_atleast) } elsif ( defined $lowerthreshold ) { $time = _benchmark($code); if ( $time >= $lowerthreshold ) { $ok = TRUE; } else { $ok = FALSE; } } } # catching a timeout so we do not run forever catch Test::Timer::TimeoutException with { my $E = shift; $timeout = $E->{-text}; return ( undef, $time ); # we return undef as result }; return ( $ok, $time ); } # actual timing using benchmark sub _benchmark { my ( $code, $threshold ) = @_; my $time = 0; # We default to no alarm my $local_alarm = 0; # We only define an alarm if we have an upper threshold # alarm is based on upper threshold + default alarm # default alarm can be extended, see the docs if ( defined $threshold ) { $local_alarm = $threshold + $alarm; } # setting first benchmark my $t0 = Benchmark->new(); # defining alarm signal handler # the handler takes care of terminating the # benchmarking local $SIG{ALRM} = sub { my $t_alarm = Benchmark->new(); my $alarm_time_string = timediff( $t_alarm, $t0 )->real; throw Test::Timer::TimeoutException($alarm_time_string); }; # setting alarm alarm $local_alarm; # running code &{$code}; # clear alarm alarm 0; # setting second benchmark my $t1 = Benchmark->new(); # parsing benchmark output my $timestring = timediff( $t1, $t0 )->real; return $timestring; } 1; __END__ =pod =encoding UTF-8 =begin stopwords hokus pokus CPAN GitHub MetaCPAN AnnoCPAN jonasbn ACKNOWLEDGEMENTS Anwar PRs Johansen Morrott Bartosz BDFOY Gabor Szabo GZABO Gregor Herrmann alik Jakubski Veri Ivanova Leonerd PEVANS brian foy Brømsø MANWAR UNIEJO GREGOA NHORNE KENTNL SZABGAB =end stopwords =begin markdown # Test::Timer [![CPAN version](https://badge.fury.io/pl/Test-Timer.svg)](http://badge.fury.io/pl/Test-Timer) ![stability-stable](https://img.shields.io/badge/stability-stable-green.svg) [![Build Status](https://travis-ci.org/jonasbn/perl-test-timer.svg?branch=master)](https://travis-ci.org/jonasbn/perl-test-timer) [![Coverage Status](https://coveralls.io/repos/github/jonasbn/perl-test-timer/badge.svg?branch=master)](https://coveralls.io/github/jonasbn/perl-test-timer?branch=master) [![License: Artistic-2.0](https://img.shields.io/badge/License-Artistic%202.0-0298c3.svg)](https://opensource.org/licenses/Artistic-2.0) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1391/badge)](https://bestpractices.coreinfrastructure.org/projects/1391) - [NAME](#name) - [VERSION](#version) - [FEATURES](#features) - [SYNOPSIS](#synopsis) - [DESCRIPTION](#description) - [EXPORT](#export) - [SUBROUTINES/METHODS](#subroutinesmethods) - [time\_ok](#time_ok) - [time\_nok](#time_nok) - [time\_atmost](#time_atmost) - [time\_atleast](#time_atleast) - [time\_between](#time_between) - [PRIVATE FUNCTIONS](#private-functions) - [\_runtest](#_runtest) - [\_benchmark](#_benchmark) - [import](#import) - [DIAGNOSTICS](#diagnostics) - [CONFIGURATION AND ENVIRONMENT](#configuration-and-environment) - [DEPENDENCIES](#dependencies) - [INCOMPATIBILITIES](#incompatibilities) - [BUGS AND LIMITATIONS](#bugs-and-limitations) - [TEST AND QUALITY](#test-and-quality) - [CONTINUOUS INTEGRATION](#continuous-integration) - [SEE ALSO](#see-also) - [ISSUE REPORTING](#issue-reporting) - [SUPPORT](#support) - [DEVELOPMENT](#development) - [AUTHOR](#author) - [ACKNOWLEDGEMENTS](#acknowledgements) - [LICENSE AND COPYRIGHT](#license-and-copyright) =end markdown =head1 NAME Test::Timer - test module to test/assert response times =head1 VERSION The documentation describes version 2.12 of Test::Timer =head1 FEATURES =over =item * Test subroutines to implement unit-tests to time that your code executes before a specified threshold =item * Test subroutines to implement unit-tests to time that your code execution exceeds a specified threshold =item * Test subroutine to implement unit-tests to time that your code executes within a specified time frame =item * Supports measurements in seconds =item * Implements configurable alarm signal handler to make sure that your tests do not execute forever =back =head1 SYNOPSIS use Test::Timer; time_ok( sub { doYourStuffButBeQuickAboutIt(); }, 1, 'threshold of one second'); time_atmost( sub { doYourStuffYouHave10Seconds(); }, 10, 'threshold of 10 seconds'); time_between( sub { doYourStuffYouHave5-10Seconds(); }, 5, 10, 'lower threshold of 5 seconds and upper threshold of 10 seconds'); # Will succeed time_nok( sub { sleep(2); }, 1, 'threshold of one second'); time_atleast( sub { sleep(2); }, 2, 'threshold of one second'); # Will fail after 5 (threshold) + 2 seconds (default alarm) time_ok( sub { while(1) { sleep(1); } }, 5, 'threshold of one second'); $test::Timer::alarm = 6 #default 2 seconds # Will fail after 5 (threshold) + 6 seconds (specified alarm) time_ok( sub { while(1) { sleep(1); } }, 5, 'threshold of one second'); =head1 DESCRIPTION Test::Timer implements a set of test primitives to test and assert test times from bodies of code. The key features are subroutines to assert or test the following: =over =item * that a given piece of code does not exceed a specified time limit =item * that a given piece of code takes longer than a specified time limit and does not exceed another =back =head1 EXPORT Test::Timer exports: =over =item * L =item * L =item * L =item * L =item * L =back =head1 SUBROUTINES/METHODS =head2 time_ok Takes the following parameters: =over =item * a reference to a block of code (anonymous sub) =item * a threshold specified as a integer indicating a number of seconds =item * a string specifying a test name =back time_nok( sub { sleep(2); }, 1, 'threshold of one second'); If the execution of the code exceeds the threshold specified the test fail with the following diagnostic message Test ran 2 seconds and exceeded specified threshold of 1 seconds =head2 time_nok The is the inverted variant of L, it passes if the threshold is exceeded and fails if the benchmark of the code is within the specified timing threshold. The API is the same as for L. time_nok( sub { sleep(1); }, 2, 'threshold of two seconds'); If the execution of the code executes below the threshold specified the test fail with the following diagnostic message Test ran 1 seconds and did not exceed specified threshold of 2 seconds =head2 time_atmost This is I for L time_atmost( sub { doYourStuffButBeQuickAboutIt(); }, 1, 'threshold of one second'); If the execution of the code exceeds the threshold specified the test fail with the following diagnostic message Test ran N seconds and exceeded specified threshold of 1 seconds N will be the actual measured execution time of the specified code =for HTML time_atmost visualization =for markdown ![time_atmost visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_atmost.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | S| S| F| F| F| F| F| F| F| F| F| F| F| F| F| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head2 time_atleast time_atleast( sub { doYourStuffAndTakeYourTimeAboutIt(); }, 1, 'threshold of 1 second'); The test succeeds if the code takes at least the number of seconds specified by the timing threshold. If the code executes faster, the test fails with the following diagnostic message Test ran 1 seconds and did not exceed specified threshold of 2 seconds Please be aware that Test::Timer, breaks the execution with an alarm specified to trigger after the specified threshold + 2 seconds (default), so if you expect your execution to run longer, set the alarm accordingly. $Test::Timer::alarm = $my_alarm_in_seconds; See also L. =for HTML time_atleast visualization =for markdown ![time_atleast visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_atleast.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | F| F| S| S| S| S| S| S| S| S| S| S| S| S| S| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head2 time_between This method is a more extensive variant of L and L, you can specify a lower and upper threshold, the code has to execute within this interval in order for the test to succeed time_between( sub { sleep(2); }, 5, 10, 'lower threshold of 5 seconds and upper threshold of 10 seconds'); If the code executes faster than the lower threshold or exceeds the upper threshold, the test fails with the following diagnostic message Test ran 2 seconds and did not execute within specified interval 5 - 10 seconds Or Test ran 12 seconds and did not execute within specified interval 5 - 10 seconds =for HTML time_between visualization =for markdown ![time_between visualization](https://jonasbn.github.io/perl-test-timer/assets/images/time_between.png) =begin text Graphical visualization of the above example. +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Time in seconds: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Test outcome: | F| F| F| F| F| S| S| S| S| S| S| F| F| F| F| +------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ F = failure S = Success =end text =head1 PRIVATE FUNCTIONS =head2 _runtest This is a method to handle the result from L<_benchmark|/_benchmark> is initiates the benchmark calling benchmark and based on whether it is within the provided interval true (1) is returned and if not false (0). =head2 _benchmark This is the method doing the actual benchmark, if a better method is located this is the place to do the handy work. Currently L is used. An alternative could be L, but I do not know this module very well and L is core, so this is used for now. The method takes two parameters: =over =item * a code block via a code reference =item * a threshold (the upper threshold, since this is added to the default alarm =back =head2 import Test::Builder required import to do some import I for the test methods exported from Test::Timer. Please refer to the documentation in L =head1 DIAGNOSTICS All tests either fail or succeed, but a few exceptions are implemented, these are listed below. =over =item * Test did not exceed specified threshold, this message is diagnosis for L and L tests, which do not exceed their specified threshold =item * Test exceeded specified threshold, this message is a diagnostic for L and L, if the specified threshold is surpassed. This is the key point of the module, either your code is too slow and you should address this or your threshold is too low, in which case you can set it a bit higher and run the test again. =item * Test did not execute within specified interval, this is the diagnostic from L, it is the diagnosis if the execution of the code is not between the specified lower and upper thresholds =item * Insufficient parameters, this is the message if a specified test is not provided with the sufficient number of parameters, consult this documentation and correct accordingly =item * Execution exceeded threshold and timed out, the exception is thrown if the execution of tested code exceeds even the alarm, which is default 2 seconds, but can be set by the user or is equal to the upper threshold + 2 seconds The exception results in a diagnostic for the failing test. This is a fail-safe to avoid that code runs forever. If you get this diagnose either your code is too slow and you should address this or it might be error prone. If this is not the case adjust the alarm setting to suit your situation. =back =head1 CONFIGURATION AND ENVIRONMENT This module requires no special configuration or environment. Tests are sensitive and be configured using environment and configuration files, please see the section on L. =head1 DEPENDENCIES =over =item * L =item * L =item * L =item * L =item * L =back =head1 INCOMPATIBILITIES This module holds no known incompatibilities. =head1 BUGS AND LIMITATIONS This module holds no known bugs. The current implementations only use seconds and resolutions should be higher, so the current implementation is limited to seconds as the highest resolution. On occasion failing tests with CPAN-testers have been observed. This seem to be related to the test-suite being not taking into account that some smoke-testers do not prioritize resources for the test run and that additional processes/jobs are running. The test-suite have been adjusted to accommodate this but these issues might reoccur. =head1 TEST AND QUALITY =for HTML Coverage Status =for markdown [![Coverage Status](https://coveralls.io/repos/github/jonasbn/perl-test-timer/badge.svg?branch=master)](https://coveralls.io/github/jonasbn/perl-test-timer?branch=master) Coverage report for the release described in this documentation (see L). ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ blib/lib/Test/Timer.pm 100.0 100.0 100.0 100.0 100.0 99.9 100.0 ...Timer/TimeoutException.pm 100.0 n/a n/a 100.0 100.0 0.0 100.0 Total 100.0 100.0 100.0 100.0 100.0 100.0 100.0 ---------------------------- ------ ------ ------ ------ ------ ------ ------ The L test runs with severity 5 (gentle) for now, please refer to F and F. Set TEST_POD to enable L test in F and L test in F. Set TEST_CRITIC to enable L test in F =head2 CONTINUOUS INTEGRATION This distribution uses Travis for continuous integration testing, the Travis reports are public available. =for HTML =for markdown [![Build Status](https://travis-ci.org/jonasbn/perl-test-timer.svg?branch=master)](https://travis-ci.org/jonasbn/perl-test-timer) =head1 SEE ALSO =over =item * L =back =head1 ISSUE REPORTING Please report any bugs or feature requests using GitHub =over =item * L =back =head1 SUPPORT You can find (this) documentation for this module with the C command. perldoc Test::Timer You can also look for information at: =over =item * L =item * L =item * L =item * L =back =head1 DEVELOPMENT =over =item * L, please see L. =back =head1 AUTHOR =over =item * Jonas Brømsø (jonasbn) C<< >> =back =head1 ACKNOWLEDGEMENTS =over =item * Mohammad S Anwar (MANWAR), POD corrections PRs #23 =item * Erik Johansen (UNIEJO), suggestion for clearing alarm =item * Gregor Herrmann (GREGOA) from the Debian Perl Group, PR #16 fixes to spelling mistakes =item * Nigel Horne (NHORNE), issue #15 suggestion for better assertion in L =item * Nigel Horne (NHORNE), issue #10/#12 suggestion for improvement to diagnostics =item * p-alik, PR #4 eliminating warnings during test =item * Kent Fredric (KENTNL), PR #7 addressing file permissions =item * Nick Morrott, PR #5 corrections to POD =item * Bartosz Jakubski, reporting issue #3 =item * Gabor Szabo (SZABGAB), suggestion for specification of interval thresholds even though this was obsoleted by the later introduced time_between =item * Paul Leonerd Evans (PEVANS), suggestions for time_atleast and time_atmost and the handling of $SIG{ALRM}. Also bug report for addressing issue with Debian packaging resulting in release 0.10 =item * brian d foy (BDFOY), for patch to L<_runtest|/_runtest> =back =head1 LICENSE AND COPYRIGHT Test::Timer and related modules are (C) by Jonas Brømsø (jonasbn) 2007-2021 Test::Timer and related modules are released under the Artistic License 2.0 Used distributions are under copyright of there respective authors and designated licenses Image used on L is under copyright by L =cut author-critic.t100644000765000024 40314071630265 16620 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } use strict; use warnings; use Test::Perl::Critic (-profile => ".perlcriticrc") x!! -e ".perlcriticrc"; all_critic_ok(); Timer000755000765000024 014071630265 15540 5ustar00jonasbnstaff000000000000Test-Timer-2.12/t/TestTest.pm100644000765000024 41214071630265 17132 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t/Test/Timer## no critic (RequireVersionVar ProhibitUnusedPrivateSubroutines) package Test::Timer::Test; use strict; use warnings; use base qw(Exporter); our @EXPORT_OK = qw(_sleep); sub _sleep { my $interval = shift; sleep $interval; return $interval; } 1; release-kwalitee.t100644000765000024 50414071630265 17270 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } # this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.12 use strict; use warnings; use Test::More 0.88; use Test::Kwalitee 1.21 'kwalitee_ok'; kwalitee_ok(); done_testing; author-pod-syntax.t100644000765000024 45414071630265 17457 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); release-meta-json.t100644000765000024 27314071630265 17363 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t#!perl BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } use Test::CPAN::Meta::JSON; meta_json_ok(); docs000755000765000024 014071630265 14226 5ustar00jonasbnstaff000000000000Test-Timer-2.12test-timer.graffle100644000765000024 1214614071630265 20037 0ustar00jonasbnstaff000000000000Test-Timer-2.12/docsis8?w~'o'i'Swǻd;v ` 1E($ZMwOqwE2tx"Ǒ}~@񭱡հgo/{o濶Oz7g;%.;G[J{76u0f~XܲR nt]8S齋Xږ_xM{,Rc'_"߄ ppDܞnʻ{V~YP_ΩO6?=!(`a=]ΑP܃0RibƟTY '?xcoEW+f?͵/`ΰ=ӭ|='c4?C|>=A#WEZ޻ET>[Mȯ&\R_u|5Zgj eQ'b._Ã{rv37y{xyge#w>OOhǏ\i8jWqA/šGǿ͊hpOϟ2J^Lw| X#uQ#&_'20+M2D b K'榡UNjwi6&@rQ ޥ.kd;,.L^9Sp+h0lh**Bŷ6-ݶ(eQ['Gg+1y"Gk$21#Ηyd%tfiM6r%6fG-zo>0/!{LmmY^OXI"PEj!DlTXՍ;XƐ )bUSa&҆ɣ&װ~dgcìw6) ?/oZX߽=_! k_ 'K}nǝfv{᛾;5%QÏc?;;\n{uaKf5zieE&V+2V#~,wR7"z'>ra u{oDXvgߛڮd'z0Kѩ71@gѩѱ@gћѩ:SkTUStuDk:#: Tʿ&h::c):눎k:kP5A &txYKxtC=-ys:nGӭW {">3SbXnӍYz5OH&7kUꤹh5IXqqqqqq+rI INU ߎ{ɯZ]3e׺i2VQnhH!9@ $"g56nH7`Om8^ҥeo%  XBFU d}2klS>!< {wйKټl6}p G1J0VhbB2 CP_j+t [,NFK( _|LcCLEo-8JLӹz8P{+< ;6@ўjсyD'CA-:/{.EthŀZSU5Av]aWv]aW gtttttttt:g;,:٬ON@AAAAAAsU{ : : : : : : :ѱZ6@AAAAAAsaW ,1߷]-< # H首 $ VN,ZV3Pj9!jY{B2"=Ԓ$en%4 En ,`AEa,Os&c%Ky円L"pVctQv%]Z\\V/KYz8`0̀i'dTa@'F<-6僻(CqW莑k p[l&fH*$I0d2K_2ъ˓*ɛq= (WuMT+Wh,/5EƟ1hF4yWb#}HaM#j?+3D'heQ{xI̢1]b㠸KWO G +Q>+mÒ>N;ķ1Il53pE]'2Y =ǍP&qÈ#{J*2ُje2^,1)'ɩOR9saީCrhӔRyfz~?0f=9>fSN "ȷ VM"+Xi&u={=:H'fՊG|n HB>44lJQ#UKhr,YA+g8%W?t/.^xNv:v9(|author-pod-coverage.t100644000765000024 53614071630265 17725 0ustar00jonasbnstaff000000000000Test-Timer-2.12/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. use Test::Pod::Coverage 1.08; use Pod::Coverage::TrustPod; all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); perl-test-timer.code-workspace100644000765000024 142214071630265 21322 0ustar00jonasbnstaff000000000000Test-Timer-2.12{ "folders": [ { "path": "." } ], "settings": { "perl-toolbox.lint.perlcriticProfile": "$workspaceRoot/.perlcriticrc", "perl-toolbox.lint.useProfile": true, "perl-toolbox.syntax.includePaths": [ "$workspaceRoot/lib", "$workspaceRoot/t", "/Users/jonasbn/.perlbrew/libs/perl-5.32.0@test-timer/lib/perl5/darwin-2level", "/Users/jonasbn/.perlbrew/libs/perl-5.32.0@test-timer/lib/perl5" ], "perl-toolbox.syntax.exec": "/Users/jonasbn/perl5/perlbrew/perls/perl-5.32.0/bin/perl", "perl-toolbox.lint.path": "/Users/jonasbn/perl5/perlbrew/perls/perl-5.32.0/bin/perlcritic", "perl-toolbox.syntax.enabled": true, "perl-toolbox.syntax.path": "/Users/jonasbn/perl5/perlbrew/perls/perl-5.32.0/bin/perl", "perl.perltidyArgs": [ "--pro=t/perltidyrc" ] } } Timer000755000765000024 014071630265 16043 5ustar00jonasbnstaff000000000000Test-Timer-2.12/lib/TestTimeoutException.pm100644000765000024 413414071630265 22050 0ustar00jonasbnstaff000000000000Test-Timer-2.12/lib/Test/Timerpackage Test::Timer::TimeoutException; use strict; use warnings; use vars qw($VERSION); use Data::Dumper; use base 'Error'; use overload ( q{""} => 'stringify' ); $VERSION = '2.12'; sub new { my ( $self, $time ) = @_; local $Error::Depth = $Error::Depth + 1; $self = $self->SUPER::new( -text => $time, -value => $time ); return $self; } 1; __END__ =pod =begin stopwords Veri Ivanova jonasbn =end stopwords =head1 NAME Test::Timer::TimeoutException - exception class for Test::Timer =head1 VERSION This documentation describes 2.12 of Test::Timer::TimeoutException =head1 SYNOPSIS use Test::Timer::TimeoutException; throw Test::Timer::TimeoutException($timeout); =head1 DESCRIPTION This is an exception class for Test::Timer. It is used in conjunction with the alarm signal and is thrown if the alarm is set of. =head1 SUBROUTINES/METHODS =head2 new This is the constructor, this is called using throw, please refer to the documentation for L, see also the SYNOPSIS. =head1 DIAGNOSTICS This is an exception class, it holds not special diagnostics apart from what is described above in the general description. =head1 CONFIGURATION AND ENVIRONMENT This module requires no special configuration or environment. =head1 DEPENDENCIES =over =item * L =back =head1 INCOMPATIBILITIES This class holds no known incompatibilities. =head1 BUGS AND LIMITATIONS This class holds no known bugs or limitations. =head1 TEST AND QUALITY This class is tested as part of L =head1 SEE ALSO =over =item * L =back =head1 AUTHOR =over =item * Jonas B. Nielsen (jonasbn) C<< >> =back =head1 LICENSE AND COPYRIGHT Test::Timer and related modules are (C) by Jonas B. Nielsen, (jonasbn) 2007-2017 Test::Timer and related modules are released under the Artistic License 2.0 Used distributions are under copyright of there respective authors and designated licenses Image used on L is under copyright by L =cut