use strict; use Test::More; use File::Spec; use HTTP::Proxy; my $errfile = File::Spec->catfile( 't', 'stderr.out' ); my @deprecated = ( [ maxchild => qr/^maxchild is deprecated, please use max_clients/ ], [ maxconn => qr/^maxconn is deprecated, please use max_connections/ ], [ maxserve => qr/^maxserve is deprecated, please use max_keep_alive_requests/ ], ); plan tests => 4 * @deprecated; # check the warnings open my $olderr, ">&STDERR" or die "Can't dup STDERR: $!"; open STDERR, '>', $errfile or die "Can't redirect STDERR: $!"; select STDERR; $| = 1; # make unbuffered # call the deprecated methods my $p1 = HTTP::Proxy->new( maxchild => 1, maxconn => 3, maxserve => 5, ); my $p2 = HTTP::Proxy->new(); $p2->maxchild(9); $p2->maxconn(8); $p2->maxserve(7); # get the old STDERR back open STDERR, ">&", $olderr or die "Can't dup \$olderr: $!"; # read the stderr log open my $fh, $errfile or die "Can't open $errfile: $!"; my @err = sort <$fh>; close $fh or diag "Can't close $errfile: $!"; # run the tests for (@deprecated) { like( shift @err, $_->[1], "$_->[0] is deprecated" ); like( shift @err, $_->[1], "$_->[0] is deprecated" ); } diag $_ for @err; unlink $errfile or diag "Can't unlink $errfile: $!"; # check that the real method was called is( $p1->max_clients, 1, "max_clients called for maxchild" ); is( $p1->max_connections, 3, "max_connections called for maxconn" ); is( $p1->max_keep_alive_requests, 5, "max_keep_alive_requests called for maxserve" ); is( $p2->max_clients, 9, "max_clients called for maxchild" ); is( $p2->max_connections, 8, "max_connections called for maxconn" ); is( $p2->max_keep_alive_requests, 7, "max_keep_alive_requests called for maxserve" );