From: Tomas Doran Date: Sun, 24 Jul 2011 21:49:01 +0000 (+0100) Subject: Somewhat fix up the server script test X-Git-Tag: 5.89003~18 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=1a3dd976ad46b71f2eabd3230a393c7a1aa84b6e;hp=3f22de0b6599bd10c0c50c0a33c3b359ffc1ea8d Somewhat fix up the server script test --- diff --git a/Makefile.PL b/Makefile.PL index ba07f88..e9475f2 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -79,6 +79,7 @@ author_requires 'CatalystX::LeakChecker', '0.05'; author_requires 'File::Copy::Recursive'; # For http server test author_requires 'Catalyst::Devel', '1.0'; # For http server test author_requires 'Catalyst::Engine::PSGI'; +author_requires 'Test::Without::Module'; author_tests 't/author'; author_requires(map {; $_ => 0 } qw( diff --git a/t/aggregate/unit_core_script_server-without_modules.t b/t/aggregate/unit_core_script_server-without_modules.t new file mode 100644 index 0000000..a93b213 --- /dev/null +++ b/t/aggregate/unit_core_script_server-without_modules.t @@ -0,0 +1,13 @@ +use strict; +use warnings; +use FindBin qw/$Bin/; +use Test::More; +use Test::Without::Module qw( + Starman + Plack::Handler::Starman + MooseX::Daemonize + MooseX::Daemonize::Pid::File + MooseX::Daemonize::Core +); +require "$Bin/../aggregate/unit_core_script_server.t"; + diff --git a/t/aggregate/unit_core_script_server.t b/t/aggregate/unit_core_script_server.t index 63f02ca..c133e52 100644 --- a/t/aggregate/unit_core_script_server.t +++ b/t/aggregate/unit_core_script_server.t @@ -5,7 +5,7 @@ use FindBin qw/$Bin/; use lib "$Bin/../lib"; use Test::More; -use Test::Exception; +use Try::Tiny; use Catalyst::Script::Server; @@ -35,27 +35,34 @@ testOption( [ qw/--port 3001/ ], ['3001', undef, opthash()] ); testOption( [ qw// ], [5000, undef, opthash()] ); } -# fork -f -fork --fork -f --fork -testOption( [ qw/--fork/ ], ['3000', undef, opthash(fork => 1)] ); -testOption( [ qw/-f/ ], ['3000', undef, opthash(fork => 1)] ); +if (try { require Starman; 1; }) { + # fork -f -fork --fork -f --fork + testOption( [ qw/--fork/ ], ['3000', undef, opthash(fork => 1)] ); + testOption( [ qw/-f/ ], ['3000', undef, opthash(fork => 1)] ); +} -# pidfile -pidfile --pid --pidfile -testOption( [ qw/--pidfile cat.pid/ ], ['3000', undef, opthash(pidfile => "cat.pid")] ); -testOption( [ qw/--pid cat.pid/ ], ['3000', undef, opthash(pidfile => "cat.pid")] ); +if (try { require MooseX::Daemonize; 1; }) { + # pidfile -pidfile --pid --pidfile + testOption( [ qw/--pidfile cat.pid/ ], ['3000', undef, opthash(pidfile => "cat.pid")] ); + testOption( [ qw/--pid cat.pid/ ], ['3000', undef, opthash(pidfile => "cat.pid")] ); +} -# keepalive -k -keepalive --keepalive -k --keepalive -testOption( [ qw/-k/ ], ['3000', undef, opthash(keepalive => 1)] ); -testOption( [ qw/--keepalive/ ], ['3000', undef, opthash(keepalive => 1)] ); +if (try { require Starman; 1; }) { + # keepalive -k -keepalive --keepalive -k --keepalive + testOption( [ qw/-k/ ], ['3000', undef, opthash(keepalive => 1)] ); + testOption( [ qw/--keepalive/ ], ['3000', undef, opthash(keepalive => 1)] ); +} # symlinks -follow_symlinks --sym --follow_symlinks # testOption( [ qw/--sym/ ], ['3000', undef, opthash(follow_symlinks => 1)] ); testOption( [ qw/--follow_symlinks/ ], ['3000', undef, opthash(follow_symlinks => 1)] ); -# background -background --bg --background -testOption( [ qw/--background/ ], ['3000', undef, opthash(background => 1)] ); -testOption( [ qw/--bg/ ], ['3000', undef, opthash(background => 1)] ); - +if (try { require MooseX::Daemonize; 1; }) { + # background -background --bg --background + testOption( [ qw/--background/ ], ['3000', undef, opthash(background => 1)] ); + testOption( [ qw/--bg/ ], ['3000', undef, opthash(background => 1)] ); +} # restart -r -restart --restart -R --restart testRestart( ['-r'], restartopthash() ); @@ -99,8 +106,11 @@ done_testing; sub testOption { my ($argstring, $resultarray) = @_; my $app = _build_testapp($argstring); - lives_ok { + try { $app->run; + } + catch { + fail $_; }; # First element of RUN_ARGS will be the script name, which we don't care about shift @TestAppToTestScripts::RUN_ARGS; @@ -109,7 +119,7 @@ sub testOption { my @run_args = @TestAppToTestScripts::RUN_ARGS; $run_args[-1]->{pidfile} = $run_args[-1]->{pidfile}->file->stringify - if $run_args[-1]->{pidfile}; + if scalar(@run_args) && $run_args[-1]->{pidfile}; # Mangle argv into the options.. @@ -133,9 +143,13 @@ sub _build_testapp { local @ARGV = @$argstring; local @TestAppToTestScripts::RUN_ARGS; my $i; - lives_ok { + try { $i = Catalyst::Script::Server->new_with_options(application_name => 'TestAppToTestScripts'); - } "new_with_options " . join(' ', @$argstring);; + pass "new_with_options " . join(' ', @$argstring); + } + catch { + fail "new_with_options " . join(' ', @$argstring) . " " . $_; + }; ok $i; return $i; }