NAME
dump-parsed-cpanm-build-logs - pretty-print logs stored in JSON
USAGE
Multiple files:
dump-parsed-cpanm-build-logs \
/path/to/tad/results/perl-5.27.6/analysis/01/CPANID.Some-Distro-0.008.log.json \
/path/to/tad/results/perl-5.27.6/analysis/01/OTHERCPANID.Some-Other-Distro-0.001.log.json
or a single file on STDIN:
cat /path/to/tad/results/perl-5.27.6/analysis/01/CPANID.Some.Distro-.log.json | \
dump-parsed-cpanm-build-logs
NOTE: This program's name is long. You may wish to create a shorter alias for it provided that alias does not clash with any other program whose name indicates it "dumps JSON."
DESCRIPTION
This is a helper program for use with Perl extension CPAN-cpanminus-reporter-RetainReports.
When you call that module's run()
method, a build.log created by cpanm is parsed to create individual files on disk for each module which received a grade such as PASS
, FAIL
, NA
or UNKNOWN
. Those files are written in compact JSON for use as input into other programs. But compact JSON is not very human-readable. Use this program to pretty-print the report to STDOUT.
Sample Output
Running the program on the two files in the examples/ directory in this distribution generates:
{
author => "DAGOLDEN",
dist => "Sub-Uplevel",
distname => "Sub-Uplevel-0.2800",
distversion => "0.2800",
grade => "PASS",
prereqs => undef,
test_output => [
"Building and testing Sub-Uplevel-0.2800",
"cp lib/Sub/Uplevel.pm blib/lib/Sub/Uplevel.pm",
"PERL_DL_NONLAZY=1 \"/home/jkeenan/var/tad/testing/perl-5.27.6/bin/perl\" \"-MExtUtils::Command::MM\" \"-MTest::Harness\" \"-e\" \"undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')\" t/*.t",
"# ",
"# Versions for all modules listed in MYMETA.json (including optional ones):",
"# ",
"# === Configure Requires ===",
"# ",
"# Module Want Have",
"# ------------------- ---- ----",
"# ExtUtils::MakeMaker 6.17 7.30",
"# ",
"# === Build Requires ===",
"# ",
"# Module Want Have",
"# ------------------- ---- ----",
"# ExtUtils::MakeMaker any 7.30",
"# ",
"# === Test Requires ===",
"# ",
"# Module Want Have",
"# ------------------- ---- --------",
"# Exporter any 5.72",
"# ExtUtils::MakeMaker any 7.30",
"# File::Spec any 3.69",
"# Test::More any 1.302111",
"# lib any 0.64",
"# ",
"# === Test Recommends ===",
"# ",
"# Module Want Have",
"# ---------- -------- --------",
"# CPAN::Meta 2.120900 2.150010",
"# ",
"# === Runtime Requires ===",
"# ",
"# Module Want Have",
"# -------- ---- ----",
"# Carp any 1.44",
"# constant any 1.33",
"# strict any 1.11",
"# warnings any 1.38",
"# ",
"t/00-report-prereqs.t ........ ok",
"t/01_die_check.t ............. ok",
"t/02_uplevel.t ............... ok",
"t/03_nested_uplevels.t ....... ok",
"t/04_honor_later_override.t .. ok",
"t/05_honor_prior_override.t .. ok",
"t/06_db_args.t ............... ok",
"t/07_uplevel_too_high.t ...... ok",
"t/08_exporter.t .............. ok",
"t/09_emptylist.t ............. ok",
"All tests successful.",
"Files=10, Tests=158, 1 wallclock secs ( 0.06 usr 0.00 sys + 0.68 cusr 0.07 csys = 0.81 CPU)",
"Result: PASS",
],
via => "App::cpanminus::reporter 0.17 (1.7043)",
}
{
author => "DAGOLDEN",
dist => "Test-API",
distname => "Test-API-0.008",
distversion => 0.008,
grade => "FAIL",
prereqs => undef,
test_output => [
"Building and testing Test-API-0.008",
"cp lib/Test/API.pm blib/lib/Test/API.pm",
"PERL_DL_NONLAZY=1 \"/home/jkeenan/var/tad/testing/perl-5.27.6/bin/perl\" \"-MExtUtils::Command::MM\" \"-MTest::Harness\" \"-e\" \"undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')\" t/*.t",
"# ",
"# Versions for all modules listed in MYMETA.json (including optional ones):",
"# ",
"# === Configure Requires ===",
"# ",
"# Module Want Have",
"# ------------------- ---- ----",
"# ExtUtils::MakeMaker 6.17 7.30",
"# ",
"# === Build Requires ===",
"# ",
"# Module Want Have",
"# ------------------- ---- ----",
"# ExtUtils::MakeMaker any 7.30",
"# ",
"# === Test Requires ===",
"# ",
"# Module Want Have",
"# --------------------- ---- --------",
"# Carp any 1.44",
"# Exporter any 5.72",
"# ExtUtils::MakeMaker any 7.30",
"# File::Spec any 3.69",
"# Test::Builder::Tester 1.18 1.302120",
"# Test::More any 1.302120",
"# lib any 0.64",
"# ",
"# === Test Recommends ===",
"# ",
"# Module Want Have",
"# ---------- -------- --------",
"# CPAN::Meta 2.120900 2.150010",
"# ",
"# === Runtime Requires ===",
"# ",
"# Module Want Have",
"# --------------------- ---- --------",
"# Symbol any 1.08",
"# Test::Builder::Module 0.86 1.302120",
"# strict any 1.11",
"# warnings any 1.38",
"# ",
"t/00-report-prereqs.t .. ok",
"Not a GLOB reference at /home/jkeenan/var/tad/testing/perl-5.27.6/.cpanm/work/1513444048.14516/Test-API-0.008/blib/lib/Test/API.pm line 176.",
"t/02-public.t .......... ",
"Dubious, test returned 255 (wstat 65280, 0xff00)",
"Failed 4/11 subtests ",
"Not a GLOB reference at /home/jkeenan/var/tad/testing/perl-5.27.6/.cpanm/work/1513444048.14516/Test-API-0.008/blib/lib/Test/API.pm line 176.",
"t/03-export.t .......... ",
"Dubious, test returned 255 (wstat 65280, 0xff00)",
"Failed 8/14 subtests ",
"Not a GLOB reference at /home/jkeenan/var/tad/testing/perl-5.27.6/.cpanm/work/1513444048.14516/Test-API-0.008/blib/lib/Test/API.pm line 176.",
"t/04-class-ok.t ........ ",
"Dubious, test returned 255 (wstat 65280, 0xff00)",
"Failed 3/5 subtests ",
"",
"Test Summary Report",
"-------------------",
"t/02-public.t (Wstat: 65280 Tests: 7 Failed: 0)",
" Non-zero exit status: 255",
" Parse errors: Bad plan. You planned 11 tests but ran 7.",
"t/03-export.t (Wstat: 65280 Tests: 6 Failed: 0)",
" Non-zero exit status: 255",
" Parse errors: Bad plan. You planned 14 tests but ran 6.",
"t/04-class-ok.t (Wstat: 65280 Tests: 2 Failed: 0)",
" Non-zero exit status: 255",
" Parse errors: Bad plan. You planned 5 tests but ran 2.",
"Files=4, Tests=16, 1 wallclock secs ( 0.03 usr 0.00 sys + 0.36 cusr 0.03 csys = 0.42 CPU)",
"Result: FAIL",
],
via => "App::cpanminus::reporter 0.17 (1.7043)",
}
PREREQUISITES
CPAN::cpanminus::reporter::RetainReports and its prerequisites. Data::Dump.
AUTHOR
James E Keenan
CPAN Id: JKEENAN
jkeenan [at] cpan [dot] org
COPYRIGHT
Copyright (c) 2017 James E Keenan. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
perl(1). CPAN::cpanminus::reporter::RetainReports(3). JSON(3).