redict/tests/unit
Oran Agra 65a3307bc9 EXEC always fails with EXECABORT and multi-state is cleared
In order to support the use of multi-exec in pipeline, it is important that
MULTI and EXEC are never rejected and it is easy for the client to know if the
connection is still in multi state.

It was easy to make sure MULTI and DISCARD never fail (done by previous
commits) since these only change the client state and don't do any actual
change in the server, but EXEC is a different story.

Since in the past, it was possible for clients to handle some EXEC errors and
retry the EXEC, we now can't affort to return any error on EXEC other than
EXECABORT, which now carries with it the real reason for the abort too.

Other fixes in this commit:
- Some checks that where performed at the time of queuing need to be re-
  validated when EXEC runs, for instance if the transaction contains writes
  commands, it needs to be aborted. there was one check that was already done
  in execCommand (-READONLY), but other checks where missing: -OOM, -MISCONF,
  -NOREPLICAS, -MASTERDOWN
- When a command is rejected by processCommand it was rejected with addReply,
  which was not recognized as an error in case the bad command came from the
  master. this will enable to count or MONITOR these errors in the future.
- make it easier for tests to create additional (non deferred) clients.
- add tests for the fixes of this commit.
2020-06-23 12:01:33 +03:00
..
moduleapi Try to fix time-sensitive tests in blockonkey.tcl 2020-04-03 14:51:45 +03:00
type Merge pull request #7134 from guybe7/xstate_command 2020-04-28 16:31:00 +02:00
acl.tcl Regression test for #7011. 2020-03-20 12:52:06 +01:00
aofrw.tcl AOF: run tests with preamble off when it makes sense. 2018-03-25 13:03:38 +02:00
auth.tcl ACL: AUTH + no default user password raises an error. 2019-01-17 18:30:23 +01:00
bitfield.tcl Fix BITFIELD_RO test. 2020-03-23 12:02:12 +01:00
bitops.tcl Regression test for #3282. 2016-06-15 11:49:49 +02:00
dump.tcl ACL: implement resetpass directive and adjust test. 2019-01-18 11:26:32 +01:00
expire.tcl AOF: append origin SET if no expire option 2020-06-03 17:55:18 +08:00
geo.tcl Revert "Geo: output 10 chars of geohash, not 11." 2019-12-18 12:54:46 +01:00
hyperloglog.tcl HyperLogLog: speedup fuzz test. 2019-03-15 17:13:19 +01:00
introspection-2.tcl fix #5024 - commandstats for multi-exec were logged as EXEC. 2018-09-30 12:43:11 +03:00
introspection.tcl Support setcpuaffinity on linux/bsd 2020-05-02 21:19:47 +08:00
keyspace.tcl Test: MOVE expire test improved. 2015-09-14 12:35:55 +02:00
latency-monitor.tcl Test: regression test for latency expire events logging bug. 2017-11-24 18:33:31 +01:00
lazyfree.tcl Test: basic lazyfree unit test. 2015-10-09 09:47:17 +02:00
limits.tcl TLS: Connections refactoring and TLS support. 2019-10-07 21:06:13 +03:00
maxmemory.tcl make replication tests more stable on slow machines 2019-05-05 08:25:01 +03:00
memefficiency.tcl fix a rare active defrag edge case bug leading to stagnation 2020-05-20 16:04:42 +03:00
multi.tcl EXEC always fails with EXECABORT and multi-state is cleared 2020-06-23 12:01:33 +03:00
obuf-limits.tcl Fix test false positive introduced by threaded I/O. 2019-05-13 17:27:10 +02:00
other.tcl tests: each test client work on a distinct port range 2020-05-26 11:17:08 +03:00
pendingquerybuf.tcl Slave removal: remove slave from top-level tests descriptions. 2018-09-11 15:32:28 +02:00
printver.tcl Print version info before running the test 2011-05-20 11:44:54 +02:00
protocol.tcl TLS: Connections refactoring and TLS support. 2019-10-07 21:06:13 +03:00
pubsub.tcl pubsub: Return integers for NUMSUB, not strings 2014-08-08 11:19:37 +02:00
quit.tcl Add tests for OK on QUIT 2010-10-15 12:54:53 +02:00
scan.tcl Implement SCAN cursor [TYPE type] modifier suggested in issue #6107. 2019-05-22 16:39:04 +01:00
scripting.tcl XREAD and XREADGROUP should not be allowed from scripts when BLOCK option is being used 2020-03-26 15:46:31 +02:00
slowlog.tcl Test: fix slowlog test false positive. 2019-05-14 16:55:52 +02:00
sort.tcl Config: Add quicklist, remove old list options 2015-01-02 11:16:10 -05:00
tls.tcl TLS: Fix test failures on recent Debian/Ubuntu. 2020-05-10 17:38:04 +03:00
tracking.tcl Regression test for #7249. 2020-05-14 11:27:31 +02:00
wait.tcl TLS: Connections refactoring and TLS support. 2019-10-07 21:06:13 +03:00