diff options
author | dormando <dormando@rydia.net> | 2014-04-15 00:22:59 -0700 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2014-04-17 00:43:17 -0700 |
commit | d425b35b9f084ea87df7ca8de088c4ff02cdf945 (patch) | |
tree | ebca17ff103d775ec4867526fce3db679faa7fc0 /t/lru-crawler.t | |
parent | 0d1f505c1590db5e874df8254908270dbe7fd563 (diff) | |
download | memcached-d425b35b9f084ea87df7ca8de088c4ff02cdf945.tar.gz |
basic tests + lrucrawler -> lru_crawler
Diffstat (limited to 't/lru-crawler.t')
-rw-r--r-- | t/lru-crawler.t | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/t/lru-crawler.t b/t/lru-crawler.t new file mode 100644 index 0000000..1e28a91 --- /dev/null +++ b/t/lru-crawler.t @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Test::More tests => 188; +use FindBin qw($Bin); +use lib "$Bin/lib"; +use MemcachedTest; + +my $server = new_memcached('-m 32'); +{ + my $stats = mem_stats($server->sock, ' settings'); + is($stats->{lru_crawler}, "no"); +} + +my $sock = $server->sock; + +# Fill a slab a bit. +# Some immortal items, some long expiring items, some short expiring items. +# Done so the immortals end up at the tail. +for (1 .. 30) { + print $sock "set ifoo$_ 0 0 2\r\nok\r\n"; + is(scalar <$sock>, "STORED\r\n", "stored key"); +} +for (1 .. 30) { + print $sock "set lfoo$_ 0 3600 2\r\nok\r\n"; + is(scalar <$sock>, "STORED\r\n", "stored key"); +} +for (1 .. 30) { + print $sock "set sfoo$_ 0 1 2\r\nok\r\n"; + is(scalar <$sock>, "STORED\r\n", "stored key"); +} + +{ + my $slabs = mem_stats($sock, "slabs"); + is($slabs->{"1:used_chunks"}, 90, "slab1 has 90 used chunks"); +} + +print $sock "lru_crawler enable\r\n"; +is(scalar <$sock>, "OK\r\n", "enabled lru crawler"); +{ + my $stats = mem_stats($server->sock, ' settings'); + is($stats->{lru_crawler}, "yes"); +} + +# TODO: counter for how often it's run? then poll that? +sleep 5; + +{ + my $slabs = mem_stats($sock, "slabs"); + is($slabs->{"1:used_chunks"}, 60, "slab1 now has 60 used chunks"); + my $items = mem_stats($sock, "items"); + is($items->{"items:1:reclaimed"}, 30, "slab1 has 30 reclaims"); +} + +for (1 .. 30) { + mem_get_is($sock, "ifoo$_", "ok"); + mem_get_is($sock, "lfoo$_", "ok"); + mem_get_is($sock, "sfoo$_", undef); +} + +print $sock "lru_crawler disable\r\n"; +is(scalar <$sock>, "OK\r\n", "disabled lru crawler"); +{ + my $stats = mem_stats($server->sock, ' settings'); + is($stats->{lru_crawler}, "no"); +} + |