]> git.saurik.com Git - redis.git/commitdiff
intset stress testing added, ziplist stress testing relocated in a more appropriate...
authorantirez <antirez@gmail.com>
Fri, 24 Sep 2010 09:15:06 +0000 (11:15 +0200)
committerantirez <antirez@gmail.com>
Fri, 24 Sep 2010 09:15:06 +0000 (11:15 +0200)
tests/unit/type/list.tcl
tests/unit/type/set.tcl

index e609865c4933915ef0c2fd21ccc1e51d45f2da34..4c131fc3774eb2953102dbbc5e6b89fe42288488 100644 (file)
@@ -604,63 +604,72 @@ start_server {
             assert_equal 3 [r llen myotherlist]
         }
 
-        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
+    }
+}
+
+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]
                     }
-                    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]
-                        }
+                    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} {
-                for {set j 0} {$j < 200} {incr j} {
-                    r del l
-                    set l {}
-                    set len [randomInt 400]
-                    for {set i 0} {$i < $len} {incr i} {
-                        set rv [randomValue]
-                        randpath {
-                            lappend l $rv
-                            r rpush l $rv
-                        } {
-                            set l [concat [list $rv] $l]
-                            r lpush l $rv
-                        }
+        test {ziplist implementation: encoding stress testing} {
+            for {set j 0} {$j < 200} {incr j} {
+                r del l
+                set l {}
+                set len [randomInt 400]
+                for {set i 0} {$i < $len} {incr i} {
+                    set rv [randomValue]
+                    randpath {
+                        lappend l $rv
+                        r rpush l $rv
+                    } {
+                        set l [concat [list $rv] $l]
+                        r lpush l $rv
                     }
-                    assert_equal [llength $l] [r llen l]
-                    for {set i 0} {$i < 200} {incr i} {
-                        if {[lindex $l $i] ne [r lindex l $i]} {
-                            assert_equal [lindex $l $i] [r lindex l $i]
-                        }
+                }
+                assert_equal [llength $l] [r llen l]
+                for {set i 0} {$i < 200} {incr i} {
+                    if {[lindex $l $i] ne [r lindex l $i]} {
+                        assert_equal [lindex $l $i] [r lindex l $i]
                     }
                 }
             }
index 0f9f6abebba0bce9a9f149fdf880ac151bb8a9c5..5608a6480546676c1e29a90b16debb8b7bd4de34 100644 (file)
@@ -295,4 +295,40 @@ start_server {
         r set x 10
         assert_error "ERR*wrong kind*" {r smove myset2 x foo}
     }
+
+    tags {slow} {
+        test {intsets implementation stress testing} {
+            for {set j 0} {$j < 20} {incr j} {
+                unset -nocomplain s
+                array set s {}
+                r del s
+                set len [randomInt 1024]
+                for {set i 0} {$i < $len} {incr i} {
+                    randpath {
+                        set data [randomInt 65536]
+                    } {
+                        set data [randomInt 4294967296]
+                    } {
+                        set data [randomInt 18446744073709551616]
+                    }
+                    set s($data) {}
+                    r sadd s $data
+                }
+                assert_equal [lsort [r smembers s]] [lsort [array names s]]
+                set len [array size s]
+                for {set i 0} {$i < $len} {incr i} {
+                    set e [r spop s]
+                    if {![info exists s($e)]} {
+                        puts "Can't find '$e' on local array"
+                        puts "Local array: [lsort [r smembers s]]"
+                        puts "Remote array: [lsort [array names s]]"
+                        error "exception"
+                    }
+                    array unset s $e
+                }
+                assert_equal [r scard s] 0
+                assert_equal [array size s] 0
+            }
+        }
+    }
 }