# NAME

POE::Test::Loops - Reusable tests for POE::Loop authors

# SYNOPSIS

        #!/usr/bin/perl -w

        use strict;
        use Getopt::Long;
        use POE::Test::Loops;

        my ($dir_base, $flag_help, @loop_modules, $flag_verbose);
        my $result = GetOptions(
                'dirbase=s' => \$dir_base,
                'loop=s' => \@loop_modules,
                'verbose' => \$flag_verbose,
                'help' => \$flag_help,
        );

        if (
                !$result or !$dir_base or $flag_help or !@loop_modules
        ) {
                die(
                        "$0 usage:\n",
                        "  --dirbase DIR   (required) base directory for tests\n",
                        "  --loop MODULE   (required) loop modules to test\n",
                        "  --verbose   show some extra output\n",
                        "  --help   you're reading it\n",
                );
        }

        POE::Test::Loops::generate($dir_base, \@loop_modules, $flag_verbose);
        exit 0;

# DESCRIPTION

POE::Test::Loops contains one function, generate(), which will
generate all the loop tests for one or more POE::Loop subclasses.

The ["SYNOPSIS"](#synopsis) example is a version of [poe-gen-tests](https://metacpan.org/pod/poe-gen-tests), which is a
stand-alone utility to generate the actual tests.  [poe-gen-tests](https://metacpan.org/pod/poe-gen-tests)
also documents the POE::Test::Loops system in more detail.

# FUNCTIONS

## generate( $DIRBASE, \\@LOOPS, $VERBOSE )

Generates the loop tests.  DIRBASE is the (relative) directory in
which a subdirectory for each of the LOOPS is created.  If VERBOSE is
set to a TRUE value some progress reporting is printed.

        POE::Test::Loops::generate(
                "./t",
                [ "POE::Loop::Yours" ],
                1,
        );

# SEE ALSO

[POE::Loop](https://metacpan.org/pod/POE::Loop) and [poe-gen-tests](https://metacpan.org/pod/poe-gen-tests).

# AUTHOR & COPYRIGHT

See [poe-gen-tests](https://metacpan.org/pod/poe-gen-tests).
