use Test::More tests => 2; use strict; use Config; use CGI::Simple; # Makes forked test work OK Test::More->builder->no_ending( 1 ); my ( $q, $sv ); $CGI::Simple::POST_MAX = -1; SKIP: { skip "Fork not available on this platform", 2 unless $Config{d_fork}; $ENV{REQUEST_METHOD} = 'POST'; $ENV{CONTENT_LENGTH} = 10_005; $ENV{CONTENT_TYPE} = 'application/x-www-form-urlencoded'; if ( open( CHILD, "|-" ) ) { # cparent print CHILD 'SLOW='; for ( 1 .. 10 ) { print CHILD 'X' x 1000; sleep 1; } close CHILD; exit 0; } # at this point, we're in a new (child) process $q = new CGI::Simple; $sv = $q->param( 'SLOW' ); is( length $sv, 10_000, 'length ok' ); is( $sv, 'X' x 10_000, 'value ok' ); }