summaryrefslogtreecommitdiff
path: root/t/binary-extstore.t
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2020-03-10 16:08:53 -0700
committerdormando <dormando@rydia.net>2020-03-10 16:08:53 -0700
commitb9c827c9d30fc266246d8340afb2d3ef0a1fbbb9 (patch)
tree767c901c584830520c669abdb3dfdb438116bfc8 /t/binary-extstore.t
parent0551c9ad86781e9b2346b413ab6e078b25de71ab (diff)
downloadmemcached-b9c827c9d30fc266246d8340afb2d3ef0a1fbbb9.tar.gz
fix test: binary-extstore.t never worked with TLS
sad this one got by :(
Diffstat (limited to 't/binary-extstore.t')
-rwxr-xr-xt/binary-extstore.t18
1 files changed, 14 insertions, 4 deletions
diff --git a/t/binary-extstore.t b/t/binary-extstore.t
index b96289f..746fe52 100755
--- a/t/binary-extstore.t
+++ b/t/binary-extstore.t
@@ -298,8 +298,18 @@ sub send_command {
my $full_msg = $self->build_command($cmd, $key, $val, $opaque, $extra_header, $cas);
- my $sent = $self->{socket}->send($full_msg);
- die("Send failed: $!") unless $sent;
+ my $sent = 0;
+ my $data_len = length($full_msg);
+ while ($sent < $data_len) {
+ my $sent_bytes = $self->{socket}->syswrite($full_msg,
+ $data_len - $sent > MemcachedTest::MAX_READ_WRITE_SIZE ?
+ MemcachedTest::MAX_READ_WRITE_SIZE : ($data_len - $sent),
+ $sent);
+ last if ($sent_bytes <= 0);
+ $sent += $sent_bytes;
+ }
+ die("Send failed: $!") unless $data_len;
+
if($sent != length($full_msg)) {
die("only sent $sent of " . length($full_msg) . " bytes");
}
@@ -339,7 +349,7 @@ sub _handle_single_response {
my $hdr = "";
while(::MIN_RECV_BYTES - length($hdr) > 0) {
- $self->{socket}->recv(my $response, ::MIN_RECV_BYTES - length($hdr));
+ $self->{socket}->sysread(my $response, ::MIN_RECV_BYTES - length($hdr));
$hdr .= $response;
}
Test::More::is(length($hdr), ::MIN_RECV_BYTES, "Expected read length");
@@ -355,7 +365,7 @@ sub _handle_single_response {
# fetch the value
my $rv="";
while($remaining - length($rv) > 0) {
- $self->{socket}->recv(my $buf, $remaining - length($rv));
+ $self->{socket}->sysread(my $buf, $remaining - length($rv));
$rv .= $buf;
}
if(length($rv) != $remaining) {