Commit | Line | Data |
78dc94f2 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use FindBin qw/$Bin/; |
5 | use lib "$Bin/../lib"; |
6 | |
7 | use Test::More; |
8 | use Test::Exception; |
9 | |
10 | use Catalyst::Script::FastCGI; |
11 | |
12 | my $testopts; |
13 | |
14 | # Test default (no opts/args behaviour) |
15 | testOption( [ qw// ], [undef, opthash()] ); |
16 | |
17 | # listen socket |
18 | testOption( [ qw|-l /tmp/foo| ], ['/tmp/foo', opthash()] ); |
19 | testOption( [ qw/-l 127.0.0.1:3000/ ], ['127.0.0.1:3000', opthash()] ); |
20 | |
21 | #daemonize -d --daemon |
e1d59dc4 |
22 | testOption( [ qw/-d/ ], [undef, opthash(detach => 1)] ); |
23 | testOption( [ qw/--daemon/ ], [undef, opthash(detach => 1)] ); |
78dc94f2 |
24 | |
ad08ab75 |
25 | # pidfile -pidfile -p --pid --pidfile |
78dc94f2 |
26 | testOption( [ qw/--pidfile cat.pid/ ], [undef, opthash(pidfile => 'cat.pid')] ); |
27 | testOption( [ qw/--pid cat.pid/ ], [undef, opthash(pidfile => 'cat.pid')] ); |
ad08ab75 |
28 | testOption( [ qw/-p cat.pid/ ], [undef, opthash(pidfile => 'cat.pid')] ); |
78dc94f2 |
29 | |
30 | # manager |
31 | testOption( [ qw/--manager foo::bar/ ], [undef, opthash(manager => 'foo::bar')] ); |
32 | testOption( [ qw/-M foo::bar/ ], [undef, opthash(manager => 'foo::bar')] ); |
33 | |
34 | # keeperr |
35 | testOption( [ qw/--keeperr/ ], [undef, opthash(keep_stderr => 1)] ); |
36 | testOption( [ qw/-e/ ], [undef, opthash(keep_stderr => 1)] ); |
37 | |
38 | # nproc |
39 | testOption( [ qw/--nproc 6/ ], [undef, opthash(nproc => 6)] ); |
40 | testOption( [ qw/--n 6/ ], [undef, opthash(nproc => 6)] ); |
41 | |
8865ee12 |
42 | # proc_title |
43 | testOption( [ qw/--proc_title foo/ ], [undef, opthash(proc_title => 'foo')] ); |
d44d2d8f |
44 | |
78dc94f2 |
45 | done_testing; |
46 | |
47 | sub testOption { |
48 | my ($argstring, $resultarray) = @_; |
49 | |
6ec45f37 |
50 | local @ARGV = @$argstring; |
51 | local @TestAppToTestScripts::RUN_ARGS; |
52 | lives_ok { |
53 | Catalyst::Script::FastCGI->new_with_options(application_name => 'TestAppToTestScripts')->run; |
54 | } "new_with_options"; |
55 | # First element of RUN_ARGS will be the script name, which we don't care about |
56 | shift @TestAppToTestScripts::RUN_ARGS; |
57 | is_deeply \@TestAppToTestScripts::RUN_ARGS, $resultarray, "is_deeply comparison"; |
78dc94f2 |
58 | } |
59 | |
60 | # Returns the hash expected when no flags are passed |
61 | sub opthash { |
62 | return { |
63 | pidfile => undef, |
64 | keep_stderr => undef, |
65 | detach => undef, |
66 | nproc => undef, |
67 | manager => undef, |
8865ee12 |
68 | proc_title => undef, |
78dc94f2 |
69 | @_, |
70 | }; |
71 | } |