提交 14e809d0 编写于 作者: J Jonathan Pickett

adjusting unit test timing and forcing double evaluation rather than string evaluation

上级 e0f78cd0
......@@ -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
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册