.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" 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
.\" ========================================================================
.\"
.IX Title "App::Prove::State 3p"
.TH App::Prove::State 3p 2023-09-25 "perl v5.38.0" "Perl Programmers Reference Guide"
.\" 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
App::Prove::State \- State storage for the "prove" command.
.SH VERSION
.IX Header "VERSION"
Version 3.44
.SH DESCRIPTION
.IX Header "DESCRIPTION"
The \f(CW\*(C`prove\*(C'\fR command supports a \f(CW\*(C`\-\-state\*(C'\fR option that instructs it to
store persistent state across runs. This module implements that state
and the operations that may be performed on it.
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 2
\&    # Re\-run failed tests
\&    $ prove \-\-state=failed,save \-rbv
.Ve
.SH METHODS
.IX Header "METHODS"
.SS "Class Methods"
.IX Subsection "Class Methods"
\fR\f(CI\*(C`new\*(C'\fR\fI\fR
.IX Subsection "new"
.PP
Accepts a hashref with the following key/value pairs:
.IP \(bu 4
\&\f(CW\*(C`store\*(C'\fR
.Sp
The filename of the data store holding the data that App::Prove::State reads.
.IP \(bu 4
\&\f(CW\*(C`extensions\*(C'\fR (optional)
.Sp
The test name extensions.  Defaults to \f(CW\*(C`.t\*(C'\fR.
.IP \(bu 4
\&\f(CW\*(C`result_class\*(C'\fR (optional)
.Sp
The name of the \f(CW\*(C`result_class\*(C'\fR.  Defaults to \f(CW\*(C`App::Prove::State::Result\*(C'\fR.
.ie n .SS """result_class"""
.el .SS \f(CWresult_class\fP
.IX Subsection "result_class"
Getter/setter for the name of the class used for tracking test results.  This
class should either subclass from \f(CW\*(C`App::Prove::State::Result\*(C'\fR or provide an
identical interface.
.ie n .SS """extensions"""
.el .SS \f(CWextensions\fP
.IX Subsection "extensions"
Get or set the list of extensions that files must have in order to be
considered tests. Defaults to ['.t'].
.ie n .SS """results"""
.el .SS \f(CWresults\fP
.IX Subsection "results"
Get the results of the last test run.  Returns a \f(CWresult_class()\fR instance.
.ie n .SS """commit"""
.el .SS \f(CWcommit\fP
.IX Subsection "commit"
Save the test results. Should be called after all tests have run.
.SS "Instance Methods"
.IX Subsection "Instance Methods"
\fR\f(CI\*(C`apply_switch\*(C'\fR\fI\fR
.IX Subsection "apply_switch"
.PP
.Vb 1
\& $self\->apply_switch(\*(Aqfailed,save\*(Aq);
.Ve
.PP
Apply a list of switch options to the state, updating the internal
object state as a result. Nothing is returned.
.PP
Diagnostics:
    \- "Illegal state option: \f(CW%s\fR"
.ie n .IP """last""" 4
.el .IP \f(CWlast\fR 4
.IX Item "last"
Run in the same order as last time
.ie n .IP """failed""" 4
.el .IP \f(CWfailed\fR 4
.IX Item "failed"
Run only the failed tests from last time
.ie n .IP """passed""" 4
.el .IP \f(CWpassed\fR 4
.IX Item "passed"
Run only the passed tests from last time
.ie n .IP """all""" 4
.el .IP \f(CWall\fR 4
.IX Item "all"
Run all tests in normal order
.ie n .IP """hot""" 4
.el .IP \f(CWhot\fR 4
.IX Item "hot"
Run the tests that most recently failed first
.ie n .IP """todo""" 4
.el .IP \f(CWtodo\fR 4
.IX Item "todo"
Run the tests ordered by number of todos.
.ie n .IP """slow""" 4
.el .IP \f(CWslow\fR 4
.IX Item "slow"
Run the tests in slowest to fastest order.
.ie n .IP """fast""" 4
.el .IP \f(CWfast\fR 4
.IX Item "fast"
Run test tests in fastest to slowest order.
.ie n .IP """new""" 4
.el .IP \f(CWnew\fR 4
.IX Item "new"
Run the tests in newest to oldest order.
.ie n .IP """old""" 4
.el .IP \f(CWold\fR 4
.IX Item "old"
Run the tests in oldest to newest order.
.ie n .IP """save""" 4
.el .IP \f(CWsave\fR 4
.IX Item "save"
Save the state on exit.
.PP
\fR\f(CI\*(C`get_tests\*(C'\fR\fI\fR
.IX Subsection "get_tests"
.PP
Given a list of args get the names of tests that should run
.PP
\fR\f(CI\*(C`observe_test\*(C'\fR\fI\fR
.IX Subsection "observe_test"
.PP
Store the results of a test.
.PP
\fR\f(CI\*(C`save\*(C'\fR\fI\fR
.IX Subsection "save"
.PP
Write the state to a file.
.PP
\fR\f(CI\*(C`load\*(C'\fR\fI\fR
.IX Subsection "load"
.PP
Load the state from a file
