Gearman
view release on metacpan or search on metacpan
use strict;
use warnings;
use List::Util qw/ sum /;
use Storable qw/
freeze
thaw
/;
use Test::More;
use Test::Timer;
use lib '.';
use t::Worker qw/ new_worker /;
BEGIN {
use IO::Socket::SSL ();
if (defined($ENV{SSL_DEBUG})) {
$IO::Socket::SSL::DEBUG = $ENV{SSL_DEBUG};
}
} ## end BEGIN
{
my @env = qw/
AUTHOR_TESTING
SSL_GEARMAND_HOST
SSL_GEARMAND_PORT
SSL_CERT_FILE
SSL_KEY_FILE
/;
my $skip;
while (my $e = shift @env) {
defined($ENV{$e}) && next;
$skip = $e;
last;
}
if ($skip) {
plan skip_all => sprintf 'without $ENV{%s}', $skip;
}
else {
plan tests => 7;
}
}
my $debug = defined($ENV{SSL_DEBUG}) && $ENV{SSL_DEBUG};
my $job_server = {
use_ssl => 1,
host => $ENV{SSL_GEARMAND_HOST},
port => $ENV{SSL_GEARMAND_PORT},
ca_file => $ENV{SSL_CA_FILE},
cert_file => $ENV{SSL_CERT_FILE},
key_file => $ENV{SSL_KEY_FILE},
socket_cb => sub {
my ($hr) = @_;
# $hr->{SSL_cipher_list} = 'DEFAULT:!DH'; # 'ALL:!LOW:!EXP:!aNULL';
if (defined($ENV{SSL_VERIFY_MODE})) {
$hr->{SSL_verify_mode} = eval "$ENV{SSL_VERIFY_MODE}";
}
return $hr;
}
};
use_ok("Gearman::Client");
use_ok("Gearman::Worker");
subtest "client echo request", sub {
plan tests => 8;
my $client = _client();
ok(my $sock = $client->_get_random_js_sock(), "get socket");
my $msg = "$$ client echo request";
_echo($sock, $msg);
};
( run in 1.707 second using v1.01-cache-2.11-cpan-98e64b0badf )