adjusting unit test timing and forcing double evaluation rather than string evaluation
This commit is contained in:
+37
-20
@@ -8,8 +8,11 @@ start_server {tags {"expire"}} {
|
||||
set v3 [r expire x 10]
|
||||
set v4 [r ttl x]
|
||||
r expire x 2
|
||||
list $v1 $v2 $v3 $v4
|
||||
} {1 [45] 1 10}
|
||||
assert {$v1 eq 1}
|
||||
assert {$v2 >= 4}
|
||||
assert {$v3 eq 1}
|
||||
assert {$v4 >= 9}
|
||||
}
|
||||
|
||||
test {EXPIRE - It should be still possible to read 'x'} {
|
||||
r get x
|
||||
@@ -105,10 +108,10 @@ start_server {tags {"expire"}} {
|
||||
set expire 100
|
||||
set maxExpire 120
|
||||
if { [string match {*win32*} [platform::identify]] == 1 } {
|
||||
# tweaking windows expire times in order to bypass unit test failures. statement-statement execution time on a fully taxed system can be 150ms.
|
||||
# tweaking windows expire times in order to bypass unit test failures. statement-statement execution time on a fully taxed system can be 100's of ms.
|
||||
set minExpire 10
|
||||
set expire 200
|
||||
set maxExpire 500
|
||||
set expire 1000
|
||||
set maxExpire 2000
|
||||
}
|
||||
|
||||
# This test is very likely to do a false positive if the
|
||||
@@ -116,50 +119,64 @@ start_server {tags {"expire"}} {
|
||||
# chances.
|
||||
for {set j 0} {$j < 10} {incr j} {
|
||||
r del x y z
|
||||
r psetex x $expire somevalue
|
||||
r psetex x $expire somevalue_1
|
||||
after $minExpire
|
||||
set a [r get x]
|
||||
after $maxExpire
|
||||
set b [r get x]
|
||||
|
||||
r set x somevalue
|
||||
r set x somevalue_2
|
||||
r pexpire x $expire
|
||||
after $minExpire
|
||||
set c [r get x]
|
||||
after $maxExpire
|
||||
set d [r get x]
|
||||
|
||||
r set x somevalue
|
||||
r set x somevalue_3
|
||||
r pexpireat x [expr ([clock seconds]*1000)+$expire]
|
||||
after $minExpire
|
||||
set e [r get x]
|
||||
after $maxExpire
|
||||
set f [r get x]
|
||||
|
||||
if {$a eq {somevalue} && $b eq {} &&
|
||||
$c eq {somevalue} && $d eq {} &&
|
||||
$e eq {somevalue} && $f eq {}} break
|
||||
if {$a eq {somevalue_1} && $b eq {} &&
|
||||
$c eq {somevalue_2} && $d eq {} &&
|
||||
$e eq {somevalue_3} && $f eq {}} break
|
||||
}
|
||||
list $a $b
|
||||
} {somevalue {}}
|
||||
list $a $b $c $d $e $f
|
||||
} {somevalue_1 {} somevalue_2 {} somevalue_3 {}}
|
||||
|
||||
test {PTTL returns millisecond time to live} {
|
||||
set expireTime 1
|
||||
set minTime 900
|
||||
set maxTime 1000
|
||||
if { [string match {*win32*} [platform::identify]] == 1 } {
|
||||
set expireTime 2
|
||||
set minTime 200
|
||||
set maxTime 2000
|
||||
}
|
||||
r del x
|
||||
r setex x 1 somevalue
|
||||
r setex x $expireTime somevalue
|
||||
set ttl [r pttl x]
|
||||
assert {$ttl > 900 && $ttl <= 1000}
|
||||
assert {$ttl > $minTime && $ttl <= $maxTime}
|
||||
}
|
||||
|
||||
test {Redis should actively expire keys incrementally} {
|
||||
r flushdb
|
||||
r psetex key1 500 a
|
||||
r psetex key2 500 a
|
||||
r psetex key3 500 a
|
||||
set expireTime 500
|
||||
set evictionTime 1000
|
||||
if { [string match {*win32*} [platform::identify]] == 1 } {
|
||||
set expireTime 2000
|
||||
set evictionTime 4000
|
||||
}
|
||||
r flushdb
|
||||
r psetex key1 $expireTime a
|
||||
r psetex key2 $expireTime a
|
||||
r psetex key3 $expireTime a
|
||||
set size1 [r dbsize]
|
||||
# Redis expires random keys ten times every second so we are
|
||||
# fairly sure that all the three keys should be evicted after
|
||||
# one second.
|
||||
after 1000
|
||||
after $evictionTime
|
||||
set size2 [r dbsize]
|
||||
list $size1 $size2
|
||||
} {3 0}
|
||||
|
||||
@@ -558,7 +558,9 @@ start_server {tags {"zset"}} {
|
||||
|
||||
assert_encoding $encoding zscoretest
|
||||
for {set i 0} {$i < $elements} {incr i} {
|
||||
assert_equal [lindex $aux $i] [r zscore zscoretest $i]
|
||||
set x [expr { double([lindex $aux $i]) } ]
|
||||
set y [expr { double([r zscore zscoretest $i]) } ]
|
||||
assert_equal $x $y
|
||||
}
|
||||
}
|
||||
|
||||
@@ -574,7 +576,9 @@ start_server {tags {"zset"}} {
|
||||
r debug reload
|
||||
assert_encoding $encoding zscoretest
|
||||
for {set i 0} {$i < $elements} {incr i} {
|
||||
assert_equal [lindex $aux $i] [r zscore zscoretest $i]
|
||||
set x [expr { double([lindex $aux $i]) } ]
|
||||
set y [expr { double([r zscore zscoretest $i]) } ]
|
||||
assert_equal $x $y
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user