Merge pull request #2529 from gnethercutt/issue_2517

Issue #2517, smove contract violation
This commit is contained in:
Salvatore Sanfilippo 2015-05-15 17:36:18 +02:00
commit cb9a5a7821
2 changed files with 5 additions and 1 deletions

View File

@ -343,7 +343,10 @@ void smoveCommand(redisClient *c) {
/* If srcset and dstset are equal, SMOVE is a no-op */
if (srcset == dstset) {
addReply(c,shared.cone);
if (setTypeIsMember(srcset,ele))
addReply(c,shared.cone);
else
addReply(c,shared.czero);
return;
}

View File

@ -519,6 +519,7 @@ start_server {
test "SMOVE non existing key" {
setup_move
assert_equal 0 [r smove myset1 myset2 foo]
assert_equal 0 [r smove myset1 myset1 foo]
assert_equal {1 a b} [lsort [r smembers myset1]]
assert_equal {2 3 4} [lsort [r smembers myset2]]
}