for {set j [r llen mylist]}{$j < $startlen}{incr j}{
set str [randomInt 9223372036854775807]
r rpush mylist $str
lappend mylist $str
}
}
}
}
}
}
start_server {
tags {list ziplist}
overrides {
"list-max-ziplist-value" 200000
"list-max-ziplist-entries" 256
}
}{
test {Explicit regression for a list bug}{
set mylist {49376042582 {BkG2o\pIC]4YYJa9cJ4GWZalG[4tin;1D2whSkCOW`mX;SFXGyS8sedcff3fQI^tgPCC@^Nu1J6o]meM@Lko]t_jRyo<xSJ1oObDYd`ppZuW6P@fS278YaOx=s6lvdFlMbP0[SbkI^Kr\HBXtuFaA^mDx:yzS4a[skiiPWhT<nNfAf=aQVfclcuwDrfe;iVuKdNvB9kbfq>tK?tH[\EvWqS]b`o2OCtjg:?nUTwdjpcUm]y:pg5q24q7LlCOwQE^}}
r del l
r rpush l [lindex $mylist 0]
r rpush l [lindex $mylist 1]
assert_equal [r lindex l 0][lindex $mylist 0]
assert_equal [r lindex l 1][lindex $mylist 1]
}
tags {slow}{
test {ziplist implementation: value encoding and backlink}{
for {set j 0}{$j < 100}{incr j}{
r del l
set l {}
for {set i 0}{$i < 200}{incr i}{
randpath {
set data [string repeat x [randomInt 100000]]
}{
set data [randomInt 65536]
}{
set data [randomInt 4294967296]
}{
set data [randomInt 18446744073709551616]
}
lappend l $data
r rpush l $data
}
assert_equal [llength $l][r llen l]
# Traverse backward
for {set i 199}{$i >= 0}{incr i -1}{
if {[lindex $l $i] ne [r lindex l $i]}{
assert_equal [lindex $l $i][r lindex l $i]
}
}
}
}
test {ziplist implementation: encoding stress testing}{
# We need a value larger than list-max-ziplist-value to make sure
source "tests/unit/type/list-common.tcl"
# the list has the right encoding when it is swapped in again.
array set largevalue {}
set largevalue(ziplist)"hello"
set largevalue(linkedlist)[string repeat "hello" 4]
test {LPUSH, RPUSH, LLENGTH, LINDEX - ziplist}{
test {LPUSH, RPUSH, LLENGTH, LINDEX - ziplist}{
# first lpush then rpush
# first lpush then rpush
...
@@ -671,38 +667,6 @@ start_server {
...
@@ -671,38 +667,6 @@ start_server {
assert_equal {}[trim_list $type 0 -6]
assert_equal {}[trim_list $type 0 -6]
}
}
tags {"slow"}{
test "LTRIM stress testing - $type"{
set mylist {}
set startlen 32
r del mylist
# Start with the large value to ensure the
# right encoding is used.
r rpush mylist $large
lappend mylist $large
for {set i 0}{$i < $startlen}{incr i}{
set str [randomInt 9223372036854775807]
r rpush mylist $str
lappend mylist $str
}
for {set i 0}{$i < 1000}{incr i}{
set min [expr {int(rand()*$startlen)}]
set max [expr {$min+int(rand()*$startlen)}]
set mylist [lrange $mylist $min $max]
r ltrim mylist $min $max
assert_equal $mylist [r lrange mylist 0 -1]
for {set j [r llen mylist]}{$j < $startlen}{incr j}{
set str [randomInt 9223372036854775807]
r rpush mylist $str
lappend mylist $str
}
}
}
}
}
}
foreach {type large}[array get largevalue]{
foreach {type large}[array get largevalue]{
...
@@ -760,76 +724,5 @@ start_server {
...
@@ -760,76 +724,5 @@ start_server {
assert_equal 1 [r lrem myotherlist 1 2]
assert_equal 1 [r lrem myotherlist 1 2]
assert_equal 3 [r llen myotherlist]
assert_equal 3 [r llen myotherlist]
}
}
}
}
start_server {
tags {list ziplist}
overrides {
"list-max-ziplist-value" 200000
"list-max-ziplist-entries" 256
}
}{
test {Explicit regression for a list bug}{
set mylist {49376042582 {BkG2o\pIC]4YYJa9cJ4GWZalG[4tin;1D2whSkCOW`mX;SFXGyS8sedcff3fQI^tgPCC@^Nu1J6o]meM@Lko]t_jRyo<xSJ1oObDYd`ppZuW6P@fS278YaOx=s6lvdFlMbP0[SbkI^Kr\HBXtuFaA^mDx:yzS4a[skiiPWhT<nNfAf=aQVfclcuwDrfe;iVuKdNvB9kbfq>tK?tH[\EvWqS]b`o2OCtjg:?nUTwdjpcUm]y:pg5q24q7LlCOwQE^}}
r del l
r rpush l [lindex $mylist 0]
r rpush l [lindex $mylist 1]
assert_equal [r lindex l 0][lindex $mylist 0]
assert_equal [r lindex l 1][lindex $mylist 1]
}
tags {slow}{
test {ziplist implementation: value encoding and backlink}{
for {set j 0}{$j < 100}{incr j}{
r del l
set l {}
for {set i 0}{$i < 200}{incr i}{
randpath {
set data [string repeat x [randomInt 100000]]
}{
set data [randomInt 65536]
}{
set data [randomInt 4294967296]
}{
set data [randomInt 18446744073709551616]
}
lappend l $data
r rpush l $data
}
assert_equal [llength $l][r llen l]
# Traverse backward
for {set i 199}{$i >= 0}{incr i -1}{
if {[lindex $l $i] ne [r lindex l $i]}{
assert_equal [lindex $l $i][r lindex l $i]
}
}
}
}
test {ziplist implementation: encoding stress testing}{