use strict; use warnings; use IO::Handle; use Dancer::MIME; use Dancer ':syntax'; use Dancer::ModuleLoader; use Test::More import => ['!pass']; plan tests => 3; # Test that MIME::Types gets initialised before the fork, as it'll # fail to read from DATA in all bar one child process in a # mod_perl-type preforking situation. # # See the comment near the top of Dancer/MIME.pm, and GH#136. my @cts; for (my $i = 0; $i < 3; $i++) { my ($p, $c) = (IO::Handle->new, IO::Handle->new); pipe($p, $c); if (my $pid = fork()) { # parent $c->close; my $ct = $p->getline; $p->close(); waitpid($pid, 0); push @cts, $ct; } else { # child $p->close; my $mime = Dancer::MIME->instance(); my $type = $mime->for_name('css'); $c->print($type); $c->close; exit 0; } } is $cts[0] => 'text/css'; is $cts[1] => 'text/css'; is $cts[2] => 'text/css';