]> git.saurik.com Git - redis.git/blobdiff - tests/unit/scripting.tcl
Test SINTER against same integer elements, but different set encoding.
[redis.git] / tests / unit / scripting.tcl
index 091b4c430df2959fedb9fb5dee8277c749c06fe8..009c1347d380740144977a4f00afca31f29bfe0e 100644 (file)
@@ -223,39 +223,34 @@ start_server {tags {"scripting"}} {
     test {Globals protection reading an undeclared global variable} {
         catch {r eval {return a} 0} e
         set e
-    } {*ERR*global variable*not declared*}
+    } {*ERR*attempted to access unexisting global*}
 
-    test {Globals protection setting an undeclared global variable} {
+    test {Globals protection setting an undeclared global*} {
         catch {r eval {a=10} 0} e
         set e
-    } {*ERR*assignment to undeclared*}
-
-    test {Globals protection bypassed using 'global' function} {
-        catch {r eval {global("a"); a=10; return a} 0} e
-        set e
-    } {10}
-
-    test {Globals protection can be disabled} {
-        r config set lua-protect-globals no
-        catch {r eval {b=20; return b} 0} e
-        set e
-    } {20}
-
-    test {Globals protection can be re-enabled} {
-        r config set lua-protect-globals yes
-        catch {r eval {c=30; return c} 0} e
-        set e
-    } {*ERR*assignment to undeclared*}
-
-    test {Globals protection 'global' function works with mutliple args} {
-        catch {r eval {
-            global("var1","var2")
-            var1=10
-            var2=20
-            return {var1,var2}
-        } 0 } e
-        set e
-    } {10 20}
+    } {*ERR*attempted to create global*}
+
+    test {Test an example script DECR_IF_GT} {
+        set decr_if_gt {
+            local current
+
+            current = redis.call('get',KEYS[1])
+            if not current then return nil end
+            if current > ARGV[1] then
+                return redis.call('decr',KEYS[1])
+            else
+                return redis.call('get',KEYS[1])
+            end
+        }
+        r set foo 5
+        set res {}
+        lappend res [r eval $decr_if_gt 1 foo 2]
+        lappend res [r eval $decr_if_gt 1 foo 2]
+        lappend res [r eval $decr_if_gt 1 foo 2]
+        lappend res [r eval $decr_if_gt 1 foo 2]
+        lappend res [r eval $decr_if_gt 1 foo 2]
+        set res
+    } {4 3 2 2 2}
 }
 
 start_server {tags {"scripting repl"}} {