.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "Devel::Cover::Report::Compilation 3" .TH Devel::Cover::Report::Compilation 3 2026-03-09 "perl v5.42.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Devel::Cover::Report::Compilation \- backend for Devel::Cover .SH VERSION .IX Header "VERSION" version 1.52 .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& cover \-report compilation .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" This module provides a textual reporting mechanism for coverage data. It is designed to be called from the \f(CW\*(C`cover\*(C'\fR program. .PP It produces one report per line, in a format like Perl\*(Aqs own compilation error messages. This makes it easy to use with development tools that understand compilation output formats, such as Emacs compilation mode, vim quickfix, or IDE error navigation features. .SH "OUTPUT FORMAT" .IX Header "OUTPUT FORMAT" The compilation report generates output in the following formats: .IP \(bu 4 Statements .Sp .Vb 1 \& Uncovered statement at filename.pm line 42: .Ve .IP \(bu 4 Branches .Sp .Vb 3 \& Branch never true at filename.pm line 15: condition \& Branch never false at filename.pm line 20: unless condition \& Branch never reached at filename.pm line 25: condition .Ve .IP \(bu 4 Conditions .Sp .Vb 1 \& Uncovered condition (left, right) at filename.pm line 30: expr && expr .Ve .IP \(bu 4 Subroutines .Sp .Vb 1 \& Uncovered subroutine function_name at filename.pm line 50 .Ve .IP \(bu 4 POD Documentation .Sp .Vb 1 \& Uncovered pod at filename.pm line 60 .Ve .SH "USAGE WITH DEVELOPMENT TOOLS" .IX Header "USAGE WITH DEVELOPMENT TOOLS" .SS "Emacs Compilation Mode" .IX Subsection "Emacs Compilation Mode" To use with Emacs compilation mode: .PP .Vb 2 \& M\-x compile \& cover \-report compilation .Ve .PP Then use C\-x \` (next\-error) to jump to each uncovered location. .SS "Vim Quickfix" .IX Subsection "Vim Quickfix" To use with vim quickfix: .PP .Vb 2 \& :cgetexpr system(\*(Aqcover \-report compilation\*(Aq) \& :copen .Ve .PP Then use :cn and :cp to navigate between uncovered locations. .SH "COVERAGE TYPES" .IX Header "COVERAGE TYPES" The compilation report supports all standard Devel::Cover coverage types: .IP \(bu 4 \&\fBstatement\fR \- Individual Perl statements .IP \(bu 4 \&\fBbranch\fR \- Conditional branch execution paths .IP \(bu 4 \&\fBcondition\fR \- Boolean condition combinations .IP \(bu 4 \&\fBsubroutine\fR \- Subroutine call coverage .IP \(bu 4 \&\fBpod\fR \- POD documentation coverage .PP Use the standard \f(CW\*(C`cover\*(C'\fR command options to select which types to report: .PP .Vb 1 \& cover \-report compilation +statement +branch +condition +subroutine +pod .Ve .SH FUNCTIONS .IX Header "FUNCTIONS" .ie n .SS "print_statement($db, $file, $options)" .el .SS "print_statement($db, \f(CW$file\fP, \f(CW$options\fP)" .IX Subsection "print_statement($db, $file, $options)" Prints uncovered statement coverage information for the specified file. Outputs one line per uncovered statement in the format: .PP .Vb 1 \& "Uncovered statement at $file line $line_number:" .Ve .ie n .SS "print_branches($db, $file, $options)" .el .SS "print_branches($db, \f(CW$file\fP, \f(CW$options\fP)" .IX Subsection "print_branches($db, $file, $options)" Prints uncovered branch coverage information for the specified file. Reports branches where one or both execution paths were not taken. Outputs detailed information about which branch condition was never true, false, or reached. .ie n .SS "print_conditions($db, $file, $options)" .el .SS "print_conditions($db, \f(CW$file\fP, \f(CW$options\fP)" .IX Subsection "print_conditions($db, $file, $options)" Prints uncovered condition coverage information for the specified file. Reports logical conditions that were not fully exercised, showing which parts of complex boolean expressions were not tested. .ie n .SS "print_subroutines($db, $file, $options)" .el .SS "print_subroutines($db, \f(CW$file\fP, \f(CW$options\fP)" .IX Subsection "print_subroutines($db, $file, $options)" Prints uncovered subroutine coverage information for the specified file. Reports subroutines that were never called during testing. .ie n .SS "print_pod($db, $file, $options)" .el .SS "print_pod($db, \f(CW$file\fP, \f(CW$options\fP)" .IX Subsection "print_pod($db, $file, $options)" Prints uncovered POD (Plain Old Documentation) coverage information for the specified file. Reports sections of POD documentation that do not have corresponding tested code. .ie n .SS "report($pkg, $db, $options)" .el .SS "report($pkg, \f(CW$db\fP, \f(CW$options\fP)" .IX Subsection "report($pkg, $db, $options)" Main entry point for generating compilation\-style coverage reports. Iterates through all files and calls the appropriate print functions based on the coverage types requested in the options. .SH "SEE ALSO" .IX Header "SEE ALSO" .Vb 1 \& Devel::Cover .Ve .SH LICENCE .IX Header "LICENCE" Copyright 2001\-2026, Paul Johnson (paul@pjcj.net) .PP This software is free. It is licensed under the same terms as Perl itself. .PP The latest version of this software should be available from my homepage: https://pjcj.net