warn "## bulk len: ",dump($len);
return undef if $len eq "nil\r\n";
my $v;
- read($sock, $v, $len) || die $!;
- warn "## bulk v: ",dump($v);
+ if ( $len > 0 ) {
+ read($sock, $v, $len) || die $!;
+ warn "## bulk v: ",dump($v);
+ }
my $crlf;
read($sock, $crlf, 2); # skip cr/lf
return $v;
sub __sock_ok {
my $ok = <$sock>;
+ return undef if $ok eq "nil\r\n";
confess dump($ok) unless $ok eq "+OK\r\n";
}
my $self = shift;
warn "## _sock_send_bulk ",dump( @_ );
my $value = pop;
- print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n";
+ $value = '' unless defined $value; # FIXME errr? nil?
+ print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n"
}
sub _sock_send_bulk {
use warnings;
use strict;
-use Test::More tests => 71;
+use Test::More tests => 75;
use lib 'lib';
cmp_ok( $o->get( 'foo' ), 'eq', 'baz', 'get foo = baz' );
+ok( $o->set( 'test-undef' => 42 ), 'set test-undef' );
+ok( $o->set( 'test-undef' => undef ), 'set undef' );
+ok( ! defined $o->get( 'test-undef' ), 'get undef' );
+diag $o->exists( 'test-undef' );
+ok( $o->exists( 'test-undef' ), 'exists undef' );
+
$o->del('non-existant');
ok( ! $o->exists( 'non-existant' ), 'exists non-existant' );