X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faggregate%2Funit_core_script_fastcgi.t;fp=t%2Faggregate%2Funit_core_script_fastcgi.t;h=534b319fa353bd07c6bf13fde1a890cd25c6cfeb;hb=78dc94f2bbf5738c2eb2632d54e358b249812eb2;hp=0000000000000000000000000000000000000000;hpb=fb533ac365537bec8a9872c114127eec48834a06;p=catagits%2FCatalyst-Runtime.git diff --git a/t/aggregate/unit_core_script_fastcgi.t b/t/aggregate/unit_core_script_fastcgi.t new file mode 100644 index 0000000..534b319 --- /dev/null +++ b/t/aggregate/unit_core_script_fastcgi.t @@ -0,0 +1,75 @@ +use strict; +use warnings; + +use FindBin qw/$Bin/; +use lib "$Bin/../lib"; + +use Test::More; +use Test::Exception; + +use Catalyst::Script::FastCGI; + +my $testopts; + +# Test default (no opts/args behaviour) +testOption( [ qw// ], [undef, opthash()] ); + +# listen socket +testOption( [ qw|-l /tmp/foo| ], ['/tmp/foo', opthash()] ); +testOption( [ qw/-l 127.0.0.1:3000/ ], ['127.0.0.1:3000', opthash()] ); + +#daemonize -d --daemon +testOption( [ qw/-d/ ], [undef, opthash()] ); +testOption( [ qw/--daemon/ ], [undef, opthash()] ); + +# pidfile -pidfile --pid --pidfile +testOption( [ qw/--pidfile cat.pid/ ], [undef, opthash(pidfile => 'cat.pid')] ); +testOption( [ qw/--pid cat.pid/ ], [undef, opthash(pidfile => 'cat.pid')] ); + +# manager +testOption( [ qw/--manager foo::bar/ ], [undef, opthash(manager => 'foo::bar')] ); +testOption( [ qw/-M foo::bar/ ], [undef, opthash(manager => 'foo::bar')] ); + +# keeperr +testOption( [ qw/--keeperr/ ], [undef, opthash(keep_stderr => 1)] ); +testOption( [ qw/-e/ ], [undef, opthash(keep_stderr => 1)] ); + +# nproc +testOption( [ qw/--nproc 6/ ], [undef, opthash(nproc => 6)] ); +testOption( [ qw/--n 6/ ], [undef, opthash(nproc => 6)] ); + +# detach +testOption( [ qw/--detach/ ], [undef, opthash(detach => 1)] ); +testOption( [ qw/--det/ ], [undef, opthash(detach => 1)] ); + +done_testing; + +sub testOption { + my ($argstring, $resultarray) = @_; + + subtest "Test for ARGV: @$argstring" => sub + { + plan tests => 2; + local @ARGV = @$argstring; + local @TestAppToTestScripts::RUN_ARGS; + lives_ok { + Catalyst::Script::FastCGI->new_with_options(application_name => 'TestAppToTestScripts')->run; + } "new_with_options"; + # First element of RUN_ARGS will be the script name, which we don't care about + shift @TestAppToTestScripts::RUN_ARGS; + is_deeply \@TestAppToTestScripts::RUN_ARGS, $resultarray, "is_deeply comparison"; + done_testing; + }; +} + +# Returns the hash expected when no flags are passed +sub opthash { + return { + pidfile => undef, + keep_stderr => undef, + detach => undef, + nproc => undef, + manager => undef, + @_, + }; +}