From e983cf34be97ac01448f331b9c106f8b9ce55889 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Wed, 15 Dec 2010 11:20:54 +0100 Subject: Add fuzzy test for SETBIT --- tests/unit/basic.tcl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/unit/basic.tcl b/tests/unit/basic.tcl index 901507964..884522a83 100644 --- a/tests/unit/basic.tcl +++ b/tests/unit/basic.tcl @@ -422,6 +422,24 @@ start_server {tags {"basic"}} { assert_error "*out of range*" {r setbit mykey 0 20} } + test "SETBIT fuzzing" { + set str "" + set len [expr 256*8] + r del mykey + + for {set i 0} {$i < 2000} {incr i} { + set bitnum [randomInt $len] + set bitval [randomInt 2] + set fmt [format "%%-%ds%%d%%-s" $bitnum] + set head [string range $str 0 $bitnum-1] + set tail [string range $str $bitnum+1 end] + set str [string map {" " 0} [format $fmt $head $bitval $tail]] + + r setbit mykey $bitnum $bitval + assert_equal [binary format B* $str] [r get mykey] + } + } + test "GETBIT against non-existing key" { r del mykey assert_equal 0 [r getbit mykey 0] -- cgit v1.2.1