X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FTestApp%2FController%2FFork.pm;h=086d1490445477dc28627aa8c876ce35f3e32162;hb=d0e78355a560fb0f38da0f73e1ca85aae978cb16;hp=0f6e44cbda600a9af84a382cfdc99dbe6451dd23;hpb=8d5f3e92c01a506cfbb86d710162b39ec25fc1b5;p=catagits%2FCatalyst-Runtime.git diff --git a/t/lib/TestApp/Controller/Fork.pm b/t/lib/TestApp/Controller/Fork.pm index 0f6e44c..086d149 100644 --- a/t/lib/TestApp/Controller/Fork.pm +++ b/t/lib/TestApp/Controller/Fork.pm @@ -7,22 +7,22 @@ package TestApp::Controller::Fork; use strict; use warnings; use base 'Catalyst::Controller'; -use YAML; -sub fork : Local { +eval 'use YAML'; + +sub system : Local { my ($self, $c, $ls) = @_; my ($result, $code) = (undef, 1); if(!-e $ls || !-x _){ - $result = 'skip'; - $code = 0; + $result = 'skip'; } else { - $result = system($ls, $ls, $ls) || $!; - $code = $?; + $result = system($ls, $ls, $ls); + $result = $! if $result != 0; } - $c->response->body(Dump({result => $result, code => $code})); + $c->response->body(Dump({result => $result})); } sub backticks : Local { @@ -30,15 +30,32 @@ sub backticks : Local { my ($result, $code) = (undef, 1); if(!-e $ls || !-x _){ - $result = 'skip'; - $code = 0; + $result = 'skip'; + $code = 0; } else { - $result = `$ls $ls $ls` || $!; - $code = $?; + $result = `$ls $ls $ls` || $!; + $code = $?; } $c->response->body(Dump({result => $result, code => $code})); } - + +sub fork : Local { + my ($self, $c) = @_; + my $pid; + my $x = 0; + + if($pid = fork()){ + $x = "ok"; + } + else { + exit(0); + } + + waitpid $pid,0 or die; + + $c->response->body(Dump({pid => $pid, result => $x})); +} + 1;