Commit Graph
788 Commits
Author SHA1 Message Date
antirez b1aa4a5c8b CG: test XGROUPREAD abilities. 2018-03-15 12:54:10 +01:00
antirez e780693add CG: test group creation. 2018-03-15 12:54:10 +01:00
antirez dfff06af91 CG: More specific duplicated group error. 2018-03-15 12:54:10 +01:00
antirez 8bfc141157 Cluster: add test for the nofailover flag. 2018-03-14 16:30:32 +01:00
antirez a8d678d26d Fix integration test NOREPLICAS error time dependent false positive. 2018-01-24 10:10:48 +01:00
antirez 7eb5bdadcd Test: MIGRATE AUTH test added.
Related to #2507.
2018-01-09 18:49:19 +01:00
antirez f489746d4b Regression test for #4505 (Lua AUX field loading). 2017-12-04 10:26:02 +01:00
antirez 62836254be Streams: add some initial test for XREVRANGE. 2017-12-01 10:24:25 +01:00
antirez 6c3b947799 Streams: fix XREAD test broken after previous tests improvements.
10% of times the data is not just "item 0" but there is also the
"otherfield" part. Use [lrange] to avoid the issue.
This commit fixes #4416.
2017-12-01 10:24:24 +01:00
antirez 503e3053ee Streams: move ID ms/seq separator from '.' to '-'
After checking with the community via Twitter (here:
https://twitter.com/antirez/status/915130876861788161) the verdict was to
use ":". However I later realized, after users lamented the fact that
it's hard to copy IDs just with double click, that this was the reason
why I moved to "." in the first instance. Fortunately "-", that was the
other option with most votes, also gets selected with double click on
most terminal applications on Linux and MacOS.

So my reasoning was:

1) We can't retain "." because it's actually confusing to newcomers, it
looks like a floating number, people may be tricked into thinking they
can order IDs numerically as floats.

2) Moving to a double-click-to-select format is much better. People will
work with such IDs for long time when coding / debugging. Why making now
a choice that will impact this for the next years?

The only other viable option was "-", and that's what I did. Thanks.
2017-12-01 10:24:24 +01:00
antirez aa4a55ac97 Streams: add XADD + MAXLEN test. 2017-12-01 10:24:24 +01:00
antirez e05a901cdc Streams: modify tests to stress compression. 2017-12-01 10:24:24 +01:00
antirez a2d7e004d4 Streams: tests for blocking and non-blocking XREAD. 2017-12-01 10:24:24 +01:00
antirez 6df222cbcd Streams: XRANGE fuzz testing. 2017-12-01 10:24:24 +01:00
antirez aa9cff0400 Streams: more advanced XADD and XRANGE tests. 2017-12-01 10:24:24 +01:00
antirez d9a50e2d94 Streams: basic XADD tests. 2017-12-01 10:24:24 +01:00
antirez fbc1d53416 Regression test: Slave restart with EVALSHA in backlog issue #4483. 2017-11-30 18:37:10 +01:00
Salvatore Sanfilippo 7bb1fe976b Merge pull request #4215 from lamby/correct-faield-spelling
Correct spelling of "faield".
2017-11-28 18:08:32 +01:00
antirez f56b7aaef2 Test: regression test for latency expire events logging bug.
Regression for #4452.
2017-11-24 18:33:31 +01:00
Oran Agra 07e0f0f72f fix string to double conversion, stopped parsing on \0 even if the string has more data.
getLongLongFromObject calls string2ll which has this line:
/* Return if not all bytes were used. */
so if you pass an sds with 3 characters "1\01" it will fail.

