author | Rich Burridge <rich.burridge@oracle.com> |
Mon, 19 Dec 2016 15:44:03 -0800 | |
branch | s11u3-sru |
changeset 7510 | 9eeac2fae18e |
permissions | -rw-r--r-- |
7510
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
1 |
Ignore lru-maintainer.t because it is inconsistent. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
2 |
Upstream is irresponsible https://groups.google.com/forum/#!topic/memcached/35wG9noM9rM |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
3 |
|
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
4 |
--- memcached-1.4.33/t/lru-maintainer.t.orig 2016-11-23 08:09:00.238033621 +0000 |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
5 |
+++ memcached-1.4.33/t/lru-maintainer.t 1969-12-31 16:00:00.000000000 +0000 |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
6 |
@@ -1,105 +0,0 @@ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
7 |
-#!/usr/bin/perl |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
8 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
9 |
-use strict; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
10 |
-use warnings; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
11 |
-use Test::More tests => 225; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
12 |
-use FindBin qw($Bin); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
13 |
-use lib "$Bin/lib"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
14 |
-use MemcachedTest; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
15 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
16 |
-# Regression test for underestimating the size of items after the large memory |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
17 |
-# change. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
18 |
-my $server = new_memcached('-m 3 -o lru_maintainer,lru_crawler'); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
19 |
-my $sock = $server->sock; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
20 |
-my $keystub = "X"x200; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
21 |
-for (1 .. 15000) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
22 |
- print $sock "set $keystub$_ 0 0 2 noreply\r\nok\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
23 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
24 |
-# There's probably already an error on the wire, so we'll see that. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
25 |
-$keystub .= "20001"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
26 |
-print $sock "set $keystub 0 0 2\r\nok\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
27 |
-is(scalar <$sock>, "STORED\r\n", "stored key without OOM"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
28 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
29 |
-# Basic tests |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
30 |
-$server = new_memcached('-m 6 -o lru_maintainer,lru_crawler'); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
31 |
-$sock = $server->sock; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
32 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
33 |
-for (1 .. 10) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
34 |
- print $sock "set ifoo$_ 0 1 2\r\nok\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
35 |
- is(scalar <$sock>, "STORED\r\n", "stored key"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
36 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
37 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
38 |
-sleep 3; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
39 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
40 |
-{ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
41 |
- my $stats = mem_stats($sock); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
42 |
- is($stats->{reclaimed}, 10, "expired key automatically reclaimed"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
43 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
44 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
45 |
-my $value = "B"x66560; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
46 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
47 |
-print $sock "set canary 0 0 66560\r\n$value\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
48 |
-is(scalar <$sock>, "STORED\r\n", "stored canary key"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
49 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
50 |
-# Now flush the slab class with junk. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
51 |
-for (my $key = 0; $key < 100; $key++) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
52 |
- if ($key == 30) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
53 |
- my $stats; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
54 |
- for (0..2) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
55 |
- # Give the juggler some time to move. some platforms suffer at |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
56 |
- # this more than others (solaris amd64?) |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
57 |
- $stats = mem_stats($sock, "items"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
58 |
- if ($stats->{"items:31:moves_to_cold"} == 0) { sleep 1; next; } |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
59 |
- last; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
60 |
- } |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
61 |
- isnt($stats->{"items:31:moves_to_cold"}, 0, "moved some items to cold"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
62 |
- # Fetch the canary once, so it's now marked as active. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
63 |
- mem_get_is($sock, "canary", $value); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
64 |
- } |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
65 |
- print $sock "set key$key 0 0 66560\r\n$value\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
66 |
- is(scalar <$sock>, "STORED\r\n", "stored key$key"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
67 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
68 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
69 |
-{ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
70 |
- my $stats = mem_stats($sock); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
71 |
- isnt($stats->{evictions}, 0, "some evictions happened"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
72 |
- my $istats = mem_stats($sock, "items"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
73 |
- isnt($stats->{"items:31:number_warm"}, 0, "our canary moved to warm"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
74 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
75 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
76 |
-# Key should've been saved to the WARM_LRU, and still exists. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
77 |
-mem_get_is($sock, "canary", $value); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
78 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
79 |
-# Test NOEXP_LRU |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
80 |
-$server = new_memcached('-m 2 -o lru_maintainer,lru_crawler,expirezero_does_not_evict'); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
81 |
-$sock = $server->sock; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
82 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
83 |
-{ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
84 |
- my $stats = mem_stats($sock, "settings"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
85 |
- is($stats->{expirezero_does_not_evict}, "yes"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
86 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
87 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
88 |
-print $sock "set canary 0 0 66560\r\n$value\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
89 |
-is(scalar <$sock>, "STORED\r\n", "stored noexpire canary key"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
90 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
91 |
-{ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
92 |
- my $stats = mem_stats($sock, "items"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
93 |
- is($stats->{"items:31:number_noexp"}, 1, "one item in noexpire LRU"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
94 |
- is($stats->{"items:31:number_hot"}, 0, "item did not go into hot LRU"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
95 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
96 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
97 |
-# *Not* fetching the key, and flushing the slab class with junk. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
98 |
-# Using keys with actual TTL's here. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
99 |
-for (my $key = 0; $key < 100; $key++) { |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
100 |
- print $sock "set key$key 0 3600 66560\r\n$value\r\n"; |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
101 |
- is(scalar <$sock>, "STORED\r\n", "stored key$key"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
102 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
103 |
- |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
104 |
-{ |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
105 |
- my $stats = mem_stats($sock, "items"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
106 |
- isnt($stats->{evictions}, 0, "some evictions happened"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
107 |
- isnt($stats->{number_hot}, 0, "nonzero exptime items went into hot LRU"); |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
108 |
-} |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
109 |
-# Canary should still exist, even unfetched, because it's protected by |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
110 |
-# noexpire. |
9eeac2fae18e
25142497 Updated memcached to version 1.4.33
Rich Burridge <rich.burridge@oracle.com>
parents:
diff
changeset
|
111 |
-mem_get_is($sock, "canary", $value); |