[poe-commits] SF.net SVN: poe: [2368] trunk/poe-test-loops
Brought to you by:
rcaputo
From: <rc...@us...> - 2008-06-28 20:18:42
|
Revision: 2368 http://poe.svn.sourceforge.net/poe/?rev=2368&view=rev Author: rcaputo Date: 2008-06-28 13:18:48 -0700 (Sat, 28 Jun 2008) Log Message: ----------- Doc cleanups. Modified Paths: -------------- trunk/poe-test-loops/bin/poe-gen-tests trunk/poe-test-loops/lib/POE/Test/Loops.pm Modified: trunk/poe-test-loops/bin/poe-gen-tests =================================================================== --- trunk/poe-test-loops/bin/poe-gen-tests 2008-06-28 09:43:21 UTC (rev 2367) +++ trunk/poe-test-loops/bin/poe-gen-tests 2008-06-28 20:18:48 UTC (rev 2368) @@ -4,16 +4,12 @@ use Getopt::Long; use POE::Test::Loops; -my $dir_base; -my $flag_help; -my @loop_modules; -my $flag_verbose; - +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, + 'help' => \$flag_help, ); if ( @@ -305,6 +301,10 @@ print "\n"; +=head1 SEE ALSO + +L<POE::Test::Loops> and L<POE::Loop>. + =head1 AUTHOR & COPYRIGHT Rocco Caputo <rc...@cp...>. Modified: trunk/poe-test-loops/lib/POE/Test/Loops.pm =================================================================== --- trunk/poe-test-loops/lib/POE/Test/Loops.pm 2008-06-28 09:43:21 UTC (rev 2367) +++ trunk/poe-test-loops/lib/POE/Test/Loops.pm 2008-06-28 20:18:48 UTC (rev 2368) @@ -39,48 +39,48 @@ my $loop_cfg = _get_loop_cfg($fqmn); unless (defined $loop_cfg and length $loop_cfg) { $loop_cfg = ( - "sub skip_tests { return }" - ); + "sub skip_tests { return }" + ); } my $source = ( - "#!/usr/bin/perl -w\n" . - "# \$Id\$\n" . - "\n" . - "use strict;\n" . - "\n" . - "use lib qw(--base_lib--);\n" . - "use Test::More;\n" . - "use POSIX qw(_exit);\n" . - "\n" . - "--loop_cfg--\n" . - "\n" . - "BEGIN {\n" . - " if (my \$why = skip_tests('--test_name--')) {\n" . - " plan skip_all => \$why\n" . - " }\n" . - "}\n" . - "\n" . - "# Run the tests themselves.\n" . - "require '--base_file--';\n" . - "\n" . - "_exit 0 if \$^O eq 'MSWin32';\n" . - "CORE::exit 0;\n" - ); + "#!/usr/bin/perl -w\n" . + "# \$Id\$\n" . + "\n" . + "use strict;\n" . + "\n" . + "use lib qw(--base_lib--);\n" . + "use Test::More;\n" . + "use POSIX qw(_exit);\n" . + "\n" . + "--loop_cfg--\n" . + "\n" . + "BEGIN {\n" . + " if (my \$why = skip_tests('--test_name--')) {\n" . + " plan skip_all => \$why\n" . + " }\n" . + "}\n" . + "\n" . + "# Run the tests themselves.\n" . + "require '--base_file--';\n" . + "\n" . + "_exit 0 if \$^O eq 'MSWin32';\n" . + "CORE::exit 0;\n" + ); -# Full directory where source files are found. + # Full directory where source files are found. my $dir_src = File::Spec->catfile($source_base, "Loops"); my $dir_dst = File::Spec->catfile($dir_base, $loop_dir); -# Gather the list of source files. -# Each will be used to generate a real test file. + # Gather the list of source files. + # Each will be used to generate a real test file. opendir BASE, $dir_src or die $!; my @base_files = grep /\.pm$/, readdir(BASE); closedir BASE; -# Initialize the destination directory. Clear or create as needed. + # Initialize the destination directory. Clear or create as needed. $dir_dst =~ tr[/][/]s; $dir_dst =~ s{/+$}{}; @@ -88,9 +88,9 @@ rmtree($dir_dst); mkpath($dir_dst, 0, 0755); -# For each source file, generate a corresponding one in the -# configured destination directory. Expand various bits to -# customize the test. + # For each source file, generate a corresponding one in the + # configured destination directory. Expand various bits to + # customize the test. foreach my $base_file (@base_files) { my $test_name = $base_file; @@ -99,8 +99,8 @@ my $full_file = File::Spec->catfile($dir_dst, $base_file); $full_file =~ s/\.pm$/.t/; -# These hardcoded expansions are for the base file to be required, -# and the base library directory where it'll be found. + # These hardcoded expansions are for the base file to be required, + # and the base library directory where it'll be found. my $expanded_src = $source; $expanded_src =~ s/--base_file--/$base_file/g; @@ -108,7 +108,7 @@ $expanded_src =~ s/--loop_cfg--/$loop_cfg/g; $expanded_src =~ s/--test_name--/$test_name/g; -# Write with lots of error checking. + # Write with lots of error checking. open EXPANDED, ">$full_file" or die $!; print EXPANDED $expanded_src; @@ -159,7 +159,6 @@ return join "", @test_source; } - 1; __END__ @@ -170,21 +169,58 @@ =head1 SYNOPSIS -See L<poe-gen-tests>. + #!/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; + =head1 DESCRIPTION -See L<poe-gen-tests>, which is a utility to generate the actual tests -for your POE::Loop subclass. +POE::Test::Loops contains one function, generate(), which will +generate all the loop tests for one or more POE::Loop subclasses. +The L</SYNOPSIS> example is a version of L<poe-gen-tests>, which is a +stand-alone utility to generate the actual tests. L<poe-gen-tests> +also documents the POE::Test::Loops system in more detail. + =head1 FUNCTIONS =head2 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 +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, + ); + =head1 SEE ALSO L<POE::Loop> and L<poe-gen-tests>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |