vinted-memcached 1.8.3 → 1.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_release_pipeline.yaml +53 -0
  3. data/.gitignore +33 -0
  4. data/BENCHMARKS +130 -126
  5. data/CHANGELOG +1 -6
  6. data/Gemfile +8 -1
  7. data/Gemfile.lock +25 -25
  8. data/README.md +144 -0
  9. data/Rakefile +21 -93
  10. data/ext/rlibmemcached/extconf.rb +76 -0
  11. data/ext/{rlibmemcached.i → rlibmemcached/rlibmemcached.i} +48 -63
  12. data/ext/{rlibmemcached_wrap.c → rlibmemcached/rlibmemcached_wrap.c} +629 -612
  13. data/lib/memcached/exceptions.rb +1 -12
  14. data/lib/memcached/experimental.rb +1 -33
  15. data/lib/memcached/memcached.rb +41 -34
  16. data/lib/memcached/version.rb +1 -1
  17. data/lib/memcached.rb +9 -4
  18. data/memcached.gemspec +0 -0
  19. data/memcached.pem +21 -0
  20. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_connect.c +23 -13
  21. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.c +18 -13
  22. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_purge.c +1 -1
  23. metadata +193 -233
  24. data/Manifest +0 -209
  25. data/README.rdoc +0 -124
  26. data/ext/extconf-make.rb +0 -25
  27. data/ext/extconf.rb +0 -78
  28. data/lib/memcached/auth.rb +0 -16
  29. data/test/profile/benchmark.rb +0 -280
  30. data/test/profile/c_profiler.rb +0 -14
  31. data/test/profile/exercise.rb +0 -185
  32. data/test/profile/rb_profiler.rb +0 -21
  33. data/test/profile/valgrind.rb +0 -10
  34. data/test/setup.rb +0 -30
  35. data/test/teardown.rb +0 -0
  36. data/test/test_helper.rb +0 -18
  37. data/test/unit/binding_test.rb +0 -8
  38. data/test/unit/memcached_experimental_test.rb +0 -272
  39. data/test/unit/memcached_test.rb +0 -1487
  40. data/test/unit/rails_test.rb +0 -330
  41. /data/{ext → vendor}/libmemcached-0.32/AUTHORS +0 -0
  42. /data/{ext → vendor}/libmemcached-0.32/COPYING +0 -0
  43. /data/{ext → vendor}/libmemcached-0.32/ChangeLog +0 -0
  44. /data/{ext → vendor}/libmemcached-0.32/INSTALL +0 -0
  45. /data/{ext → vendor}/libmemcached-0.32/Makefile.am +0 -0
  46. /data/{ext → vendor}/libmemcached-0.32/Makefile.in +0 -0
  47. /data/{ext → vendor}/libmemcached-0.32/NEWS +0 -0
  48. /data/{ext → vendor}/libmemcached-0.32/README +0 -0
  49. /data/{ext → vendor}/libmemcached-0.32/THANKS +0 -0
  50. /data/{ext → vendor}/libmemcached-0.32/TODO +0 -0
  51. /data/{ext → vendor}/libmemcached-0.32/aclocal.m4 +0 -0
  52. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.am +0 -0
  53. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.in +0 -0
  54. /data/{ext → vendor}/libmemcached-0.32/clients/client_options.h +0 -0
  55. /data/{ext → vendor}/libmemcached-0.32/clients/execute.c +0 -0
  56. /data/{ext → vendor}/libmemcached-0.32/clients/execute.h +0 -0
  57. /data/{ext → vendor}/libmemcached-0.32/clients/generator.c +0 -0
  58. /data/{ext → vendor}/libmemcached-0.32/clients/generator.h +0 -0
  59. /data/{ext → vendor}/libmemcached-0.32/clients/memcat.c +0 -0
  60. /data/{ext → vendor}/libmemcached-0.32/clients/memcp.c +0 -0
  61. /data/{ext → vendor}/libmemcached-0.32/clients/memdump.c +0 -0
  62. /data/{ext → vendor}/libmemcached-0.32/clients/memerror.c +0 -0
  63. /data/{ext → vendor}/libmemcached-0.32/clients/memflush.c +0 -0
  64. /data/{ext → vendor}/libmemcached-0.32/clients/memrm.c +0 -0
  65. /data/{ext → vendor}/libmemcached-0.32/clients/memslap.c +0 -0
  66. /data/{ext → vendor}/libmemcached-0.32/clients/memstat.c +0 -0
  67. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.c +0 -0
  68. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.h +0 -0
  69. /data/{ext → vendor}/libmemcached-0.32/config/compile +0 -0
  70. /data/{ext → vendor}/libmemcached-0.32/config/config.guess +0 -0
  71. /data/{ext → vendor}/libmemcached-0.32/config/config.rpath +0 -0
  72. /data/{ext → vendor}/libmemcached-0.32/config/config.sub +0 -0
  73. /data/{ext → vendor}/libmemcached-0.32/config/depcomp +0 -0
  74. /data/{ext → vendor}/libmemcached-0.32/config/install-sh +0 -0
  75. /data/{ext → vendor}/libmemcached-0.32/config/ltmain.sh +0 -0
  76. /data/{ext → vendor}/libmemcached-0.32/config/missing +0 -0
  77. /data/{ext → vendor}/libmemcached-0.32/config.h.in +0 -0
  78. /data/{ext → vendor}/libmemcached-0.32/configure +0 -0
  79. /data/{ext → vendor}/libmemcached-0.32/configure.ac +0 -0
  80. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.am +0 -0
  81. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.in +0 -0
  82. /data/{ext → vendor}/libmemcached-0.32/libmemcached/byteorder.c +0 -0
  83. /data/{ext → vendor}/libmemcached-0.32/libmemcached/common.h +0 -0
  84. /data/{ext → vendor}/libmemcached-0.32/libmemcached/crc.c +0 -0
  85. /data/{ext → vendor}/libmemcached-0.32/libmemcached/hsieh_hash.c +0 -0
  86. /data/{ext → vendor}/libmemcached-0.32/libmemcached/jenkins_hash.c +0 -0
  87. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached.ver +0 -0
  88. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.d +0 -0
  89. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.h +0 -0
  90. /data/{ext → vendor}/libmemcached-0.32/libmemcached/md5.c +0 -0
  91. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/README.txt +0 -0
  92. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +0 -0
  93. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.c +0 -0
  94. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.h +0 -0
  95. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.hpp +0 -0
  96. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_allocators.c +0 -0
  97. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_analyze.c +0 -0
  98. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_auto.c +0 -0
  99. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_behavior.c +0 -0
  100. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_callback.c +0 -0
  101. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_configure.h.in +0 -0
  102. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_constants.h +0 -0
  103. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  104. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_do.c +0 -0
  105. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_dump.c +0 -0
  106. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.c +0 -0
  107. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.h +0 -0
  108. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_fetch.c +0 -0
  109. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush.c +0 -0
  110. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +0 -0
  111. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.c +0 -0
  112. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.h +0 -0
  113. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hash.c +0 -0
  114. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hosts.c +0 -0
  115. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_internal.h +0 -0
  116. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.h +0 -0
  117. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_key.c +0 -0
  118. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_parse.c +0 -0
  119. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_pool.h +0 -0
  120. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_quit.c +0 -0
  121. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_response.c +0 -0
  122. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.c +0 -0
  123. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.h +0 -0
  124. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.c +0 -0
  125. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.h +0 -0
  126. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.c +0 -0
  127. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.h +0 -0
  128. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_stats.c +0 -0
  129. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.c +0 -0
  130. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.h +0 -0
  131. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_strerror.c +0 -0
  132. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.c +0 -0
  133. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.h +0 -0
  134. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.c +0 -0
  135. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.h +0 -0
  136. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_types.h +0 -0
  137. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_util.h +0 -0
  138. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_verbosity.c +0 -0
  139. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_version.c +0 -0
  140. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_watchpoint.h +0 -0
  141. /data/{ext → vendor}/libmemcached-0.32/libmemcached/murmur_hash.c +0 -0
  142. /data/{ext → vendor}/libmemcached-0.32/libmemcached/visibility.h +0 -0
  143. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.am +0 -0
  144. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.in +0 -0
  145. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +0 -0
  146. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/memcached_pool.c +0 -0
  147. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +0 -0
  148. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +0 -0
  149. /data/{ext → vendor}/libmemcached-0.32/m4/acx_pthread.m4 +0 -0
  150. /data/{ext → vendor}/libmemcached-0.32/m4/byteorder.m4 +0 -0
  151. /data/{ext → vendor}/libmemcached-0.32/m4/deprecated.m4 +0 -0
  152. /data/{ext → vendor}/libmemcached-0.32/m4/enable_utillib.m4 +0 -0
  153. /data/{ext → vendor}/libmemcached-0.32/m4/extensions.m4 +0 -0
  154. /data/{ext → vendor}/libmemcached-0.32/m4/hsieh.m4 +0 -0
  155. /data/{ext → vendor}/libmemcached-0.32/m4/lib-prefix.m4 +0 -0
  156. /data/{ext → vendor}/libmemcached-0.32/m4/libtool.m4 +0 -0
  157. /data/{ext → vendor}/libmemcached-0.32/m4/ltoptions.m4 +0 -0
  158. /data/{ext → vendor}/libmemcached-0.32/m4/ltsugar.m4 +0 -0
  159. /data/{ext → vendor}/libmemcached-0.32/m4/ltversion.m4 +0 -0
  160. /data/{ext → vendor}/libmemcached-0.32/m4/lt~obsolete.m4 +0 -0
  161. /data/{ext → vendor}/libmemcached-0.32/m4/memcached.m4 +0 -0
  162. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_64bit.m4 +0 -0
  163. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_canonical.m4 +0 -0
  164. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +0 -0
  165. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +0 -0
  166. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +0 -0
  167. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +0 -0
  168. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +0 -0
  169. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_sasl.m4 +0 -0
  170. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_header_assert.m4 +0 -0
  171. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_libtool.m4 +0 -0
  172. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_optimize.m4 +0 -0
  173. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_shared_ptr.m4 +0 -0
  174. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_vc_build.m4 +0 -0
  175. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_warnings.m4 +0 -0
  176. /data/{ext → vendor}/libmemcached-0.32/m4/pod2man.m4 +0 -0
  177. /data/{ext → vendor}/libmemcached-0.32/m4/protocol_binary.m4 +0 -0
  178. /data/{ext → vendor}/libmemcached-0.32/m4/setsockopt.m4 +0 -0
  179. /data/{ext → vendor}/libmemcached-0.32/m4/visibility.m4 +0 -0
  180. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.am +0 -0
  181. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.in +0 -0
  182. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached-fc.spec.in +0 -0
  183. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.pc.in +0 -0
  184. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec +0 -0
  185. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec.in +0 -0
  186. /data/{ext → vendor}/libmemcached-0.32/support/set_benchmark.sh +0 -0
  187. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.am +0 -0
  188. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.in +0 -0
  189. /data/{ext → vendor}/libmemcached-0.32/tests/atomsmasher.c +0 -0
  190. /data/{ext → vendor}/libmemcached-0.32/tests/function.c +0 -0
  191. /data/{ext → vendor}/libmemcached-0.32/tests/ketama_test_cases.h +0 -0
  192. /data/{ext → vendor}/libmemcached-0.32/tests/output.cmp +0 -0
  193. /data/{ext → vendor}/libmemcached-0.32/tests/output.res +0 -0
  194. /data/{ext → vendor}/libmemcached-0.32/tests/output2.res +0 -0
  195. /data/{ext → vendor}/libmemcached-0.32/tests/plus.cpp +0 -0
  196. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcat.res +0 -0
  197. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcp.res +0 -0
  198. /data/{ext → vendor}/libmemcached-0.32/tests/r/memrm.res +0 -0
  199. /data/{ext → vendor}/libmemcached-0.32/tests/r/memslap.res +0 -0
  200. /data/{ext → vendor}/libmemcached-0.32/tests/r/memstat.res +0 -0
  201. /data/{ext → vendor}/libmemcached-0.32/tests/server.c +0 -0
  202. /data/{ext → vendor}/libmemcached-0.32/tests/server.h +0 -0
  203. /data/{ext → vendor}/libmemcached-0.32/tests/start.c +0 -0
  204. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcat.test +0 -0
  205. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcp.test +0 -0
  206. /data/{ext → vendor}/libmemcached-0.32/tests/t/memrm.test +0 -0
  207. /data/{ext → vendor}/libmemcached-0.32/tests/t/memslap.test +0 -0
  208. /data/{ext → vendor}/libmemcached-0.32/tests/t/memstat.test +0 -0
  209. /data/{ext → vendor}/libmemcached-0.32/tests/test.c +0 -0
  210. /data/{ext → vendor}/libmemcached-0.32/tests/test.h +0 -0
  211. /data/{ext → vendor}/libmemcached-0.32/tests/udp.c +0 -0
