more tempdir for robustness
[gitmo/MooseX-Daemonize.git] / t / 02.stdout.t
1 use Test::More no_plan => 1;
2 use Test::Builder;
3 use Test::MooseX::Daemonize;
4 use MooseX::Daemonize;
5
6 my $Test = Test::Builder->new;
7
8 {
9
10     package TestOutput;
11     use Moose;
12     with qw(MooseX::Daemonize);
13     with qw(Test::MooseX::Daemonize::Testable);    # setup our test environment
14
15     after start => sub {
16         my ($self) = @_;
17         $self->output_ok() 
18             if $self->is_daemon;
19     };
20
21     sub output_ok {
22         my ($self) = @_;
23         my $count = 1;
24         for ( 0 .. 3 ) {
25             $Test->ok( $count++, "$count output_ok" );
26             sleep(1);
27         }
28     }
29     no Moose;
30 }
31
32 package main;
33 use strict;
34 use warnings;
35
36 use File::Spec::Functions;
37 use File::Temp qw(tempdir);
38
39 my $dir = tempdir( CLEANUP => 1 );
40
41 ## Try to make sure we are in the test directory
42 my $app = TestOutput->new(
43     pidbase     => $dir,
44     test_output => catfile($dir, 'results'),
45 );
46 daemonize_ok( $app, 'child forked okay' );
47 sleep(3);    # give ourself a chance to produce some output
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");
56
57 check_test_output($app);
58 unlink( $app->test_output );
59 exit;