Commit | Line | Data |
---|---|---|
3c3db18c | 1 | use Test::More no_plan => 1; |
2 | use Test::Builder; | |
3 | use Test::MooseX::Daemonize; | |
3543c999 | 4 | use MooseX::Daemonize; |
3c3db18c | 5 | |
6 | my $Test = Test::Builder->new; | |
3c3db18c | 7 | |
8 | { | |
9 | ||
10 | package TestOutput; | |
11 | use Moose; | |
12 | with qw(MooseX::Daemonize); | |
3543c999 | 13 | with qw(Test::MooseX::Daemonize::Testable); # setup our test environment |
14 | ||
3c3db18c | 15 | after start => sub { |
16 | my ($self) = @_; | |
43d819aa | 17 | $self->output_ok() |
18 | if $self->is_daemon; | |
3c3db18c | 19 | }; |
20 | ||
21 | sub output_ok { | |
3543c999 | 22 | my ($self) = @_; |
23 | my $count = 1; | |
7a4ac6b2 | 24 | for ( 0 .. 3 ) { |
3543c999 | 25 | $Test->ok( $count++, "$count output_ok" ); |
26 | sleep(1); | |
3c3db18c | 27 | } |
3c3db18c | 28 | } |
29 | no Moose; | |
30 | } | |
31 | ||
32 | package main; | |
b916501e | 33 | use strict; |
34 | use warnings; | |
3c3db18c | 35 | |
380acf65 | 36 | use File::Spec::Functions; |
37 | use File::Temp qw(tempdir); | |
38 | ||
39 | my $dir = tempdir( CLEANUP => 1 ); | |
40 | ||
3c3db18c | 41 | ## Try to make sure we are in the test directory |
3543c999 | 42 | my $app = TestOutput->new( |
380acf65 | 43 | pidbase => $dir, |
44 | test_output => catfile($dir, 'results'), | |
3543c999 | 45 | ); |
46 | daemonize_ok( $app, 'child forked okay' ); | |
7a4ac6b2 | 47 | sleep(3); # give ourself a chance to produce some output |
b916501e | 48 | |
49 | my $warnings = ""; | |
50 | { | |
51 | local $SIG{__WARN__} = sub { $warnings .= $_[0]; warn @_ }; | |
52 | $app->stop( no_exit => 1 ); | |
53 | } | |
54 | ||
55 | is($warnings, "", "No warnings from stop"); | |
3543c999 | 56 | |
57 | check_test_output($app); | |
58 | unlink( $app->test_output ); | |
7a4ac6b2 | 59 | exit; |