@@ -1,330 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
2
- require 'active_support/duration'
3
- require 'logger'
4
-
5
- class RailsTest < Test::Unit::TestCase
6
-
7
- def setup
8
- @servers = ['127.0.0.1:43042', '127.0.0.1:43043', "#{UNIX_SOCKET_NAME}0"]
9
- @duration = ActiveSupport::Duration.new(2592000, [[:months, 1]])
10
- @namespace = 'rails_test'
11
- @cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :logger => Logger.new(File.open("/dev/null", "w")))
12
- @value = OpenStruct.new(:a => 1, :b => 2, :c => GenericClass)
13
- @marshalled_value = Marshal.dump(@value)
14
- end
15
-
16
- def test_get
17
- @cache.set key, @value
18
- result = @cache.get key
19
- assert_equal @value, result
20
- end
21
-
22
- def test_exist
23
- @cache.delete(key)
24
- assert !@cache.exist?(key)
25
- @cache.set key, nil
26
- assert @cache.exist?(key)
27
- @cache.set key, @value
28
- assert @cache.exist?(key)
29
- end
30
-
31
- def test_get_multi
32
- @cache.set key, @value
33
- assert_equal(
34
- {key => @value},
35
- @cache.get_multi([key]))
36
- end
37
-
38
- def test_get_multi_empty_string
39
- @cache.set key, "", 0, true
40
- assert_equal(
41
- {key => ""},
42
- @cache.get_multi([key], true))
43
- end
44
-
45
- def test_delete
46
- @cache.set key, @value
47
- assert_nothing_raised do
48
- @cache.delete key
49
- end
50
- assert_nil(@cache.get(key))
51
- end
52
-
53
- def test_delete_missing
54
- assert_nothing_raised do
55
- @cache.delete key
56
- assert !@cache.delete(key)
57
- end
58
- end
59
-
60
- def test_delete_with_two_arguments
61
- assert_nothing_raised do
62
- @cache.delete(key, 5)
63
- assert_nil(@cache.get(key))
64
- end
65
- end
66
-
67
- def test_bracket_accessors
68
- @cache[key] = @value
69
- result = @cache[key]
70
- assert_equal @value, result
71
- end
72
-
73
- def test_cas
74
- cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :support_cas => true)
75
- value2 = OpenStruct.new(:d => 3, :e => 4, :f => GenericClass)
76
-
77
- # Existing set
78
- cache.set key, @value
79
- cache.cas(key) do |current|
80
- assert_equal @value, current
81
- value2
82
- end
83
- assert_equal value2, cache.get(key)
84
-
85
- # Missing set
86
- cache.delete key
87
- assert_nothing_raised do
88
- cache.cas(key) { @called = true }
89
- end
90
- assert_nil cache.get(key)
91
- assert_nil @called
92
-
93
- # Conflicting set after a gets
94
- cache.set key, @value
95
- assert_nothing_raised do
96
- result = cache.cas(key) do |current|
97
- cache.set key, value2
98
- current
99
- end
100
- assert_equal result, false
101
- end
102
- assert_equal value2, cache.get(key)
103
- end
104
-
105
- def test_get_missing
106
- @cache.delete key rescue nil
107
- result = @cache.get key
108
- assert_equal nil, result
109
- end
110
-
111
- def test_get_nil
112
- @cache.set key, nil, 0
113
- result = @cache.get key
114
- assert_equal nil, result
115
- end
116
-
117
- def test_namespace
118
- assert_equal @namespace, @cache.namespace
119
- end
120
-
121
- def test_active
122
- assert @cache.active?
123
- end
124
-
125
- def test_servers
126
- compare_servers @cache, @servers
127
- end
128
-
129
- def test_servers_alive
130
- @cache.servers.each do |server|
131
- assert server.alive?
132
- end
133
- end
134
-
135
- def test_set_servers
136
- cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace)
137
- compare_servers cache, @servers
138
- cache.set_servers cache.servers
139
- cache = Memcached::Rails.new(:servers => @servers.first, :namespace => @namespace)
140
- cache.set_servers @servers.first
141
- end
142
-
143
- def test_cas_with_duration
144
- cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :support_cas => true)
145
- value2 = OpenStruct.new(:d => 3, :e => 4, :f => GenericClass)
146
- cache.set key, @value
147
- cache.cas(key, @duration) do |current|
148
- assert_equal @value, current
149
- value2
150
- end
151
- assert_equal value2, cache.get(key)
152
- end
153
-
154
- def test_set_with_duration
155
- @cache.set key, @value, @duration
156
- result = @cache.get key
157
- assert_equal @value, result
158
- end
159
-
160
- def test_set_with_invalid_type
161
- assert_raises(TypeError) do
162
- @cache.set key, Object.new, 0, true
163
- end
164
- end
165
-
166
- def test_write_with_default_duration
167
- # should be do an actual write
168
- @cache.write key, @value
169
- result = @cache.get key
170
- assert_equal @value, result
171
-
172
- # should use correct ttl
173
- @cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :default_ttl => 123)
174
- @cache.expects(:set).with(key, @value, 123, nil)
175
- @cache.write key, @value
176
- end
177
-
178
- def test_write_with_duration_as_ttl
179
- # should be do an actual write
180
- @cache.write key, @value, :ttl => 123
181
- result = @cache.get key
182
- assert_equal @value, result
183
-
184
- # should use correct ttl
185
- @cache.expects(:set).with(key, @value, 123, nil)
186
- @cache.write key, @value, :ttl => 123
187
- end
188
-
189
- def test_write_with_duration_as_expires_in
190
- # should be do an actual write
191
- @cache.write key, @value, :expires_in => @duration
192
- result = @cache.get key
193
- assert_equal @value, result
194
-
195
- # should use correct ttl
196
- @cache.expects(:set).with(key, @value, 123, nil)
197
- @cache.write key, @value, :expires_in => 123
198
- end
199
-
200
- def test_write_with_unless_exist
201
- @cache.write key, @value, :unless_exist => true
202
- result = @cache.get key
203
- assert_equal @value, result
204
-
205
- rand_value = "rand-value-#{rand}"
206
- @cache.write key, rand_value, :unless_exist => true
207
-
208
- result = @cache.get key
209
- assert_equal @value, result
210
- end
211
-
212
- def test_write_with_fixnum_and_raw
213
- @cache.write key, 1, :raw => true
214
- result = @cache.read key, :raw => true
215
- assert_equal "1", result
216
- end
217
-
218
- def test_add_with_duration
219
- @cache.add key, @value, @duration
220
- result = @cache.get key
221
- assert_equal @value, result
222
- end
223
-
224
- def test_fetch
225
- # returns
226
- assert_equal @value, @cache.fetch("x"){ @value }
227
-
228
- # sets
229
- assert_equal @value, @cache.read("x")
230
-
231
- # reads
232
- assert_equal @value, @cache.fetch("x"){ 1 }
233
-
234
- # works with options
235
- @cache.expects(:write).with("y", 1, :foo => :bar)
236
- @cache.fetch("y", :foo => :bar){ 1 }
237
- end
238
-
239
- def test_fetch_when_no_block_given
240
- rand_key = "key-#{rand}"
241
-
242
- # gets nil the first time
243
- assert_equal nil, @cache.fetch(rand_key)
244
-
245
- # sets value to @value
246
- assert_equal @value, @cache.fetch(rand_key) { @value }
247
-
248
- # gets @value
249
- assert_equal @value, @cache.fetch(rand_key)
250
- end
251
-
252
- def test_read_multi
253
- # empty
254
- assert_equal({}, @cache.read_multi)
255
- assert_equal({}, @cache.read_multi("a", "b"))
256
- assert_raise TypeError do
257
- @cache.read_multi(["a", "b"])
258
- end
259
-
260
- # filled
261
- @cache.write "a", @value
262
- assert_equal({"a" => @value}, @cache.read_multi("a", "b"))
263
- assert_raise TypeError do
264
- @cache.read_multi(["a", "b"])
265
- end
266
-
267
- # multiple keys
268
- @cache.write "b", 1
269
- assert_equal({"a" => @value, "b" => 1}, @cache.read_multi("a", "b"))
270
-
271
- # keeps order on 1.9
272
- if RUBY_VERSION =~ /^1.9/
273
- assert_equal ["a", "b"], @cache.read_multi("a", "b").keys
274
- assert_equal ["b", "a"], @cache.read_multi("b", "a").keys
275
- end
276
- end
277
-
278
- def test_clear
279
- @cache.write("x", 1)
280
- assert_equal 1, @cache.read("x")
281
- assert_equal nil, @cache.clear
282
- assert_equal nil, @cache.read("x")
283
- end
284
-
285
- def test_increment
286
- rand_key = "rand-key-#{rand}"
287
- assert_equal nil, @cache.increment(rand_key)
288
-
289
- start = 10
290
- @cache.write rand_key, start.to_s, { :raw => true }
291
-
292
- assert_equal start, @cache.read(rand_key, { :raw => true }).to_i
293
- assert_equal start+1, @cache.increment(rand_key)
294
-
295
- assert_equal start+1+5, @cache.increment(rand_key, 5)
296
- end
297
-
298
- def test_decrement
299
- rand_key = "rand-key-#{rand}"
300
- assert_equal nil, @cache.decrement(rand_key)
301
-
302
- start = 10
303
- @cache.write rand_key, start.to_s, { :raw => true }
304
-
305
- assert_equal start, @cache.read(rand_key, { :raw => true }).to_i
306
- assert_equal start-1, @cache.decrement(rand_key)
307
-
308
- assert_equal start-1-5, @cache.decrement(rand_key, 5)
309
- end
310
-
311
- def test_read_with_nil_options
312
- @cache.write key, @value
313
- assert_equal @value, @cache.read(key, nil)
314
- end
315
-
316
- def test_write_with_nil_options
317
- @cache.write key, @value, nil
318
- assert_equal @value, @cache.read(key)
319
- end
320
-
321
- private
322
-
323
- def key
324
- caller.first[/.*[` ](.*)'/, 1] # '
325
- end
326
-
327
- def compare_servers(cache, servers)
328
- cache.servers.map{|s| "#{s.hostname}:#{s.port}".chomp(':0')} == servers
329
- end
330
- end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes