@@ -300,6 +300,24 @@ var _ = Describe("String Commands", func() {
300300 Expect (getRange .Val ()).To (Equal ("string" ))
301301 })
302302
303+ //Caiyu's test cases for GETRANGE and SETRANGE to fix bug #3092.
304+ It ("should not crash on huge GETRANGE" , func () {
305+ set := client .Set (ctx , "key1" , "abc" , 0 )
306+ Expect (set .Err ()).NotTo (HaveOccurred ())
307+ Expect (set .Val ()).To (Equal ("OK" ))
308+ getRange1 := client .GetRange (ctx , "key1" , 1 , 4294967296 )
309+ Expect (getRange1 .Val ()).To (Equal ("bc" ))
310+ getRange2 := client .GetRange (ctx , "key1" , 1 , 4294967296 )
311+ Expect (getRange2 .Val ()).To (Equal ("bc" ))
312+ })
313+ It ("should not crash on huge SETRANGE" , func () {
314+ set := client .Set (ctx , "key1" , "abc" , 0 )
315+ Expect (set .Err ()).NotTo (HaveOccurred ())
316+ Expect (set .Val ()).To (Equal ("OK" ))
317+ setRange := client .SetRange (ctx , "key1" , 9223372036854775757 , "value2" )
318+ Expect (setRange .Err ()).To (HaveOccurred ())
319+ })
320+
303321 It ("should GetSet" , func () {
304322 incr := client .Incr (ctx , "key" )
305323 Expect (incr .Err ()).NotTo (HaveOccurred ())
0 commit comments