=head1 SYNOPSIS

  use SmokeRunner::Multi;

  my $runner = SmokeRunner::Multi->new();

  $runner->run_and_report_next_set();

=head1 DESCRIPTION

This distribution was created to help manage the running of automated
tests across multiple branches or checkouts.

Each branch is called a "test set", and sets are ordered based on
various criteria.  This class provide a high-level interface for
getting the next set, running its tests, and reporting on them.

Also see the F<smokerunner-multi> script that comes with this
distribution.

=head1 METHODS/FUNCTIONS

This class provides the following methods:

=head2 SmokeRunner::Multi->new()

Creates a new object.

=head2 $smoker->next_set()

Returns the next test set to be run.

=head2 $smoker->run_and_report_next_set()

This is a convenience method that can be used to run and report on the
next test set in a single step.

As a convenience (mostly for testing), it returns the reporter object
it creates internally.

=head2 $smoker->make_runner( ... )

This is a convenience method for making a
C<SmokeRunner::Multi::Runner> object of the class specified in the
config file. Any parameters passed to this method will be passed on to
the Runner class's constructor.

=head2 $smoker->make_reporter( ... )

This is a convenience method for making a
C<SmokeReporter::Multi::Reporter> object of the class specified in the
config file. Any parameters passed to this method will be passed on to
the Reporter class's constructor.

=head1 CONFIGURATION

See L<SmokeRunner::Multi::Config> for details on configuring the smoke
runner. You need to create a minimal config file to do much of
anything.

=head1 SEE ALSO

See the other classes in this distribution for more information:
L<SmokeRunner::Multi::TestSet>, L<SmokeRunner::Multi::Runner>,
L<SmokeRunner::Multi::Reporter>, and L<SmokeRunner::Multi::Config>.
