]> git.saurik.com Git - redis.git/commitdiff
Tests for scripting PRNG.
authorantirez <antirez@gmail.com>
Wed, 18 Apr 2012 21:50:16 +0000 (23:50 +0200)
committerantirez <antirez@gmail.com>
Wed, 18 Apr 2012 21:50:16 +0000 (23:50 +0200)
tests/unit/scripting.tcl

index 009c1347d380740144977a4f00afca31f29bfe0e..ed58bca44a13d72aee8c10bd4535a489ce42baed 100644 (file)
@@ -251,6 +251,26 @@ start_server {tags {"scripting"}} {
         lappend res [r eval $decr_if_gt 1 foo 2]
         set res
     } {4 3 2 2 2}
+
+    test {Scripting engine resets PRNG at every script execution} {
+        set rand1 [r eval {return tostring(math.random())} 0]
+        set rand2 [r eval {return tostring(math.random())} 0]
+        assert_equal $rand1 $rand2
+    }
+
+    test {Scripting engine PRNG can be seeded correctly} {
+        set rand1 [r eval {
+            math.randomseed(ARGV[1]); return tostring(math.random())
+        } 0 10]
+        set rand2 [r eval {
+            math.randomseed(ARGV[1]); return tostring(math.random())
+        } 0 10]
+        set rand3 [r eval {
+            math.randomseed(ARGV[1]); return tostring(math.random())
+        } 0 20]
+        assert_equal $rand1 $rand2
+        assert {$rand2 ne $rand3}
+    }
 }
 
 start_server {tags {"scripting repl"}} {