587 Commits

Author SHA1 Message Date
Salvatore Sanfilippo
8bacb6e0c9 Merge pull request #1775 from mattsta/fix-test-against-new-PID-format
Fix test framework to detect proper server PID
2014-05-26 17:56:58 +02:00
antirez
fd14e51048 Cluster test: catch FLUSHALL errors on node reset.
FLUSHALL will fail on read-only slaves, but there the command is not
needed in order to reset the instance with CLUSTER RESET so errors can
be ignored.
2014-05-26 11:00:11 +02:00
Matt Stancliff
f642944040 Fix test framework to detect proper server PID
Previously the PID format was:
[PID] Timestamp

But it recently changed to:
PID:X Timestamp

The tcl testing framework was grabbing the PID from \[\d+\], but
that's not valid anymore.

Now we grab the pid from "PID: <PID>" in the part of Redis startup
output to the right of the ASCII logo.
2014-05-23 13:54:29 -04:00
antirez
a1970d090a Cluster test: basic failover unit added. 2014-05-23 11:47:47 +02:00
antirez
d6fa9a31c3 Cluster test: move basic read/write test into a procedure. 2014-05-23 11:41:50 +02:00
antirez
789b41ee46 Cluster test: more reliable 01-faildet unit.
Do things in a sequence that prevents failover during failure detection.
2014-05-23 11:40:34 +02:00
antirez
894b8f7b94 Test: AOF test false positive when running in slow hosts.
The bug was triggered by running the test with Valgrind (which is a lot
slower and more sensible to timing issues) after the recent changes
that made Redis more promptly able to reply with the -LOADING error.
2014-05-22 16:05:03 +02:00
antirez
170a7dc749 Test: dump.tcl fixed for RESTORE new error msg. 2014-05-22 15:56:17 +02:00
Matt Stancliff
c5b960f5a0 Fix blocking operations from missing new lists
Behrad Zari discovered [1] and Josiah reported [2]: if you block
and wait for a list to exist, but the list creates from
a non-push command, the blocked client never gets notified.

This commit adds notification of blocked clients into
the DB layer and away from individual commands.

Lists can be created by [LR]PUSH, SORT..STORE, RENAME, MOVE,
and RESTORE.  Previously, blocked client notifications were
only triggered by [LR]PUSH.  Your client would never get
notified if a list were created by SORT..STORE or RENAME or
a RESTORE, etc.

Blocked client notification now happens in one unified place:
  - dbAdd() triggers notification when adding a list to the DB

Two new tests are added that fail prior to this commit.

All test pass.

Fixes #1668

[1]: https://groups.google.com/forum/#!topic/redis-db/k4oWfMkN1NU
[2]: #1668
2014-05-21 09:52:52 -04:00
antirez
7cc1e6c7a8 Regression test for issue #1764. 2014-05-20 16:20:16 +02:00
antirez
a1f9154dbf HyperLogLog regression test for issue #1762. 2014-05-19 15:44:04 +02:00
antirez
43ca660e33 Cluster test: better failure detection test and framework improvements. 2014-05-19 15:26:19 +02:00
antirez
18a2f12bc5 Cluster test: failure detection initial tests. 2014-05-19 11:39:15 +02:00
antirez
4b708f6f0b Cluster test: proper initialization at unit startup. 2014-05-19 11:24:15 +02:00
antirez
dcf52ec3d6 Cluster test: added function assert_cluster_state. 2014-05-14 15:21:57 +02:00
antirez
f866ae1e91 cluster.tcl: fix redis links leak in refresh_nodes_map. 2014-05-14 09:10:03 +02:00
antirez
43c3cb9a57 cluster.tcl: saner error handling.
Better handling of connection errors in order to update the table and
recovery, populate the startup nodes table after fetching the list of
nodes.

More work to do about it, it is still not as reliable as
redis-rb-cluster implementation which is the minimal reference
implementation for Redis Cluster clients.
2014-05-14 00:15:52 +02:00
antirez
3d4c02a555 redis.tcl: return I/O error message when peer closes connection. 2014-05-14 00:14:35 +02:00
antirez
6e41e9f596 Scripting test: check that Lua can call commands rewirting argv.
SPOP, tested in the new test, is among the commands rewritng the
client->argv argument vector (it gets rewritten as SREM) for command
replication purposes.

