@@ -17,10 +17,10 @@ function test1($r, $type) {
1717 ->get ('key2 ' )
1818 ->decr ('key2 ' )
1919 ->get ('key2 ' )
20- ->renameKey ('key2 ' , 'key3 ' )
20+ ->renameKey ('key2 ' , 'key3 ' )
2121 ->get ('key3 ' )
22- ->renameNx ('key3 ' , 'key1 ' )
23- ->renameKey ('key3 ' , 'key2 ' )
22+ ->renameNx ('key3 ' , 'key1 ' )
23+ ->renameKey ('key3 ' , 'key2 ' )
2424 ->incr ('key2 ' , 5 )
2525 ->get ('key2 ' )
2626 ->decr ('key2 ' , 5 )
@@ -76,14 +76,14 @@ function test1($r, $type) {
7676 $ ret = $ r ->multi ($ type )
7777 ->exec ();
7878 assert ($ ret == array ());
79-
79+
8080 // ttl, mget, mset, msetnx, expire, expireAt
8181 $ ret = $ r ->multi ($ type )
8282 ->ttl ('key ' )
8383 ->mget (array ('key1 ' , 'key2 ' , 'key3 ' ))
8484 ->mset (array ('key3 ' => 'value3 ' , 'key4 ' => 'value4 ' ))
8585 ->set ('key ' , 'value ' )
86- ->expire ('key ' , 5 )
86+ ->expire ('key ' , 5 )
8787 ->ttl ('key ' )
8888 ->expireAt ('key ' , '0000 ' )
8989 ->exec ();
@@ -120,7 +120,7 @@ function test1($r, $type) {
120120 ->lGetRange ('lkey ' , 0 , -1 )
121121 ->llen ('lkey ' )
122122 ->exec ();
123-
123+
124124 assert (is_array ($ ret ));
125125 $ i = 0 ;
126126 assert ($ ret [$ i ++] === TRUE ); // SET
@@ -169,7 +169,7 @@ function test1($r, $type) {
169169}
170170
171171function test2 ($ r , $ type ) {
172-
172+
173173 // general command
174174 $ ret = $ r ->multi ($ type )
175175 ->select (3 )
@@ -199,10 +199,10 @@ function test2($r, $type) {
199199 ->get ('key2 ' )
200200 ->decr ('key2 ' )
201201 ->get ('key2 ' )
202- ->renameKey ('key2 ' , 'key3 ' )
202+ ->renameKey ('key2 ' , 'key3 ' )
203203 ->get ('key3 ' )
204- ->renameNx ('key3 ' , 'key1 ' )
205- ->renameKey ('key3 ' , 'key2 ' )
204+ ->renameNx ('key3 ' , 'key1 ' )
205+ ->renameKey ('key3 ' , 'key2 ' )
206206 ->incr ('key2 ' , 5 )
207207 ->get ('key2 ' )
208208 ->decr ('key2 ' , 5 )
@@ -253,7 +253,7 @@ function test2($r, $type) {
253253 $ ret = $ r ->multi ($ type )
254254 ->randomKey ()
255255 ->exec ();
256-
256+
257257 assert (is_array ($ ret ) && count ($ ret ) === 1 );
258258 assert (is_string ($ ret [0 ]));
259259
@@ -270,7 +270,6 @@ function test2($r, $type) {
270270 $ i = 0 ;
271271 assert (is_array ($ ret ));
272272 assert (is_long ($ ret [$ i ++]));
273- var_dump ($ ret );
274273 assert (is_array ($ ret [$ i ]) && count ($ ret [$ i ]) === 3 ); // mget
275274 $ i ++;
276275 assert ($ ret [$ i ++] === TRUE ); // mset always returns TRUE
@@ -282,29 +281,53 @@ function test2($r, $type) {
282281
283282 /* lists */
284283 $ ret = $ r ->multi ($ type )
285- ->rpush ('lkey ' , 'lvalue ' )
286- ->lpush ('lkey ' , 'lvalue ' )
287- ->lpush ('lkey ' , 'lvalue ' )
288- ->lpush ('lkey ' , 'lvalue ' )
289- ->lpush ('lkey ' , 'lvalue ' )
290- ->lpush ('lkey ' , 'lvalue ' )
291- ->rpoplpush ('lkey ' , 'lDest ' )
292- ->lGetRange ('lDest ' , 0 , -1 )
293- ->lpop ('lkey ' )
294- ->llen ('lkey ' )
295- ->lRemove ('lkey ' , 'lvalue ' , 3 )
296- ->llen ('lkey ' )
297- ->lget ('lkey ' , 0 )
298- ->lGetRange ('lkey ' , 0 , -1 )
299- ->lSet ('lkey ' , 1 , "newValue " ) /* check errors on key not exists */
300- ->lGetRange ('lkey ' , 0 , -1 )
301- ->llen ('lkey ' )
302- ->exec ();
303-
304- var_dump ($ ret );
284+ ->delete ('lkey ' , 'lDest ' )
285+ ->rpush ('lkey ' , 'lvalue ' )
286+ ->lpush ('lkey ' , 'lvalue ' )
287+ ->lpush ('lkey ' , 'lvalue ' )
288+ ->lpush ('lkey ' , 'lvalue ' )
289+ ->lpush ('lkey ' , 'lvalue ' )
290+ ->lpush ('lkey ' , 'lvalue ' )
291+ ->rpoplpush ('lkey ' , 'lDest ' )
292+ ->lGetRange ('lDest ' , 0 , -1 )
293+ ->lpop ('lkey ' )
294+ ->llen ('lkey ' )
295+ ->lRemove ('lkey ' , 'lvalue ' , 3 )
296+ ->llen ('lkey ' )
297+ ->lget ('lkey ' , 0 )
298+ ->lGetRange ('lkey ' , 0 , -1 )
299+ ->lSet ('lkey ' , 1 , "newValue " ) /* check errors on key not exists */
300+ ->lGetRange ('lkey ' , 0 , -1 )
301+ ->llen ('lkey ' )
302+ ->exec ();
303+
304+ assert (is_array ($ ret ));
305+ $ i = 0 ;
306+ assert ($ ret [$ i ] >= 0 && $ ret [$ i ] <= 2 ); // delete
307+ $ i ++;
308+ assert ($ ret [$ i ++] === 1 ); // 1 value
309+ assert ($ ret [$ i ++] === 2 ); // 2 values
310+ assert ($ ret [$ i ++] === 3 ); // 3 values
311+ assert ($ ret [$ i ++] === 4 ); // 4 values
312+ assert ($ ret [$ i ++] === 5 ); // 5 values
313+ assert ($ ret [$ i ++] === 6 ); // 6 values
314+ assert ($ ret [$ i ++] === 'lvalue ' );
315+ assert ($ ret [$ i ++] === array ('lvalue ' )); // 1 value only in lDest
316+ assert ($ ret [$ i ++] === 'lvalue ' ); // now 4 values left
317+ assert ($ ret [$ i ++] === 4 );
318+ assert ($ ret [$ i ++] === 3 ); // removing 3 elements.
319+ assert ($ ret [$ i ++] === 1 ); // length is now 1
320+ assert ($ ret [$ i ++] === 'lvalue ' ); // this is the head
321+ assert ($ ret [$ i ++] === array ('lvalue ' )); // 1 value only in lkey
322+ assert ($ ret [$ i ++] === FALSE ); // can't set list[1] if we only have a single value in it.
323+ assert ($ ret [$ i ++] === array ('lvalue ' )); // the previous error didn't touch anything.
324+ assert ($ ret [$ i ++] === 1 ); // the previous error didn't change the length
325+ assert (count ($ ret ) === $ i );
326+
305327
306328 /* sets */
307329 $ ret = $ r ->multi ($ type )
330+ ->delete ('skey1 ' , 'skey2 ' , 'skeydest ' , 'skeyUnion ' , 'sDiffDest ' )
308331 ->sadd ('skey1 ' , 'sValue1 ' )
309332 ->sadd ('skey1 ' , 'sValue2 ' )
310333 ->sadd ('skey1 ' , 'sValue3 ' )
@@ -314,7 +337,7 @@ function test2($r, $type) {
314337 ->sadd ('skey2 ' , 'sValue2 ' )
315338
316339 ->sSize ('skey1 ' )
317- ->sremove ('skey1 ' , 'sValue2 ' )
340+ ->sRemove ('skey1 ' , 'sValue2 ' )
318341 ->sSize ('skey1 ' )
319342 ->sMove ('skey1 ' , 'skey2 ' , 'sValue4 ' )
320343 ->sSize ('skey2 ' )
@@ -324,17 +347,66 @@ function test2($r, $type) {
324347 ->sInter ('skey1 ' , 'skey2 ' )
325348 ->sInterStore ('skeydest ' , 'skey1 ' , 'skey2 ' )
326349 ->sMembers ('skeydest ' )
327- ->sPop ('skey2 ' )
328- ->sSize ('skey2 ' )
329350 ->sUnion ('skey2 ' , 'skeydest ' )
330351 ->sUnionStore ('skeyUnion ' , 'skey2 ' , 'skeydest ' )
331352 ->sMembers ('skeyUnion ' )
332353 ->sDiff ('skey1 ' , 'skey2 ' )
333354 ->sDiffStore ('sDiffDest ' , 'skey1 ' , 'skey2 ' )
334355 ->sMembers ('sDiffDest ' )
356+ ->sPop ('skey2 ' )
357+ ->sSize ('skey2 ' )
335358 ->exec ();
336- var_dump ($ ret );
337359
360+ $ i = 0 ;
361+ assert (is_array ($ ret ));
362+ assert (is_long ($ ret [$ i ]) && $ ret [$ i ] >= 0 && $ ret [$ i ] <= 5 ); $ i ++; // deleted at most 5 values.
363+ assert ($ ret [$ i ++] === TRUE ); // skey1 now has 1 element.
364+ assert ($ ret [$ i ++] === TRUE ); // skey1 now has 2 elements.
365+ assert ($ ret [$ i ++] === TRUE ); // skey1 now has 3 elements.
366+ assert ($ ret [$ i ++] === TRUE ); // skey1 now has 4 elements.
367+
368+ assert ($ ret [$ i ++] === TRUE ); // skey2 now has 1 element.
369+ assert ($ ret [$ i ++] === TRUE ); // skey2 now has 2 elements.
370+
371+ assert ($ ret [$ i ++] === 4 );
372+ assert ($ ret [$ i ++] === TRUE ); // we did remove that value.
373+ assert ($ ret [$ i ++] === 3 ); // now 3 values only.
374+ assert ($ ret [$ i ++] === TRUE ); // the move did succeed.
375+ assert ($ ret [$ i ++] === 3 ); // sKey2 now has 3 values.
376+ assert ($ ret [$ i ++] === TRUE ); // sKey2 does contain sValue4.
377+ foreach (array ('sValue1 ' , 'sValue3 ' ) as $ k ) { // sKey1 contains sValue1 and sValue3.
378+ assert (in_array ($ k , $ ret [$ i ]));
379+ }
380+ assert (count ($ ret [$ i ++]) === 2 );
381+ foreach (array ('sValue1 ' , 'sValue2 ' , 'sValue4 ' ) as $ k ) { // sKey2 contains sValue1, sValue2, and sValue4.
382+ assert (in_array ($ k , $ ret [$ i ]));
383+ }
384+ assert (count ($ ret [$ i ++]) === 3 );
385+ assert ($ ret [$ i ++] === array ('sValue1 ' )); // intersection
386+ assert ($ ret [$ i ++] === 1 ); // intersection + store → 1 value in the destination set.
387+ assert ($ ret [$ i ++] === array ('sValue1 ' )); // sinterstore destination contents
388+
389+ foreach (array ('sValue1 ' , 'sValue2 ' , 'sValue4 ' ) as $ k ) { // (skeydest U sKey2) contains sValue1, sValue2, and sValue4.
390+ assert (in_array ($ k , $ ret [$ i ]));
391+ }
392+ assert (count ($ ret [$ i ++]) === 3 ); // union size
393+
394+ assert ($ ret [$ i ++] === 3 ); // unionstore size
395+ foreach (array ('sValue1 ' , 'sValue2 ' , 'sValue4 ' ) as $ k ) { // (skeyUnion) contains sValue1, sValue2, and sValue4.
396+ assert (in_array ($ k , $ ret [$ i ]));
397+ }
398+ assert (count ($ ret [$ i ++]) === 3 ); // skeyUnion size
399+
400+ assert ($ ret [$ i ++] === array ('sValue3 ' )); // diff skey1, skey2 : only sValue3 is not shared.
401+ assert ($ ret [$ i ++] === 1 ); // sdiffstore size == 1
402+ assert ($ ret [$ i ++] === array ('sValue3 ' )); // contents of sDiffDest
403+
404+ assert (in_array ($ ret [$ i ++], array ('sValue1 ' , 'sValue2 ' , 'sValue4 ' ))); // we removed an element from sKey2
405+ assert ($ ret [$ i ++] === 2 ); // sKey2 now has 2 elements only.
406+
407+ assert (count ($ ret ) === $ i );
408+
409+ return ;
338410 /* sets */
339411 $ ret = $ r ->multi ($ type )
340412 ->zadd ('zkey1 ' , 1 , 'zValue1 ' )
@@ -357,17 +429,17 @@ function test2($r, $type) {
357429 ->zadd ('zkey2 ' , 5 , 'zValue5 ' )
358430 ->zadd ('zkey2 ' , 2 , 'zValue2 ' )
359431 //->zRange('zkey1', 'zkey2')
360- ->zInter ('zInter ' , array ('zkey1 ' , 'zkey2 ' ))
432+ ->zInter ('zInter ' , array ('zkey1 ' , 'zkey2 ' ))
361433 ->zRange ('zkey1 ' , 0 , -1 )
362434 ->zRange ('zkey2 ' , 0 , -1 )
363435 ->zRange ('zInter ' , 0 , -1 )
364- ->zInter ('zUnion ' , array ('zkey1 ' , 'zkey2 ' ))
436+ ->zInter ('zUnion ' , array ('zkey1 ' , 'zkey2 ' ))
365437 ->zRange ('zUnion ' , 0 , -1 )
366438 ->zadd ('zkey5 ' , 5 , 'zValue5 ' )
367439 ->zIncrBy ('zkey5 ' , 3 , 'zValue5 ' ) /* fix this */
368440 ->zScore ('zkey5 ' , 'zValue5 ' )
369441 ->exec ();
370- var_dump ($ ret );
442+ // var_dump($ret);
371443
372444 /* hash */
373445 $ ret = $ r ->multi ($ type )
@@ -383,19 +455,20 @@ function test2($r, $type) {
383455 ->hgetall ('hkey1 ' ) /* bug */
384456 //->hincrby()
385457 ->exec ();
386- var_dump ($ ret );
458+ // var_dump($ret);
459+
387460}
388461
389462
390463$ count = 10000 ;
391- $ count = 1 ;
464+ $ count = 10 ;
392465
393466for ($ i = 1 ; $ i <= $ count ; $ i ++) {
394- // test1($r, Redis::MULTI);
395- // test1($r, Redis::PIPELINE);
467+ test1 ($ r , Redis::MULTI );
468+ test1 ($ r , Redis::PIPELINE );
396469
397470 test2 ($ r , Redis::MULTI );
398- // test2($r, Redis::PIPELINE);
471+ test2 ($ r , Redis::PIPELINE );
399472 /*
400473 $r->multi(Redis::MULTI)
401474 ->get('x')
0 commit comments