From d8f160a848b2d10615918668eddbbb1fe415bd85 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Tue, 14 Dec 2010 15:35:35 +0100 Subject: [PATCH] Add test cases for GETRANGE against integer-encoded strings --- tests/unit/basic.tcl | 58 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/tests/unit/basic.tcl b/tests/unit/basic.tcl index f082b05d..7d566772 100644 --- a/tests/unit/basic.tcl +++ b/tests/unit/basic.tcl @@ -563,39 +563,39 @@ start_server {tags {"basic"}} { assert_error "*maximum allowed size*" {r setrange mykey [expr 512*1024*1024-4] world} } - test {SUBSTR basics} { - set res {} - r set foo "Hello World" - lappend res [r substr foo 0 3] - lappend res [r substr foo 0 -1] - lappend res [r substr foo -4 -1] - lappend res [r substr foo 5 3] - lappend res [r substr foo 5 5000] - lappend res [r substr foo -5000 10000] - set _ $res - } {Hell {Hello World} orld {} { World} {Hello World}} - - test {SUBSTR against integer encoded values} { - r set foo 123 - r substr foo 0 -2 - } {12} - - test {SUBSTR fuzzing} { - set err {} + test "GETRANGE against non-existing key" { + r del mykey + assert_equal "" [r getrange mykey 0 -1] + } + + test "GETRANGE against string value" { + r set mykey "Hello World" + assert_equal "Hell" [r getrange mykey 0 3] + assert_equal "Hello World" [r getrange mykey 0 -1] + assert_equal "orld" [r getrange mykey -4 -1] + assert_equal "" [r getrange mykey 5 3] + assert_equal " World" [r getrange mykey 5 5000] + assert_equal "Hello World" [r getrange mykey -5000 10000] + } + + test "GETRANGE against integer-encoded value" { + r set mykey 1234 + assert_equal "123" [r getrange mykey 0 2] + assert_equal "1234" [r getrange mykey 0 -1] + assert_equal "234" [r getrange mykey -3 -1] + assert_equal "" [r getrange mykey 5 3] + assert_equal "4" [r getrange mykey 3 5000] + assert_equal "1234" [r getrange mykey -5000 10000] + } + + test "GETRANGE fuzzing" { for {set i 0} {$i < 1000} {incr i} { - set bin [randstring 0 1024 binary] + r set bin [set bin [randstring 0 1024 binary]] set _start [set start [randomInt 1500]] set _end [set end [randomInt 1500]] if {$_start < 0} {set _start "end-[abs($_start)-1]"} if {$_end < 0} {set _end "end-[abs($_end)-1]"} - set s1 [string range $bin $_start $_end] - r set bin $bin - set s2 [r substr bin $start $end] - if {$s1 != $s2} { - set err "String mismatch" - break - } + assert_equal [string range $bin $_start $_end] [r getrange bin $start $end] } - set _ $err - } {} + } } -- 2.45.2