summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/tests/unit/aofrw.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/tests/unit/aofrw.tcl')
-rw-r--r--examples/redis-unstable/tests/unit/aofrw.tcl232
1 files changed, 0 insertions, 232 deletions
diff --git a/examples/redis-unstable/tests/unit/aofrw.tcl b/examples/redis-unstable/tests/unit/aofrw.tcl
deleted file mode 100644
index 11324e1..0000000
--- a/examples/redis-unstable/tests/unit/aofrw.tcl
+++ /dev/null
@@ -1,232 +0,0 @@
-# This unit has the potential to create huge .reqres files, causing log-req-res-validator.py to run for a very long time...
-# Since this unit doesn't do anything worth validating, reply_schema-wise, we decided to skip it
-start_server {tags {"aofrw external:skip logreqres:skip"} overrides {save {}}} {
- # Enable the AOF
- r config set appendonly yes
- r config set auto-aof-rewrite-percentage 0 ; # Disable auto-rewrite.
- waitForBgrewriteaof r
-
- foreach rdbpre {yes no} {
- r config set aof-use-rdb-preamble $rdbpre
- test "AOF rewrite during write load: RDB preamble=$rdbpre" {
- # Start a write load for 10 seconds
- set master [srv 0 client]
- set master_host [srv 0 host]
- set master_port [srv 0 port]
- set load_handle0 [start_write_load $master_host $master_port 10]
- set load_handle1 [start_write_load $master_host $master_port 10]
- set load_handle2 [start_write_load $master_host $master_port 10]
- set load_handle3 [start_write_load $master_host $master_port 10]
- set load_handle4 [start_write_load $master_host $master_port 10]
-
- # Make sure the instance is really receiving data
- wait_for_condition 50 100 {
- [r dbsize] > 0
- } else {
- fail "No write load detected."
- }
-
- # After 3 seconds, start a rewrite, while the write load is still
- # active.
- after 3000
- r bgrewriteaof
- waitForBgrewriteaof r
-
- # Let it run a bit more so that we'll append some data to the new
- # AOF.
- after 1000
-
- # Stop the processes generating the load if they are still active
- stop_write_load $load_handle0
- stop_write_load $load_handle1
- stop_write_load $load_handle2
- stop_write_load $load_handle3
- stop_write_load $load_handle4
-
- # Make sure no more commands processed, before taking debug digest
- wait_load_handlers_disconnected
-
- # Get the data set digest
- set d1 [debug_digest]
-
- # Load the AOF
- r debug loadaof
- set d2 [debug_digest]
-
- # Make sure they are the same
- assert {$d1 eq $d2}
- }
- }
-}
-
-start_server {tags {"aofrw external:skip debug_defrag:skip"} overrides {aof-use-rdb-preamble no}} {
- test {Turning off AOF kills the background writing child if any} {
- r config set appendonly yes
- waitForBgrewriteaof r
-
- # start a slow AOFRW
- r set k v
- r config set rdb-key-save-delay 10000000
- r bgrewriteaof
-
- # disable AOF and wait for the child to be killed
- r config set appendonly no
- wait_for_condition 50 100 {
- [string match {*Killing*AOF*child*} [exec tail -5 < [srv 0 stdout]]]
- } else {
- fail "Can't find 'Killing AOF child' into recent logs"
- }
- r config set rdb-key-save-delay 0
- }
-
- foreach d {string int} {
- foreach e {listpack quicklist} {
- test "AOF rewrite of list with $e encoding, $d data" {
- r flushall
- if {$e eq {listpack}} {
- r config set list-max-listpack-size -2
- set len 10
- } else {
- r config set list-max-listpack-size 10
- set len 1000
- }
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r lpush key $data
- }
- assert_equal [r object encoding key] $e
- set d1 [debug_digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [debug_digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
-
- foreach d {string int} {
- foreach e {intset hashtable} {
- test "AOF rewrite of set with $e encoding, $d data" {
- r flushall
- if {$e eq {intset}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r sadd key $data
- }
- if {$d ne {string}} {
- assert_equal [r object encoding key] $e
- }
- set d1 [debug_digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [debug_digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
-
- foreach d {string int} {
- foreach e {listpack hashtable} {
- test "AOF rewrite of hash with $e encoding, $d data" {
- r flushall
- if {$e eq {listpack}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r hset key $data $data
- }
- assert_equal [r object encoding key] $e
- set d1 [debug_digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [debug_digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
-
- foreach d {string int} {
- foreach e {listpack skiplist} {
- test "AOF rewrite of zset with $e encoding, $d data" {
- r flushall
- if {$e eq {listpack}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r zadd key [expr rand()] $data
- }
- assert_equal [r object encoding key] $e
- set d1 [debug_digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [debug_digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
-
- test "AOF rewrite functions" {
- r flushall
- r FUNCTION LOAD {#!lua name=test
- redis.register_function('test', function() return 1 end)
- }
- r bgrewriteaof
- waitForBgrewriteaof r
- r function flush
- r debug loadaof
- assert_equal [r fcall test 0] 1
- r FUNCTION LIST
- } {{library_name test engine LUA functions {{name test description {} flags {}}}}}
-
- test {BGREWRITEAOF is delayed if BGSAVE is in progress} {
- r flushall
- r set k v
- r config set rdb-key-save-delay 10000000
- r bgsave
- assert_match {*scheduled*} [r bgrewriteaof]
- assert_equal [s aof_rewrite_scheduled] 1
- r config set rdb-key-save-delay 0
- catch {exec kill -9 [get_child_pid 0]}
- while {[s aof_rewrite_scheduled] eq 1} {
- after 100
- }
- }
-
- test {BGREWRITEAOF is refused if already in progress} {
- r config set aof-use-rdb-preamble yes
- r config set rdb-key-save-delay 10000000
- catch {
- r bgrewriteaof
- r bgrewriteaof
- } e
- assert_match {*ERR*already*} $e
- r config set rdb-key-save-delay 0
- catch {exec kill -9 [get_child_pid 0]}
- }
-}