PATH=/usr/bin:/bin:/Users/fly2400/cpanfly-5.24/var/megalib/bin Start 2016-06-12T17:18:18 ActivePerl-2400 CPAN-2.10 Reading '/Users/fly2400/cpanfly-5.24/var/cpan/Metadata' Database was generated on Sun, 12 Jun 2016 05:53:44 GMT Checksum for /Users/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/P/PE/PERLANCAR/File-Write-Rotate-0.30.tar.gz ok File-Write-Rotate-0.30/ File-Write-Rotate-0.30/META.json File-Write-Rotate-0.30/LICENSE File-Write-Rotate-0.30/Changes File-Write-Rotate-0.30/META.yml File-Write-Rotate-0.30/Makefile.PL File-Write-Rotate-0.30/t/ File-Write-Rotate-0.30/t/author-pod-coverage.t File-Write-Rotate-0.30/t/write.t File-Write-Rotate-0.30/t/lock.t File-Write-Rotate-0.30/t/rotate.t File-Write-Rotate-0.30/t/todo.t File-Write-Rotate-0.30/t/author-pod-syntax.t File-Write-Rotate-0.30/t/00-compile.t File-Write-Rotate-0.30/README File-Write-Rotate-0.30/dist.ini File-Write-Rotate-0.30/lib/ File-Write-Rotate-0.30/lib/File/ File-Write-Rotate-0.30/lib/File/Write/ File-Write-Rotate-0.30/lib/File/Write/Rotate.pm File-Write-Rotate-0.30/MANIFEST File-Write-Rotate-0.30/weaver.ini Configuring P/PE/PERLANCAR/File-Write-Rotate-0.30.tar.gz with Makefile.PL >>> /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL Warning: prerequisite Proc::PID::File 0 not found. Warning: prerequisite Taint::Runtime 0 not found. Warning: prerequisite tainting 0.01 not found. Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for File::Write::Rotate Writing MYMETA.yml and MYMETA.json PERLANCAR/File-Write-Rotate-0.30.tar.gz /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL -- OK Running make for P/PE/PERLANCAR/File-Write-Rotate-0.30.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/File-Write-Rotate-0.30.tar.gz ---- Proc::PID::File [requires] Taint::Runtime [build_requires] tainting [build_requires] Running test for module 'Proc::PID::File' Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/E/EC/ECALDER/Proc-PID-File-1.27.tar.gz Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/E/EC/ECALDER/CHECKSUMS Checksum for /Users/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/E/EC/ECALDER/Proc-PID-File-1.27.tar.gz ok Proc-PID-File-1.27/ Proc-PID-File-1.27/README Proc-PID-File-1.27/File.pm Proc-PID-File-1.27/META.yml Proc-PID-File-1.27/Changes Proc-PID-File-1.27/test.pl Proc-PID-File-1.27/MANIFEST Proc-PID-File-1.27/Makefile.PL Proc-PID-File-1.27/LICENSE Configuring E/EC/ECALDER/Proc-PID-File-1.27.tar.gz with Makefile.PL >>> /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Proc::PID::File Writing MYMETA.yml and MYMETA.json ECALDER/Proc-PID-File-1.27.tar.gz /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL -- OK Running make for E/EC/ECALDER/Proc-PID-File-1.27.tar.gz >>> make cp File.pm blib/lib/Proc/PID/File.pm Manifying 1 pod document ECALDER/Proc-PID-File-1.27.tar.gz make -- OK Running make test >>> make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 "/Users/fly2400/ap2400-300558/bin/perl-dynamic" "-Iblib/lib" "-Iblib/arch" test.pl 1..12 Use of uninitialized value $fh in pattern match (m//) at blib/lib/Proc/PID/File.pm line 286. ok 1 - simple: thread safe ok 2 - simple: running ok 3 - SKIPPED - simple: verified (real) ok 4 - SKIPPED - simple: verified (false) Use of uninitialized value $fh in pattern match (m//) at blib/lib/Proc/PID/File.pm line 286. Use of uninitialized value $fh in pattern match (m//) at blib/lib/Proc/PID/File.pm line 286. ok 5 - simple: single instance ok 6 - simple: destroy ok 7 - oo: object initialised ok 8 - oo: file touched ok 9 - oo: alive (with current process) ok 10 - oo: alive (with daemon) ok 11 - SKIPPED - oo: alive (verified) ok 12 - oo: released waiting for daemon death..... done Use of uninitialized value $fh in pattern match (m//) at blib/lib/Proc/PID/File.pm line 286. Use of uninitialized value $fh in pattern match (m//) at blib/lib/Proc/PID/File.pm line 286 during global destruction. ECALDER/Proc-PID-File-1.27.tar.gz make test TEST_VERBOSE=1 -- OK Erick Calder <ecalder@cpan.org> A module to manage PID files >>> (cd /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B && tar cvf - Proc-PID-File-1.27.ppd blib) | gzip -c >/Users/fly2400/cpanfly-5.24/var/REPO/E/EC/ECALDER/Proc-PID-File-1.27.tar.gz Proc-PID-File-1.27.ppd blib/ blib/lib/ blib/lib/Proc/ blib/lib/Proc/PID/ blib/lib/Proc/PID/File.pm blib/man3/ blib/man3/Proc::PID::File.3 Running test for module 'Taint::Runtime' Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'get' Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/R/RH/RHANDOM/Taint-Runtime-0.03.tar.gz Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/R/RH/RHANDOM/CHECKSUMS Checksum for /Users/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/R/RH/RHANDOM/Taint-Runtime-0.03.tar.gz ok Taint-Runtime-0.03/ Taint-Runtime-0.03/t/ Taint-Runtime-0.03/t/01_non_xs.t Taint-Runtime-0.03/t/Taint-Runtime.t Taint-Runtime-0.03/t/03_var.t Taint-Runtime-0.03/t/02_xs.t Taint-Runtime-0.03/t/04_enable.t Taint-Runtime-0.03/t/00_Base.t Taint-Runtime-0.03/lib/ Taint-Runtime-0.03/lib/Taint/ Taint-Runtime-0.03/lib/Taint/Runtime.pm Taint-Runtime-0.03/Changes Taint-Runtime-0.03/MANIFEST Taint-Runtime-0.03/MANIFEST.SKIP Taint-Runtime-0.03/ppport.h Taint-Runtime-0.03/META.yml Taint-Runtime-0.03/Runtime.xs Taint-Runtime-0.03/is_taint_bench.pl Taint-Runtime-0.03/README Taint-Runtime-0.03/Makefile.PL Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'prepare' Configuring R/RH/RHANDOM/Taint-Runtime-0.03.tar.gz with Makefile.PL >>> /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Taint::Runtime Writing MYMETA.yml and MYMETA.json RHANDOM/Taint-Runtime-0.03.tar.gz /Users/fly2400/ap2400-300558/bin/perl-dynamic Makefile.PL -- OK Running make for R/RH/RHANDOM/Taint-Runtime-0.03.tar.gz Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'make' >>> make cp is_taint_bench.pl blib/lib/Taint/is_taint_bench.pl cp lib/Taint/Runtime.pm blib/lib/Taint/Runtime.pm Running Mkbootstrap for Runtime () chmod 644 "Runtime.bs" "/Users/fly2400/ap2400-300558/bin/perl-dynamic" -MExtUtils::Command::MM -e 'cp_nonempty' -- Runtime.bs blib/arch/auto/Taint/Runtime/Runtime.bs 644 "/Users/fly2400/ap2400-300558/bin/perl-dynamic" "/Users/fly2400/cpanfly-5.24/var/megalib/ExtUtils/xsubpp" -typemap '/Users/fly2400/ap2400-300558/lib/ExtUtils/typemap' Runtime.xs > Runtime.xsc Please specify prototyping behavior for Runtime.xs (see perlxs manual) mv Runtime.xsc Runtime.c gcc -c -fno-common -DPERL_DARWIN -no-cpp-precomp -mmacosx-version-min=10.9 -arch x86_64 -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-strict-aliasing -pipe -fstack-protector -DPERL_USE_SAFE_PUTENV -O3 -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" "-I/Users/fly2400/ap2400-300558/lib/CORE" Runtime.c In file included from Runtime.xs:4: ./ppport.h:231:11: warning: 'PERL_UNUSED_DECL' macro redefined # define PERL_UNUSED_DECL ^ /Users/fly2400/ap2400-300558/lib/CORE/perl.h:313:13: note: previous definition is here # define PERL_UNUSED_DECL __attribute__unused__ ^ 1 warning generated. rm -f blib/arch/auto/Taint/Runtime/Runtime.bundle gcc -mmacosx-version-min=10.9 -bundle -undefined dynamic_lookup -Wl,-search_paths_first -arch x86_64 -fstack-protector -o blib/arch/auto/Taint/Runtime/Runtime.bundle Runtime.o \ \ chmod 755 blib/arch/auto/Taint/Runtime/Runtime.bundle Manifying 1 pod document RHANDOM/Taint-Runtime-0.03.tar.gz make -- OK Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'test' Running make test >>> make test TEST_VERBOSE=1 "/Users/fly2400/ap2400-300558/bin/perl-dynamic" -MExtUtils::Command::MM -e 'cp_nonempty' -- Runtime.bs blib/arch/auto/Taint/Runtime/Runtime.bs 644 PERL_DL_NONLAZY=1 "/Users/fly2400/ap2400-300558/bin/perl-dynamic" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/00_Base.t ........ 1..1 ok 1 - use Taint::Runtime; ok t/01_non_xs.t ...... 1..9 ok 1 - use Taint::Runtime; ok 2 - Taint is On ok 3 - No false positive on is_tainted ok 4 - Made a tainted copy ok 5 - Tainted it directly ok 6 - Made a clean copy ok 7 - And i got all of the data back ok 8 - Data is still tainted ok 9 - Clean it directly ok t/02_xs.t .......... 1..8 ok 1 - use Taint::Runtime; ok 2 - Taint is Not on yet ok 3 - Taint is On ok 4 - No false positive on is_tainted ok 5 - Made a tainted copy ok 6 - Tainted it directly ok 7 - Made a clean copy ok 8 - Clean it directly ok t/03_var.t ......... 1..7 ok 1 - use Taint::Runtime; ok 2 - Not on ok 3 - Taint is Not on yet ok 4 - Taint is On ok 5 - Taint disabled ok 6 - Taint is On ok 7 - Taint disabled ok t/04_enable.t ...... 1..4 ok 1 - use Taint::Runtime; ok 2 - Not on ok 3 - Taint is On ok 4 - Not on ok t/Taint-Runtime.t .. 1..1 ok 1 - use Taint::Runtime; ok All tests successful. Files=6, Tests=30, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.32 cusr 0.06 csys = 0.42 CPU) Result: PASS RHANDOM/Taint-Runtime-0.03.tar.gz make test TEST_VERBOSE=1 -- OK Picked up abstract from Makefile Paul Seamons <paul@seamons.com> Runtime enable taint checking >>> (cd /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR && tar cvf - Taint-Runtime-0.03.ppd blib) | gzip -c >/Users/fly2400/cpanfly-5.24/var/REPO/R/RH/RHANDOM/Taint-Runtime-0.03.tar.gz Taint-Runtime-0.03.ppd blib/ blib/arch/ blib/arch/auto/ blib/arch/auto/Taint/ blib/arch/auto/Taint/Runtime/ blib/arch/auto/Taint/Runtime/Runtime.bundle blib/lib/ blib/lib/Taint/ blib/lib/Taint/is_taint_bench.pl blib/lib/Taint/Runtime.pm blib/man3/ blib/man3/Taint::Runtime.3 Running test for module 'tainting' Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'get' Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/S/SH/SHARYANTO/tainting-0.01.tar.gz Checksum for /Users/fly2400/cpanfly-5.24/var/cpan/sources/authors/id/S/SH/SHARYANTO/tainting-0.01.tar.gz ok tainting-0.01/ tainting-0.01/README tainting-0.01/Build.PL tainting-0.01/lib/ tainting-0.01/lib/tainting.pm tainting-0.01/MANIFEST.SKIP tainting-0.01/Changes tainting-0.01/dist.ini tainting-0.01/LICENSE tainting-0.01/t/ tainting-0.01/t/00-compile.t tainting-0.01/t/01-basics.t tainting-0.01/t/release-pod-coverage.t tainting-0.01/t/release-pod-syntax.t tainting-0.01/t/release-rinci.t tainting-0.01/MANIFEST tainting-0.01/META.json tainting-0.01/META.yml Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'prepare' Configuring S/SH/SHARYANTO/tainting-0.01.tar.gz with Build.PL >>> /Users/fly2400/ap2400-300558/bin/perl-dynamic Build.PL Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'tainting' version '0.01' SHARYANTO/tainting-0.01.tar.gz /Users/fly2400/ap2400-300558/bin/perl-dynamic Build.PL -- OK Running Build for S/SH/SHARYANTO/tainting-0.01.tar.gz Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'make' >>> ./Build Building tainting SHARYANTO/tainting-0.01.tar.gz ./Build -- OK Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'test' Running Build test >>> ./Build test verbose=1 t/00-compile.t ............ 1..1 ok 1 - tainting loaded ok ok t/01-basics.t ............. ok 1 - tainting is turned on lexically ok 2 - tainting is turned off lexically 1..2 ok t/release-pod-coverage.t .. skipped: these tests are for release candidate testing t/release-pod-syntax.t .... skipped: these tests are for release candidate testing t/release-rinci.t ......... skipped: these tests are for release candidate testing All tests successful. Files=5, Tests=3, 1 wallclock secs ( 0.03 usr 0.02 sys + 0.30 cusr 0.06 csys = 0.41 CPU) Result: PASS SHARYANTO/tainting-0.01.tar.gz ./Build test verbose=1 -- OK Steven Haryanto <stevenharyanto@gmail.com> Enable taint mode lexically >>> (cd /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/tainting-0.01-ej1gsP && tar cvf - tainting-0.01.ppd blib) | gzip -c >/Users/fly2400/cpanfly-5.24/var/REPO/S/SH/SHARYANTO/tainting-0.01.tar.gz tainting-0.01.ppd blib/ blib/lib/ blib/lib/tainting.pm PERLANCAR/File-Write-Rotate-0.30.tar.gz Has already been unwrapped into directory /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/File-Write-Rotate-0.30-920e0i PERLANCAR/File-Write-Rotate-0.30.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/File-Write-Rotate-0.30.tar.gz Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/tainting-0.01-ej1gsP/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/tainting-0.01-ej1gsP/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'make' >>> make cp lib/File/Write/Rotate.pm blib/lib/File/Write/Rotate.pm Manifying 1 pod document PERLANCAR/File-Write-Rotate-0.30.tar.gz make -- OK Prepending /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/tainting-0.01-ej1gsP/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/tainting-0.01-ej1gsP/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Taint-Runtime-0.03-YBrSYR/blib/lib /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/arch /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/Proc-PID-File-1.27-RK6E8B/blib/lib to PERL5LIB for 'test' Running make test >>> make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 "/Users/fly2400/ap2400-300558/bin/perl-dynamic" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/00-compile.t ........... 1..1 ok 1 - File/Write/Rotate.pm loaded ok ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author t/lock.t ................. # Subtest: locking: none ok 1 - lock file doesn't exist: created ok 2 - lock file doesn't exist: hook_before_rotate ok 3 - lock file doesn't exist: hook_after_rotate ok 4 - lock file doesn't exist: hook_after_create ok 5 - lock file doesn't exist: hook_before_write ok 6 - lock file doesn't exist: after 1st write ok 7 - lock file doesn't exist: hook_before_rotate ok 8 - lock file doesn't exist: hook_after_rotate ok 9 - lock file doesn't exist: hook_after_create ok 10 - lock file doesn't exist: hook_before_write ok 11 - lock file doesn't exist: after 2nd write ok 12 - Expected 4 hooks to run ok 13 - lock file doesn't exist: out of scope 1..13 ok 1 - locking: none # Subtest: locking: write ok 1 - lock file doesn't exist: created ok 2 - lock file exists: hook_before_rotate ok 3 - lock file exists: hook_after_rotate ok 4 - lock file exists: hook_after_create ok 5 - lock file exists: hook_before_write ok 6 - lock file doesn't exist: after 1st write ok 7 - lock file exists: hook_before_rotate ok 8 - lock file exists: hook_after_rotate ok 9 - lock file exists: hook_after_create ok 10 - lock file exists: hook_before_write ok 11 - lock file doesn't exist: after 2nd write ok 12 - Expected 4 hooks to run ok 13 - lock file doesn't exist: out of scope 1..13 ok 2 - locking: write # Subtest: locking: exclusive ok 1 - lock file exists: created ok 2 - lock file exists: hook_before_rotate ok 3 - lock file exists: hook_after_rotate ok 4 - lock file exists: hook_after_create ok 5 - lock file exists: hook_before_write ok 6 - lock file exists: after 1st write ok 7 - lock file exists: hook_before_rotate ok 8 - lock file exists: hook_after_rotate ok 9 - lock file exists: hook_after_create ok 10 - lock file exists: hook_before_write ok 11 - lock file exists: after 2nd write ok 12 - Expected 4 hooks to run ok 13 - lock file doesn't exist: out of scope 1..13 ok 3 - locking: exclusive 1..3 ok t/rotate.t ............... # Subtest: basic rotate ok 1 - files_after ok 2 - a -> a.1 ok 3 - a.2 -> a.2.gz ok 4 - a.2.gz -> a.3.gz ok 5 - b.1 untouched 1..5 ok 1 - basic rotate # Subtest: period, suffix ok 1 - files_after 1..1 ok 2 - period, suffix # Subtest: period, suffix (complex, no delete) ok 1 - files_after 1..1 ok 3 - period, suffix (complex, no delete) # Subtest: period, suffix (complex, rotate and delete) ok 1 - files_after 1..1 ok 4 - period, suffix (complex, rotate and delete) # Subtest: period, suffix (complex, delete_only) ok 1 - files_after 1..1 ok 5 - period, suffix (complex, delete_only) # Subtest: hook_before_rotate, hook_after_rotate ok 1 ok 2 - renamed argument ok 3 - deleted argument ok 4 - files_after ok 5 - hook_before_rotate executed ok 6 - hook_after_rotate executed 1..6 ok 6 - hook_before_rotate, hook_after_rotate # Subtest: under tainting ok 1 - files_after 1..1 ok 7 - under tainting 1..7 ok t/todo.t ................. 1..1 ok 1 ok t/write.t ................ # Subtest: Filehandle cached: basic ok 1 - should be unlocked ok 2 ok 3 - should be unlocked ok 4 1..4 ok 1 - Filehandle cached: basic # Subtest: Filehandle not cached: basic ok 1 - should be unlocked ok 2 ok 3 - should be unlocked ok 4 1..4 ok 2 - Filehandle not cached: basic # Subtest: Filehandle cached: binmode ':utf8' ok 1 - should be unlocked ok 2 - no 'Wide character in ...' warning ok 3 - file contents 1..3 ok 3 - Filehandle cached: binmode ':utf8' # Subtest: Filehandle not cached: binmode ':utf8' ok 1 - should be unlocked ok 2 - no 'Wide character in ...' warning ok 3 - file contents 1..3 ok 4 - Filehandle not cached: binmode ':utf8' # Subtest: Filehandle cached: rotate by size ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 1..6 ok 5 - Filehandle cached: rotate by size # Subtest: Filehandle not cached: rotate by size ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 1..6 ok 6 - Filehandle not cached: rotate by size # Subtest: Filehandle cached: rotate by size = 20Kb ok 1 - should be unlocked ok 2 - should be unlocked ok 3 - should be unlocked ok 4 - should be unlocked ok 5 - should be unlocked ok 6 - should be unlocked ok 7 - should be unlocked ok 8 - should be unlocked ok 9 - should be unlocked ok 10 - should be unlocked ok 11 - should be unlocked ok 12 - should be unlocked ok 13 - should be unlocked ok 14 - should be unlocked ok 15 - should be unlocked ok 16 - should be unlocked ok 17 - should be unlocked ok 18 - should be unlocked ok 19 - should be unlocked ok 20 - should be unlocked ok 21 - should be unlocked ok 22 - should be unlocked ok 23 - should be unlocked ok 24 - should be unlocked ok 25 - should be unlocked ok 26 - should be unlocked ok 27 - should be unlocked ok 28 - should be unlocked ok 29 - should be unlocked ok 30 - should be unlocked ok 31 - should be unlocked ok 32 - should be unlocked ok 33 - should be unlocked ok 34 - should be unlocked ok 35 - should be unlocked ok 36 - should be unlocked ok 37 - should be unlocked ok 38 - should be unlocked ok 39 - should be unlocked ok 40 - should be unlocked ok 41 - should be unlocked ok 42 - should be unlocked ok 43 - should be unlocked ok 44 - should be unlocked ok 45 - should be unlocked ok 46 - should be unlocked ok 47 - should be unlocked ok 48 - should be unlocked ok 49 - should be unlocked ok 50 - should be unlocked ok 51 - should be unlocked ok 52 - should be unlocked ok 53 - should be unlocked ok 54 - should be unlocked ok 55 - should be unlocked ok 56 - should be unlocked ok 57 - should be unlocked ok 58 - should be unlocked ok 59 - should be unlocked ok 60 - should be unlocked ok 61 - should be unlocked ok 62 - should be unlocked ok 63 - should be unlocked ok 64 - should be unlocked ok 65 - should be unlocked ok 66 - should be unlocked ok 67 - should be unlocked ok 68 - should be unlocked ok 69 - should be unlocked ok 70 - should be unlocked ok 71 - should be unlocked ok 72 - should be unlocked ok 73 - should be unlocked ok 74 - should be unlocked ok 75 - should be unlocked ok 76 - should be unlocked ok 77 - should be unlocked ok 78 - should be unlocked ok 79 - should be unlocked ok 80 - should be unlocked ok 81 - should be unlocked ok 82 - should be unlocked ok 83 - should be unlocked ok 84 - should be unlocked ok 85 - should be unlocked ok 86 - should be unlocked ok 87 - should be unlocked ok 88 - should be unlocked ok 89 - should be unlocked ok 90 - should be unlocked ok 91 - should be unlocked ok 92 - should be unlocked ok 93 - should be unlocked ok 94 - should be unlocked ok 95 - should be unlocked ok 96 - should be unlocked ok 97 - should be unlocked ok 98 - should be unlocked ok 99 - should be unlocked ok 100 - should be unlocked ok 101 - should be unlocked ok 102 - should be unlocked ok 103 - should be unlocked ok 104 - should be unlocked ok 105 - should be unlocked ok 106 - should be unlocked ok 107 - should be unlocked ok 108 - should be unlocked ok 109 - should be unlocked ok 110 - should be unlocked ok 111 - should be unlocked ok 112 - should be unlocked ok 113 - should be unlocked ok 114 - should be unlocked ok 115 - should be unlocked ok 116 - should be unlocked ok 117 - should be unlocked ok 118 - should be unlocked ok 119 - should be unlocked ok 120 - should be unlocked ok 121 - should be unlocked ok 122 - should be unlocked ok 123 - should be unlocked ok 124 - should be unlocked ok 125 - should be unlocked ok 126 - should be unlocked ok 127 - should be unlocked ok 128 - should be unlocked ok 129 - should be unlocked ok 130 - should be unlocked ok 131 - should be unlocked ok 132 - should be unlocked ok 133 - should be unlocked ok 134 - should be unlocked ok 135 - should be unlocked ok 136 - should be unlocked ok 137 - should be unlocked ok 138 - should be unlocked ok 139 - should be unlocked ok 140 - should be unlocked ok 141 - should be unlocked ok 142 - should be unlocked ok 143 - should be unlocked ok 144 - should be unlocked ok 145 - should be unlocked ok 146 - should be unlocked ok 147 - should be unlocked ok 148 - should be unlocked ok 149 - should be unlocked ok 150 - should be unlocked ok 151 - should be unlocked ok 152 - should be unlocked ok 153 - should be unlocked ok 154 - should be unlocked ok 155 - should be unlocked ok 156 - should be unlocked ok 157 - should be unlocked ok 158 - should be unlocked ok 159 - should be unlocked ok 160 - should be unlocked ok 161 - should be unlocked ok 162 - should be unlocked ok 163 - should be unlocked ok 164 - should be unlocked ok 165 - should be unlocked ok 166 - should be unlocked ok 167 - should be unlocked ok 168 - should be unlocked ok 169 - should be unlocked ok 170 - should be unlocked ok 171 - should be unlocked ok 172 - should be unlocked ok 173 - should be unlocked ok 174 - should be unlocked ok 175 - should be unlocked ok 176 - should be unlocked ok 177 - should be unlocked ok 178 - should be unlocked ok 179 - should be unlocked ok 180 - should be unlocked ok 181 - should be unlocked ok 182 - should be unlocked ok 183 - should be unlocked ok 184 - should be unlocked ok 185 - should be unlocked ok 186 - should be unlocked ok 187 - should be unlocked ok 188 - should be unlocked ok 189 - should be unlocked ok 190 - should be unlocked ok 191 - should be unlocked ok 192 - should be unlocked ok 193 - should be unlocked ok 194 - should be unlocked ok 195 - should be unlocked ok 196 - should be unlocked ok 197 - should be unlocked ok 198 - should be unlocked ok 199 - should be unlocked ok 200 - should be unlocked ok 201 - first file exists and has 20Kb so far ok 202 - rotate files does not exists yet # printing one more message to force rotation bondaries ok 203 - should be unlocked ok 204 - new file exists and has 100 bytes ok 205 - rotate file exists and has 20Kb ok 206 - compress method returns true ok 207 - rotated file a.1 was compressed to a.1.gz ok 208 - original a.1 is deleted ok 209 - compressed file size is smaller than before compression 1..209 ok 7 - Filehandle cached: rotate by size = 20Kb # Subtest: Filehandle not cached: rotate by size = 20Kb ok 1 - should be unlocked ok 2 - should be unlocked ok 3 - should be unlocked ok 4 - should be unlocked ok 5 - should be unlocked ok 6 - should be unlocked ok 7 - should be unlocked ok 8 - should be unlocked ok 9 - should be unlocked ok 10 - should be unlocked ok 11 - should be unlocked ok 12 - should be unlocked ok 13 - should be unlocked ok 14 - should be unlocked ok 15 - should be unlocked ok 16 - should be unlocked ok 17 - should be unlocked ok 18 - should be unlocked ok 19 - should be unlocked ok 20 - should be unlocked ok 21 - should be unlocked ok 22 - should be unlocked ok 23 - should be unlocked ok 24 - should be unlocked ok 25 - should be unlocked ok 26 - should be unlocked ok 27 - should be unlocked ok 28 - should be unlocked ok 29 - should be unlocked ok 30 - should be unlocked ok 31 - should be unlocked ok 32 - should be unlocked ok 33 - should be unlocked ok 34 - should be unlocked ok 35 - should be unlocked ok 36 - should be unlocked ok 37 - should be unlocked ok 38 - should be unlocked ok 39 - should be unlocked ok 40 - should be unlocked ok 41 - should be unlocked ok 42 - should be unlocked ok 43 - should be unlocked ok 44 - should be unlocked ok 45 - should be unlocked ok 46 - should be unlocked ok 47 - should be unlocked ok 48 - should be unlocked ok 49 - should be unlocked ok 50 - should be unlocked ok 51 - should be unlocked ok 52 - should be unlocked ok 53 - should be unlocked ok 54 - should be unlocked ok 55 - should be unlocked ok 56 - should be unlocked ok 57 - should be unlocked ok 58 - should be unlocked ok 59 - should be unlocked ok 60 - should be unlocked ok 61 - should be unlocked ok 62 - should be unlocked ok 63 - should be unlocked ok 64 - should be unlocked ok 65 - should be unlocked ok 66 - should be unlocked ok 67 - should be unlocked ok 68 - should be unlocked ok 69 - should be unlocked ok 70 - should be unlocked ok 71 - should be unlocked ok 72 - should be unlocked ok 73 - should be unlocked ok 74 - should be unlocked ok 75 - should be unlocked ok 76 - should be unlocked ok 77 - should be unlocked ok 78 - should be unlocked ok 79 - should be unlocked ok 80 - should be unlocked ok 81 - should be unlocked ok 82 - should be unlocked ok 83 - should be unlocked ok 84 - should be unlocked ok 85 - should be unlocked ok 86 - should be unlocked ok 87 - should be unlocked ok 88 - should be unlocked ok 89 - should be unlocked ok 90 - should be unlocked ok 91 - should be unlocked ok 92 - should be unlocked ok 93 - should be unlocked ok 94 - should be unlocked ok 95 - should be unlocked ok 96 - should be unlocked ok 97 - should be unlocked ok 98 - should be unlocked ok 99 - should be unlocked ok 100 - should be unlocked ok 101 - should be unlocked ok 102 - should be unlocked ok 103 - should be unlocked ok 104 - should be unlocked ok 105 - should be unlocked ok 106 - should be unlocked ok 107 - should be unlocked ok 108 - should be unlocked ok 109 - should be unlocked ok 110 - should be unlocked ok 111 - should be unlocked ok 112 - should be unlocked ok 113 - should be unlocked ok 114 - should be unlocked ok 115 - should be unlocked ok 116 - should be unlocked ok 117 - should be unlocked ok 118 - should be unlocked ok 119 - should be unlocked ok 120 - should be unlocked ok 121 - should be unlocked ok 122 - should be unlocked ok 123 - should be unlocked ok 124 - should be unlocked ok 125 - should be unlocked ok 126 - should be unlocked ok 127 - should be unlocked ok 128 - should be unlocked ok 129 - should be unlocked ok 130 - should be unlocked ok 131 - should be unlocked ok 132 - should be unlocked ok 133 - should be unlocked ok 134 - should be unlocked ok 135 - should be unlocked ok 136 - should be unlocked ok 137 - should be unlocked ok 138 - should be unlocked ok 139 - should be unlocked ok 140 - should be unlocked ok 141 - should be unlocked ok 142 - should be unlocked ok 143 - should be unlocked ok 144 - should be unlocked ok 145 - should be unlocked ok 146 - should be unlocked ok 147 - should be unlocked ok 148 - should be unlocked ok 149 - should be unlocked ok 150 - should be unlocked ok 151 - should be unlocked ok 152 - should be unlocked ok 153 - should be unlocked ok 154 - should be unlocked ok 155 - should be unlocked ok 156 - should be unlocked ok 157 - should be unlocked ok 158 - should be unlocked ok 159 - should be unlocked ok 160 - should be unlocked ok 161 - should be unlocked ok 162 - should be unlocked ok 163 - should be unlocked ok 164 - should be unlocked ok 165 - should be unlocked ok 166 - should be unlocked ok 167 - should be unlocked ok 168 - should be unlocked ok 169 - should be unlocked ok 170 - should be unlocked ok 171 - should be unlocked ok 172 - should be unlocked ok 173 - should be unlocked ok 174 - should be unlocked ok 175 - should be unlocked ok 176 - should be unlocked ok 177 - should be unlocked ok 178 - should be unlocked ok 179 - should be unlocked ok 180 - should be unlocked ok 181 - should be unlocked ok 182 - should be unlocked ok 183 - should be unlocked ok 184 - should be unlocked ok 185 - should be unlocked ok 186 - should be unlocked ok 187 - should be unlocked ok 188 - should be unlocked ok 189 - should be unlocked ok 190 - should be unlocked ok 191 - should be unlocked ok 192 - should be unlocked ok 193 - should be unlocked ok 194 - should be unlocked ok 195 - should be unlocked ok 196 - should be unlocked ok 197 - should be unlocked ok 198 - should be unlocked ok 199 - should be unlocked ok 200 - should be unlocked ok 201 - first file exists and has 20Kb so far ok 202 - rotate files does not exists yet # printing one more message to force rotation bondaries ok 203 - should be unlocked ok 204 - new file exists and has 100 bytes ok 205 - rotate file exists and has 20Kb ok 206 - compress method returns true ok 207 - rotated file a.1 was compressed to a.1.gz ok 208 - original a.1 is deleted ok 209 - compressed file size is smaller than before compression 1..209 ok 8 - Filehandle not cached: rotate by size = 20Kb # Subtest: Filehandle cached: rotate by period, daily ok 1 - period ok 2 - should be unlocked ok 3 - got expected content in the file (1) ok 4 - should be unlocked ok 5 - got expected content in the file (2) ok 6 - should be unlocked ok 7 - got expected content in the file (3) ok 8 - compress method returns true ok 9 - rotated file a.2012-12-21 was compressed to a.2012-12-21.gz ok 10 - original a.2012-12-21 is deleted 1..10 ok 9 - Filehandle cached: rotate by period, daily # Subtest: Filehandle not cached: rotate by period, daily ok 1 - period ok 2 - should be unlocked ok 3 - got expected content in the file (1) ok 4 - should be unlocked ok 5 - got expected content in the file (2) ok 6 - should be unlocked ok 7 - got expected content in the file (3) ok 8 - compress method returns true ok 9 - rotated file a.2012-12-21 was compressed to a.2012-12-21.gz ok 10 - original a.2012-12-21 is deleted 1..10 ok 10 - Filehandle not cached: rotate by period, daily # Subtest: Filehandle cached: rotate by period, monthly ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 - should be unlocked ok 7 ok 8 - compress method returns true ok 9 - rotated file a.2012-12 was compressed to a.2012-12.gz ok 10 - original a.2012-12 is deleted 1..10 ok 11 - Filehandle cached: rotate by period, monthly # Subtest: Filehandle not cached: rotate by period, monthly ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 - should be unlocked ok 7 ok 8 - compress method returns true ok 9 - rotated file a.2012-12 was compressed to a.2012-12.gz ok 10 - original a.2012-12 is deleted 1..10 ok 12 - Filehandle not cached: rotate by period, monthly # Subtest: Filehandle cached: rotate by period, yearly ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 - should be unlocked ok 7 ok 8 - compress method returns true ok 9 - rotated file a.2012 was compressed to a.2012.gz ok 10 - original a.2012 is deleted 1..10 ok 13 - Filehandle cached: rotate by period, yearly # Subtest: Filehandle not cached: rotate by period, yearly ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 - should be unlocked ok 7 ok 8 - compress method returns true ok 9 - rotated file a.2012 was compressed to a.2012.gz ok 10 - original a.2012 is deleted 1..10 ok 14 - Filehandle not cached: rotate by period, yearly # Subtest: Filehandle cached: rotate by period + size, suffix ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 ok 7 - should be unlocked ok 8 ok 9 ok 10 ok 11 - should be unlocked ok 12 ok 13 - compress method returns true ok 14 - rotated file a.2012-12-21.log was compressed to a.2012-12-21.log.gz ok 15 - original a.2012-12-21.log is deleted ok 16 - rotated file a.2012-12-21.log.1 was compressed to a.2012-12-21.log.1.gz ok 17 - original a.2012-12-21.log.1 is deleted ok 18 - rotated file a.2012-12-21.log.2 was compressed to a.2012-12-21.log.2.gz ok 19 - original a.2012-12-21.log.2 is deleted 1..19 ok 15 - Filehandle cached: rotate by period + size, suffix # Subtest: Filehandle not cached: rotate by period + size, suffix ok 1 - period ok 2 - should be unlocked ok 3 ok 4 - should be unlocked ok 5 ok 6 ok 7 - should be unlocked ok 8 ok 9 ok 10 ok 11 - should be unlocked ok 12 ok 13 - compress method returns true ok 14 - rotated file a.2012-12-21.log was compressed to a.2012-12-21.log.gz ok 15 - original a.2012-12-21.log is deleted ok 16 - rotated file a.2012-12-21.log.1 was compressed to a.2012-12-21.log.1.gz ok 17 - original a.2012-12-21.log.1 is deleted ok 18 - rotated file a.2012-12-21.log.2 was compressed to a.2012-12-21.log.2.gz ok 19 - original a.2012-12-21.log.2 is deleted 1..19 ok 16 - Filehandle not cached: rotate by period + size, suffix # Subtest: Filehandle cached: two writers, one rotates ok 1 - should be unlocked ok 2 ok 3 ok 4 ok 5 - should be unlocked ok 6 ok 7 ok 8 - compress method returns true ok 9 - rotated file a.1 was compressed to a.1.gz ok 10 - original a.1 is deleted 1..10 ok 17 - Filehandle cached: two writers, one rotates # Subtest: Filehandle not cached: two writers, one rotates ok 1 - should be unlocked ok 2 ok 3 ok 4 ok 5 - should be unlocked ok 6 ok 7 ok 8 - compress method returns true ok 9 - rotated file a.1 was compressed to a.1.gz ok 10 - original a.1 is deleted 1..10 ok 18 - Filehandle not cached: two writers, one rotates # Subtest: rotate on first write() ok 1 ok 2 ok 3 - compress method returns true ok 4 - rotated file a.1 was compressed to a.1.gz ok 5 - original a.1 is deleted 1..5 ok 19 - rotate on first write() # Subtest: Filehandle cached: hook_before_write basic ok 1 - lock file exists ok 2 - should be unlocked ok 3 - hook messages OK ok 4 - content OK 1..4 ok 20 - Filehandle cached: hook_before_write basic # Subtest: Filehandle not cached: hook_before_write basic ok 1 - lock file exists ok 2 - should be unlocked ok 3 - hook messages OK ok 4 - content OK 1..4 ok 21 - Filehandle not cached: hook_before_write basic # Subtest: buffer (success), hook_before_write ok 1 - first message to buffer ok 2 - second message to buffer ok 3 - should be unlocked ok 4 - buffered messages gets logged ok 5 - buffered is emptied ok 6 - should be unlocked 1..6 ok 22 - buffer (success), hook_before_write # Subtest: buffer (failed, full), buffer_size attribute ok 1 - buffer_size() ok 2 - first message to buffer ok 3 - should be unlocked ok 4 - second message to buffer ok 5 - should be unlocked ok 6 - buffer is full ok 7 - should be unlocked 1..7 ok 23 - buffer (failed, full), buffer_size attribute # Subtest: hook_after_create ok 1 1..1 ok 24 - hook_after_create # Subtest: Filehandle cached: rotate by period, daily + histories ok 1 - should be unlocked ok 2 - current file only ok 3 - should be unlocked ok 4 - 1 history ok 5 - should be unlocked ok 6 - 2 histories ok 7 - should be unlocked ok 8 - 2 histories (deleted) 1..8 ok 25 - Filehandle cached: rotate by period, daily + histories # Subtest: Filehandle not cached: rotate by period, daily + histories ok 1 - should be unlocked ok 2 - current file only ok 3 - should be unlocked ok 4 - 1 history ok 5 - should be unlocked ok 6 - 2 histories ok 7 - should be unlocked ok 8 - 2 histories (deleted) 1..8 ok 26 - Filehandle not cached: rotate by period, daily + histories # Subtest: Filehandle cached: rotate by size + histories ok 1 - should be unlocked ok 2 - current file only ok 3 - should be unlocked ok 4 - 1 history (rotated) ok 5 - should be unlocked ok 6 - 2 histories (rotated) ok 7 - should be unlocked ok 8 - 2 histories (rotated and deleted) 1..8 ok 27 - Filehandle cached: rotate by size + histories # Subtest: Filehandle not cached: rotate by size + histories ok 1 - should be unlocked ok 2 - current file only ok 3 - should be unlocked ok 4 - 1 history (rotated) ok 5 - should be unlocked ok 6 - 2 histories (rotated) ok 7 - should be unlocked ok 8 - 2 histories (rotated and deleted) 1..8 ok 28 - Filehandle not cached: rotate by size + histories # Subtest: Filehandle cached: rotate by size + period + histories ok 1 - should be unlocked ok 2 ok 3 - should be unlocked ok 4 ok 5 - should be unlocked ok 6 ok 7 - should be unlocked ok 8 - rotate 2012-12-22 but NOT 2012-12-21 ok 9 - should be unlocked ok 10 - delete [1] as a result of rotating at 2012-12-22 ok 11 - should be unlocked ok 12 - delete [2] as a result of entering the new period ok 13 - should be unlocked ok 14 ok 15 - should be unlocked ok 16 - not rotating because it's within the size limite 1..16 ok 29 - Filehandle cached: rotate by size + period + histories # Subtest: Filehandle not cached: rotate by size + period + histories ok 1 - should be unlocked ok 2 ok 3 - should be unlocked ok 4 ok 5 - should be unlocked ok 6 ok 7 - should be unlocked ok 8 - rotate 2012-12-22 but NOT 2012-12-21 ok 9 - should be unlocked ok 10 - delete [1] as a result of rotating at 2012-12-22 ok 11 - should be unlocked ok 12 - delete [2] as a result of entering the new period ok 13 - should be unlocked ok 14 ok 15 - should be unlocked ok 16 - not rotating because it's within the size limite 1..16 ok 30 - Filehandle not cached: rotate by size + period + histories 1..30 ok All tests successful. Files=7, Tests=42, 1 wallclock secs ( 0.10 usr 0.02 sys + 0.78 cusr 0.28 csys = 1.18 CPU) Result: PASS PERLANCAR/File-Write-Rotate-0.30.tar.gz make test TEST_VERBOSE=1 -- OK perlancar <perlancar@gmail.com> Write to files that archive/rotate themselves >>> (cd /Users/fly2400/cpanfly-5.24/var/tmp/cpan_build/File-Write-Rotate-0.30-920e0i && tar cvf - File-Write-Rotate-0.30.ppd blib) | gzip -c >/Users/fly2400/cpanfly-5.24/var/REPO/P/PE/PERLANCAR/File-Write-Rotate-0.30.tar.gz File-Write-Rotate-0.30.ppd blib/ blib/lib/ blib/lib/File/ blib/lib/File/Write/ blib/lib/File/Write/Rotate.pm blib/man3/ blib/man3/File::Write::Rotate.3 Finished 2016-06-12T17:18:43