test_util_cache: remove unused argument c3 [luacheck]
[prosody.git] / tests / test_util_cache.lua
index 155b154d2fa3312962deb901de23bd820cba8258..dea1bf4c6b92444ac7bea29aba76e81e7a6d5da0 100644 (file)
@@ -219,7 +219,7 @@ function new(new)
        
 
        local evicted_key, evicted_value;
-       local c3 = new(1, function (_key, _value, c3)
+       local c3 = new(1, function (_key, _value)
                evicted_key, evicted_value = _key, _value;
                if _key == "a" then
                        -- Sanity check for what we're evicting
@@ -271,4 +271,28 @@ function new(new)
        expect_kv("c", 3, c4:head());
        expect_kv("a", 1, c4:tail());
 
+       local c5 = new(3, function (k, v)
+               if k == "a" then
+                       return nil;
+               elseif k == "b" then
+                       return true;
+               end
+               return false;
+       end);
+       
+       assert_equal(c5:set("a", 1), true);
+       assert_equal(c5:set("a", 1), true);
+       assert_equal(c5:set("a", 1), true);
+       assert_equal(c5:set("a", 1), true);
+       assert_equal(c5:set("b", 2), true);
+       assert_equal(c5:set("c", 3), true);
+       assert_equal(c5:set("d", 4), true); -- "a" evicted (cb returned nil)
+       assert_equal(c5:set("d", 4), true); -- nop
+       assert_equal(c5:set("d", 4), true); -- nop
+       assert_equal(c5:set("e", 5), true); -- "b" evicted (cb returned true)
+       assert_equal(c5:set("f", 6), false); -- "c" won't evict (cb returned false)
+
+       expect_kv("e", 5, c5:head());
+       expect_kv("c", 3, c5:tail());
+
 end