but getLongDoubleFromObject calls strtold, and considers it ok if eptr[0]==`\0`
i.e. if the end of the string found by strtold ends with null terminator

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> setrange a 2 2
(integer) 3
127.0.0.1:6379> get a
"1\x002"
127.0.0.1:6379> incrbyfloat a 2
"3"
127.0.0.1:6379> get a
"3"
2017-11-23 17:15:27 +02:00
antirez a07c0db3af Regression test for issue #4391. 2017-10-30 13:45:46 +01:00
Chris Lamb 3666698eeb Correct spelling of "faield". 2017-08-12 22:21:03 -07:00
antirez b525305f9d Fix GEORADIUS edge case with huge radius.
This commit closes issue #3698, at least for now, since the root cause
was not fixed: the bounding box function, for huge radiuses, does not
return a correct bounding box, there are points still within the radius
that are left outside.

So when using GEORADIUS queries with radiuses in the order of 5000 km or
more, it was possible to see, at the edge of the area, certain points
not correctly reported.

Because the bounding box for now was used just as an optimization, and
such huge radiuses are not common, for now the optimization is just
switched off when the radius is near such magnitude.

Three test cases found by the Continuous Integration test were added, so
that we can easily trigger the bug again, both for regression testing
and in order to properly fix it as some point in the future.
2017-07-03 19:38:31 +02:00
xuzhou 809a73be97 Fix set with ex/px option when propagated to aof 2017-06-16 17:51:38 +08:00
antirez 6b1c3f89ab SLOWLOG: log offending client address and name. 2017-06-15 12:57:54 +02:00
antirez 78cfb8474b Regression test for #3899 fixed. 2017-04-28 11:16:39 +02:00
antirez 167765ed32 Regression test for PSYNC2 issue #3899 added.
Experimentally verified that it can trigger the issue reverting the fix.
At least on my system... Being the bug time/backlog dependant, it is
very hard to tell if this test will be able to trigger the problem
consistently, however even if it triggers the problem once in a while,
we'll see it in the CI environment at http://ci.redis.io.
2017-04-28 10:37:07 +02:00
antirez 86b0650a4d Defrag: test currently disabled, too many false positives.
Related to #3786.
2017-04-22 15:59:57 +02:00
antirez 72dbb1d095 Defrag: fix test false positive.
Apparently 1.4 is too low compared to what you get in certain setups
(including mine). I raised it to 1.55 that hopefully is still enough to
test that the fragmentation went down from 1.7 but without incurring in
issues, however the test setup may be still fragile so certain times this
may lead to false positives again, it's hard to test for these things
in a determinsitic way.

Related to #3786.
2017-04-22 13:21:41 +02:00
oranagra f07d53f783 add test for active defrag 2017-04-22 13:17:09 +02:00
antirez a2e3dc0a1d Test: fix, hopefully, false PSYNC failure like in issue #2715.
And many other related Github issues... all reporting the same problem.
There was probably just not enough backlog in certain unlucky runs.
I'll ask people that can reporduce if they see now this as fixed as
well.
2017-04-14 17:53:11 +02:00
Oran Agra 499595f510 add LFU policies to the test suite, just for coverage 2017-03-15 01:05:15 -07:00
antirez 9df5191d0a Solaris fixes about tail usage and atomic vars.
Testing with Solaris C compiler (SunOS 5.11 11.2 sun4v sparc sun4v)
there were issues compiling due to atomicvar.h and running the
tests also failed because of "tail" usage not conform with Solaris
tail implementation. This commit fixes both the issues.
2017-02-22 13:08:21 +01:00
antirez 384ae4032d Test: replication-psync, wait more to detect write load.
Slow systems like the original Raspberry PI need more time
than 5 seconds to start the script and detect writes.
After fixing the Raspberry PI can pass the unit without issues.
2017-02-22 12:27:01 +01:00
antirez d0e1affa70 Test: fix conditional execution of HINCRBYFLOAT representation test. 2017-02-22 12:00:09 +01:00
antirez 29fbdde45f Geo: fuzzy test inconsistency report fixed to show all points.
We need to report all the points added into the set, not just the ones
matching the Tcl distance algo.
2016-12-20 12:22:11 +01:00
antirez 1ffd2f315b Fix test "server is up" detection after logging changes. 2016-12-19 16:49:58 +01:00
antirez 403ed3368a Writable slaves expires: unit test. 2016-12-13 16:28:12 +01:00
antirez 664cf834c1 Geo: improve fuzz test.
The test now uses more diverse radius sizes, especially sizes near or
greater the whole earth surface are used, that are known to trigger edge
cases. Moreover the PRNG seeding was probably resulting into the same
sequence tested over and over again, now seeding unsing the current unix
time in milliseconds.