Because of recent optimizations to client->argv caching in the context
of the Lua internal Redis client, it is important to test for SPOP to be
callable from Lua without bad effects to the other commands.
2014-05-07 16:12:32 +02:00
antirez
8a72258fe9 Test: handle new osx 'leaks' error.
Sometimes the process is still there but no longer in a state that can
be checked (after being killed). This used to happen after a call to
SHUTDOWN NOSAVE in the scripting unit, causing a false positive.
2014-05-07 16:12:32 +02:00
antirez
b3e24e8606 Test: cluster/base, check that we can write/read from cluster. 2014-05-02 16:37:12 +02:00
antirez
a2e66ad128 Cluster: Tcl cluster client: handle MOVED/ASK. 2014-05-02 15:35:08 +02:00
antirez
6bfd9d131d Cluster: Tcl cluster client: slots-nodes map and close method.
Now the client is able to actually run commands in a Redis Cluster
assuming the slots->nodes map is stable.
2014-05-02 10:56:02 +02:00
antirez
b865ad41c8 Cluster: Tcl cluster client: build nodes representation. 2014-05-02 10:19:28 +02:00
antirez
bbaddc42ae Cluster: Tcl cluster client: get nodes description. 2014-05-02 09:55:27 +02:00
antirez
03f3698b59 Cluster: Tcl cluster client key -> hashslot. 2014-04-30 18:55:28 +02:00
antirez
99eb3ba709 Cluster test: Tcl cluster library initial skeleton. 2014-04-30 15:47:19 +02:00
antirez
05caa55af7 Cluster test: check for state=ok after slot allocation. 2014-04-30 09:29:03 +02:00
antirez
0935d95c5e Cluster test: slots allocation. 2014-04-29 18:40:43 +02:00
antirez
604cfb81c0 Cluster test: use 20 instances.
This makes tests a bit slower, but it is better to test things at a
decent scale instead of using just a few nodes, and for a few tests we
actually need so many nodes.
2014-04-29 16:20:43 +02:00
antirez
f21dee6537 Cluster / Sentinel test: instances count moved to run.tcl. 2014-04-29 16:17:15 +02:00
antirez
884ba0b897 Cluster test: config epoch conflict resolution. 2014-04-29 15:39:59 +02:00
antirez
8b8b76475d Cluster test: auto-discovery to form full mesh. 2014-04-29 15:00:11 +02:00
antirez
71a4f1ae00 Cluster test: check that every node has a different ID. 2014-04-29 10:42:32 +02:00
antirez
be4cf4d66c Cluster test: basic cluster nodes info access functions. 2014-04-29 10:42:17 +02:00
antirez
ba46f66826 Test: fixed scripting.tcl test false positive. 2014-04-24 21:44:32 +02:00
antirez
0d183da744 Redis Cluster test framework skeleton. 2014-04-24 18:01:41 +02:00
antirez
c102ad59e9 Sentinel test files / directories layout improved.
The test now runs in a self-contained directory.
The general abstractions to run the tests in an environment where
mutliple instances are executed at the same time was extrapolated into
instances.tcl, that will be reused to test Redis Cluster.
2014-04-24 11:08:22 +02:00
antirez
1ce3a4ff64 Test: spawn_instance now supports additional config. 2014-04-24 10:50:51 +02:00
Salvatore Sanfilippo
d7a561fbc7 Merge pull request #1677 from mattsta/expire-before-delete
Check key expiration before deleting
2014-04-23 16:13:49 +02:00
yoav
c8adbd0799 Merge remote-tracking branch 'upstream/unstable' into unstable 2014-04-22 10:01:21 +03:00
antirez
ed2cc684ab Fuzzy test for ZREMRANGEBYLEX added. 2014-04-18 13:02:16 +02:00
antirez
531fbda313 PFCOUNT multi-key test added. 2014-04-18 12:36:33 +02:00
antirez
00e9dc8b75 Sorted set lex ranges stress tester. 2014-04-17 10:25:58 +02:00
antirez
cd35352677 Basic ZRANGEBYLEX / ZLEXCOUNT tests. 2014-04-17 00:08:11 +02:00
antirez
20d49e3ac9 More HyperLogLog tests. 2014-04-16 09:17:38 +02:00
antirez
cd73060972 PFMERGE fixed to work with sparse encoding. 2014-04-14 16:09:32 +02:00
Matt Stancliff
daba106237 Add test for deleting an expired key
Verify proper expire-before-delete behavior.

This test passes with the expire-before-delete commit and fails
without it.
2014-04-10 18:32:19 -04:00
yoav
9af8168552 Fix eval usage in tests to conform with eval semantics 2014-04-06 17:20:01 +03:00
antirez
038f6c8221 Initial HyperLogLog tests. 2014-04-03 22:16:05 +02:00