]> git.saurik.com Git - redis.git/blobdiff - tests/unit/expire.tcl
TTL API change: TTL returns -2 for non existing keys.
[redis.git] / tests / unit / expire.tcl
index b88ff821918a6c4acd324b8b6109fa7708046470..57497fe5e0991c4bc0a785f605b205d9adffaa56 100644 (file)
@@ -79,9 +79,9 @@ start_server {tags {"expire"}} {
         for {set j 0} {$j < 3} {incr j} {
             r del x
             r setex x 1 somevalue
-            after 997
+            after 900
             set a [r get x]
-            after 1002
+            after 1100
             set b [r get x]
             if {$a eq {somevalue} && $b eq {}} break
         }
@@ -95,23 +95,23 @@ start_server {tags {"expire"}} {
         for {set j 0} {$j < 3} {incr j} {
             r del x y z
             r psetex x 100 somevalue
-            after 97
+            after 80
             set a [r get x]
-            after 102
+            after 120
             set b [r get x]
 
             r set x somevalue
             r pexpire x 100
-            after 97
+            after 80
             set c [r get x]
-            after 102
+            after 120
             set d [r get x]
 
             r set x somevalue
             r pexpireat x [expr ([clock seconds]*1000)+100]
-            after 97
+            after 80
             set e [r get x]
-            after 102
+            after 120
             set f [r get x]
 
             if {$a eq {somevalue} && $b eq {} &&
@@ -121,13 +121,31 @@ start_server {tags {"expire"}} {
         list $a $b
     } {somevalue {}}
 
-    test {PTTL returns millisecond time to live} {
+    test {TTL returns tiem to live in seconds} {
+        r del x
+        r setex x 10 somevalue
+        set ttl [r ttl x]
+        assert {$ttl > 8 && $ttl <= 10}
+    }
+
+    test {PTTL returns time to live in milliseconds} {
         r del x
         r setex x 1 somevalue
         set ttl [r pttl x]
         assert {$ttl > 900 && $ttl <= 1000}
     }
 
+    test {TTL / PTTL return -1 if key has no expire} {
+        r del x
+        r set x hello
+        list [r ttl x] [r pttl x]
+    } {-1 -1}
+
+    test {TTL / PTTL return -2 if key does not exit} {
+        r del x
+        list [r ttl x] [r pttl x]
+    } {-2 -2}
+
     test {Redis should actively expire keys incrementally} {
         r flushdb
         r psetex key1 500 a
@@ -141,4 +159,15 @@ start_server {tags {"expire"}} {
         set size2 [r dbsize]
         list $size1 $size2
     } {3 0}
+
+    test {5 keys in, 5 keys out} {
+        r flushdb
+        r set a c
+        r expire a 5
+        r set t c
+        r set e c
+        r set s c
+        r set foo b
+        lsort [r keys *]
+    } {a e foo s t}
 }