Related to #3631.
2016-12-05 14:16:46 +01:00
antirez 02b570290e PSYNC2 test: check ability to resync after restart. 2016-11-29 11:15:16 +01:00
antirez 17c02cee7d PSYNC2 test: 20 seconds are enough... 2016-11-29 10:27:53 +01:00
antirez 855b0c05e7 PSYNC2 test: test added to the default tests. 2016-11-29 10:25:42 +01:00
antirez 49af69dfdd PSYNC2 test: modify the test for production. 2016-11-29 10:22:40 +01:00
antirez 5639ca070b PSYNC2: stop sending newlines to sub-slaves when master is down.
This actually includes two changes:

1) No newlines to take the master-slave link up when the upstream master
is down. Doing this is dangerous because the sub-slave often is received
replication protocol for an half-command, so can't receive newlines
without desyncing the replication link, even with the code in order to
cancel out the bytes that PSYNC2 was using. Moreover this is probably
also not needed/sane, because anyway the slave can keep serving
requests, and because if it's configured to don't serve stale data, it's
a good idea, actually, to break the link.

2) When a +CONTINUE with a different ID is received, we now break
connection with the sub-slaves: they need to be notified as well. This
was part of the original specification but for some reason it was not
implemented in the code, and was alter found as a PSYNC2 bug in the
integration testing.
2016-11-28 17:54:04 +01:00
antirez 893f757ebc PSYNC2: Test (WIP).
This is the PSYNC2 test that helped find issues in the code, and that
still can show a protocol desync from time to time. Work is in progress
in order to find the issue. For now the test is not enabled in "make
test" and must be run manually.
2016-11-28 10:13:24 +01:00
antirez eb5c80460e Test: WAIT tests added in wait.tcl unit. 2016-11-18 13:10:29 +01:00
antirez 47396311df Test: regression test for #3564 added. 2016-10-31 15:46:58 +01:00
antirez 96dad4da1f Fix SELECT test, broken cause change in error msg. 2016-10-14 15:48:11 +02:00
antirez cf5154f72e RDB AOF preamble: test it in the aofrw unit. 2016-08-24 15:39:39 +02:00
antirez 976c2425c4 Multiple GEORADIUS bugs fixed.
By grepping the continuous integration errors log a number of GEORADIUS
tests failures were detected.

Fortunately when a GEORADIUS failure happens, the test suite logs enough
information in order to reproduce the problem: the PRNG seed,
coordinates and radius of the query.

By reproducing the issues, three different bugs were discovered and
fixed in this commit. This commit also improves the already good
reporting of the fuzzer and adds the failure vectors as regression
tests.

The issues found:

1. We need larger squares around the poles in order to cover the area
requested by the user. There were already checks in order to use a
smaller step (larger squares) but the limit set (+/- 67 degrees) is not
enough in certain edge cases, so 66 is used now.

2. Even near the equator, when the search area center is very near the
edge of the square, the north, south, west or ovest square may not be
able to fully cover the specified radius. Now a test is performed at the
edge of the initial guessed search area, and larger squares are used in
case the test fails.

3. Because of rounding errors between Redis and Tcl, sometimes the test
signaled false positives. This is now addressed.

Whenever possible the original code was improved a bit in other ways. A
debugging example stanza was added in order to make the next debugging
session simpler when the next bug is found.
2016-07-27 11:34:25 +02:00