memcached 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. data/CHANGELOG +2 -0
  2. data/Manifest +206 -12
  3. data/Rakefile +32 -1
  4. data/ext/extconf.rb +10 -35
  5. data/ext/libmemcached-0.32/AUTHORS +7 -0
  6. data/ext/libmemcached-0.32/COPYING +32 -0
  7. data/ext/libmemcached-0.32/ChangeLog +303 -0
  8. data/ext/libmemcached-0.32/INSTALL +302 -0
  9. data/ext/libmemcached-0.32/Makefile.am +36 -0
  10. data/ext/libmemcached-0.32/Makefile.in +828 -0
  11. data/ext/libmemcached-0.32/NEWS +1 -0
  12. data/ext/libmemcached-0.32/README +33 -0
  13. data/ext/libmemcached-0.32/THANKS +14 -0
  14. data/ext/libmemcached-0.32/TODO +11 -0
  15. data/ext/libmemcached-0.32/aclocal.m4 +1852 -0
  16. data/ext/libmemcached-0.32/clients/Makefile.am +73 -0
  17. data/ext/libmemcached-0.32/clients/Makefile.in +770 -0
  18. data/ext/libmemcached-0.32/clients/client_options.h +32 -0
  19. data/ext/libmemcached-0.32/clients/execute.c +64 -0
  20. data/ext/libmemcached-0.32/clients/execute.h +5 -0
  21. data/ext/libmemcached-0.32/clients/generator.c +74 -0
  22. data/ext/libmemcached-0.32/clients/generator.h +20 -0
  23. data/ext/libmemcached-0.32/clients/memcat.c +178 -0
  24. data/ext/libmemcached-0.32/clients/memcp.c +251 -0
  25. data/ext/libmemcached-0.32/clients/memdump.c +170 -0
  26. data/ext/libmemcached-0.32/clients/memerror.c +80 -0
  27. data/ext/libmemcached-0.32/clients/memflush.c +143 -0
  28. data/ext/libmemcached-0.32/clients/memrm.c +160 -0
  29. data/ext/libmemcached-0.32/clients/memslap.c +441 -0
  30. data/ext/libmemcached-0.32/clients/memstat.c +326 -0
  31. data/ext/libmemcached-0.32/clients/utilities.c +207 -0
  32. data/ext/libmemcached-0.32/clients/utilities.h +41 -0
  33. data/ext/libmemcached-0.32/config.h.in +252 -0
  34. data/ext/libmemcached-0.32/config/compile +143 -0
  35. data/ext/libmemcached-0.32/config/config.guess +1561 -0
  36. data/ext/libmemcached-0.32/config/config.rpath +666 -0
  37. data/ext/libmemcached-0.32/config/config.sub +1686 -0
  38. data/ext/libmemcached-0.32/config/depcomp +630 -0
  39. data/ext/libmemcached-0.32/config/install-sh +520 -0
  40. data/ext/libmemcached-0.32/config/ltmain.sh +8406 -0
  41. data/ext/libmemcached-0.32/config/missing +376 -0
  42. data/ext/libmemcached-0.32/configure +23048 -0
  43. data/ext/libmemcached-0.32/configure.ac +122 -0
  44. data/ext/libmemcached-0.32/docs/Makefile.am +415 -0
  45. data/ext/libmemcached-0.32/docs/Makefile.in +918 -0
  46. data/ext/libmemcached-0.32/docs/libmemcached.pod +123 -0
  47. data/ext/libmemcached-0.32/docs/libmemcached_examples.pod +115 -0
  48. data/ext/libmemcached-0.32/docs/libmemcachedutil.pod +40 -0
  49. data/ext/libmemcached-0.32/docs/memcached_analyze.pod +52 -0
  50. data/ext/libmemcached-0.32/docs/memcached_auto.pod +97 -0
  51. data/ext/libmemcached-0.32/docs/memcached_behavior.pod +224 -0
  52. data/ext/libmemcached-0.32/docs/memcached_callback.pod +123 -0
  53. data/ext/libmemcached-0.32/docs/memcached_create.pod +61 -0
  54. data/ext/libmemcached-0.32/docs/memcached_delete.pod +54 -0
  55. data/ext/libmemcached-0.32/docs/memcached_dump.pod +53 -0
  56. data/ext/libmemcached-0.32/docs/memcached_flush.pod +46 -0
  57. data/ext/libmemcached-0.32/docs/memcached_flush_buffers.pod +42 -0
  58. data/ext/libmemcached-0.32/docs/memcached_generate_hash_value.pod +57 -0
  59. data/ext/libmemcached-0.32/docs/memcached_get.pod +161 -0
  60. data/ext/libmemcached-0.32/docs/memcached_memory_allocators.pod +73 -0
  61. data/ext/libmemcached-0.32/docs/memcached_pool.pod +77 -0
  62. data/ext/libmemcached-0.32/docs/memcached_quit.pod +47 -0
  63. data/ext/libmemcached-0.32/docs/memcached_sasl.pod +63 -0
  64. data/ext/libmemcached-0.32/docs/memcached_server_st.pod +75 -0
  65. data/ext/libmemcached-0.32/docs/memcached_servers.pod +102 -0
  66. data/ext/libmemcached-0.32/docs/memcached_set.pod +187 -0
  67. data/ext/libmemcached-0.32/docs/memcached_stats.pod +82 -0
  68. data/ext/libmemcached-0.32/docs/memcached_strerror.pod +46 -0
  69. data/ext/libmemcached-0.32/docs/memcached_user_data.pod +49 -0
  70. data/ext/libmemcached-0.32/docs/memcached_verbosity.pod +41 -0
  71. data/ext/libmemcached-0.32/docs/memcached_version.pod +56 -0
  72. data/ext/libmemcached-0.32/docs/memcat.pod +37 -0
  73. data/ext/libmemcached-0.32/docs/memcp.pod +40 -0
  74. data/ext/libmemcached-0.32/docs/memdump.pod +31 -0
  75. data/ext/libmemcached-0.32/docs/memerror.pod +30 -0
  76. data/ext/libmemcached-0.32/docs/memflush.pod +35 -0
  77. data/ext/libmemcached-0.32/docs/memrm.pod +34 -0
  78. data/ext/libmemcached-0.32/docs/memslap.pod +33 -0
  79. data/ext/libmemcached-0.32/docs/memstat.pod +35 -0
  80. data/ext/libmemcached-0.32/libmemcached/Makefile.am +107 -0
  81. data/ext/libmemcached-0.32/libmemcached/Makefile.in +1050 -0
  82. data/ext/libmemcached-0.32/libmemcached/byteorder.c +31 -0
  83. data/ext/libmemcached-0.32/libmemcached/common.h +183 -0
  84. data/ext/libmemcached-0.32/libmemcached/crc.c +86 -0
  85. data/ext/libmemcached-0.32/libmemcached/hsieh_hash.c +68 -0
  86. data/ext/libmemcached-0.32/libmemcached/jenkins_hash.c +213 -0
  87. data/ext/libmemcached-0.32/libmemcached/libmemcached.ver +1 -0
  88. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.d +28 -0
  89. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.h +78 -0
  90. data/ext/libmemcached-0.32/libmemcached/md5.c +354 -0
  91. data/ext/libmemcached-0.32/libmemcached/memcached.c +152 -0
  92. data/ext/libmemcached-0.32/libmemcached/memcached.h +302 -0
  93. data/ext/libmemcached-0.32/libmemcached/memcached.hpp +799 -0
  94. data/ext/libmemcached-0.32/libmemcached/memcached/README.txt +7 -0
  95. data/ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +366 -0
  96. data/ext/libmemcached-0.32/libmemcached/memcached_allocators.c +72 -0
  97. data/ext/libmemcached-0.32/libmemcached/memcached_analyze.c +100 -0
  98. data/ext/libmemcached-0.32/libmemcached/memcached_auto.c +207 -0
  99. data/ext/libmemcached-0.32/libmemcached/memcached_behavior.c +285 -0
  100. data/ext/libmemcached-0.32/libmemcached/memcached_callback.c +175 -0
  101. data/ext/libmemcached-0.32/libmemcached/memcached_configure.h.in +23 -0
  102. data/ext/libmemcached-0.32/libmemcached/memcached_connect.c +361 -0
  103. data/ext/libmemcached-0.32/libmemcached/memcached_constants.h +145 -0
  104. data/ext/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  105. data/ext/libmemcached-0.32/libmemcached/memcached_do.c +34 -0
  106. data/ext/libmemcached-0.32/libmemcached/memcached_dump.c +79 -0
  107. data/ext/libmemcached-0.32/libmemcached/memcached_fetch.c +102 -0
  108. data/ext/libmemcached-0.32/libmemcached/memcached_flush.c +89 -0
  109. data/ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +22 -0
  110. data/ext/libmemcached-0.32/libmemcached/memcached_get.c +495 -0
  111. data/ext/libmemcached-0.32/libmemcached/memcached_get.h +87 -0
  112. data/ext/libmemcached-0.32/libmemcached/memcached_hash.c +252 -0
  113. data/ext/libmemcached-0.32/libmemcached/memcached_hosts.c +510 -0
  114. data/ext/libmemcached-0.32/libmemcached/memcached_internal.h +31 -0
  115. data/ext/libmemcached-0.32/libmemcached/memcached_io.c +547 -0
  116. data/ext/libmemcached-0.32/libmemcached/memcached_io.h +59 -0
  117. data/ext/libmemcached-0.32/libmemcached/memcached_key.c +28 -0
  118. data/ext/libmemcached-0.32/libmemcached/memcached_parse.c +74 -0
  119. data/ext/libmemcached-0.32/libmemcached/memcached_pool.h +38 -0
  120. data/ext/libmemcached-0.32/libmemcached/memcached_purge.c +76 -0
  121. data/ext/libmemcached-0.32/libmemcached/memcached_quit.c +75 -0
  122. data/ext/libmemcached-0.32/libmemcached/memcached_response.c +528 -0
  123. data/ext/libmemcached-0.32/libmemcached/memcached_result.c +57 -0
  124. data/ext/libmemcached-0.32/libmemcached/memcached_result.h +59 -0
  125. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.c +225 -0
  126. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.h +44 -0
  127. data/ext/libmemcached-0.32/libmemcached/memcached_server.c +159 -0
  128. data/ext/libmemcached-0.32/libmemcached/memcached_server.h +93 -0
  129. data/ext/libmemcached-0.32/libmemcached/memcached_stats.c +454 -0
  130. data/ext/libmemcached-0.32/libmemcached/memcached_storage.c +514 -0
  131. data/ext/libmemcached-0.32/libmemcached/memcached_storage.h +107 -0
  132. data/ext/libmemcached-0.32/libmemcached/memcached_strerror.c +92 -0
  133. data/ext/libmemcached-0.32/libmemcached/memcached_string.c +138 -0
  134. data/ext/libmemcached-0.32/libmemcached/memcached_string.h +53 -0
  135. data/ext/libmemcached-0.32/libmemcached/memcached_types.h +44 -0
  136. data/ext/libmemcached-0.32/libmemcached/memcached_util.h +15 -0
  137. data/ext/libmemcached-0.32/libmemcached/memcached_verbosity.c +36 -0
  138. data/ext/libmemcached-0.32/libmemcached/memcached_version.c +112 -0
  139. data/ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h +38 -0
  140. data/ext/libmemcached-0.32/libmemcached/murmur_hash.c +76 -0
  141. data/ext/libmemcached-0.32/libmemcached/visibility.h +51 -0
  142. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.am +11 -0
  143. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.in +602 -0
  144. data/ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +1 -0
  145. data/ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c +170 -0
  146. data/ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +103 -0
  147. data/ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +67 -0
  148. data/ext/libmemcached-0.32/m4/acx_pthread.m4 +276 -0
  149. data/ext/libmemcached-0.32/m4/byteorder.m4 +40 -0
  150. data/ext/libmemcached-0.32/m4/deprecated.m4 +17 -0
  151. data/ext/libmemcached-0.32/m4/enable_utillib.m4 +16 -0
  152. data/ext/libmemcached-0.32/m4/extensions.m4 +94 -0
  153. data/ext/libmemcached-0.32/m4/hsieh.m4 +18 -0
  154. data/ext/libmemcached-0.32/m4/lib-prefix.m4 +221 -0
  155. data/ext/libmemcached-0.32/m4/libtool.m4 +7360 -0
  156. data/ext/libmemcached-0.32/m4/ltoptions.m4 +368 -0
  157. data/ext/libmemcached-0.32/m4/ltsugar.m4 +123 -0
  158. data/ext/libmemcached-0.32/m4/ltversion.m4 +23 -0
  159. data/ext/libmemcached-0.32/m4/lt~obsolete.m4 +92 -0
  160. data/ext/libmemcached-0.32/m4/memcached.m4 +30 -0
  161. data/ext/libmemcached-0.32/m4/pandora_64bit.m4 +55 -0
  162. data/ext/libmemcached-0.32/m4/pandora_canonical.m4 +151 -0
  163. data/ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +37 -0
  164. data/ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +16 -0
  165. data/ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +41 -0
  166. data/ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +36 -0
  167. data/ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +54 -0
  168. data/ext/libmemcached-0.32/m4/pandora_have_sasl.m4 +133 -0
  169. data/ext/libmemcached-0.32/m4/pandora_header_assert.m4 +23 -0
  170. data/ext/libmemcached-0.32/m4/pandora_libtool.m4 +15 -0
  171. data/ext/libmemcached-0.32/m4/pandora_optimize.m4 +79 -0
  172. data/ext/libmemcached-0.32/m4/pandora_shared_ptr.m4 +56 -0
  173. data/ext/libmemcached-0.32/m4/pandora_vc_build.m4 +32 -0
  174. data/ext/libmemcached-0.32/m4/pandora_warnings.m4 +262 -0
  175. data/ext/libmemcached-0.32/m4/pod2man.m4 +7 -0
  176. data/ext/libmemcached-0.32/m4/protocol_binary.m4 +23 -0
  177. data/ext/libmemcached-0.32/m4/setsockopt.m4 +57 -0
  178. data/ext/libmemcached-0.32/m4/visibility.m4 +52 -0
  179. data/ext/libmemcached-0.32/support/Makefile.am +4 -0
  180. data/ext/libmemcached-0.32/support/Makefile.in +485 -0
  181. data/ext/libmemcached-0.32/support/libmemcached-fc.spec.in +105 -0
  182. data/ext/libmemcached-0.32/support/libmemcached.pc.in +10 -0
  183. data/ext/libmemcached-0.32/support/libmemcached.spec +105 -0
  184. data/ext/libmemcached-0.32/support/libmemcached.spec.in +105 -0
  185. data/ext/libmemcached-0.32/support/set_benchmark.sh +5 -0
  186. data/ext/libmemcached-0.32/tests/Makefile.am +105 -0
  187. data/ext/libmemcached-0.32/tests/Makefile.in +748 -0
  188. data/ext/libmemcached-0.32/tests/atomsmasher.c +245 -0
  189. data/ext/libmemcached-0.32/tests/function.c +4781 -0
  190. data/ext/libmemcached-0.32/tests/ketama_test_cases.h +108 -0
  191. data/ext/libmemcached-0.32/tests/output.cmp +7 -0
  192. data/ext/libmemcached-0.32/tests/output.res +7 -0
  193. data/ext/libmemcached-0.32/tests/output2.res +46 -0
  194. data/ext/libmemcached-0.32/tests/plus.cpp +293 -0
  195. data/ext/libmemcached-0.32/tests/r/memcat.res +19 -0
  196. data/ext/libmemcached-0.32/tests/r/memcp.res +27 -0
  197. data/ext/libmemcached-0.32/tests/r/memrm.res +19 -0
  198. data/ext/libmemcached-0.32/tests/r/memslap.res +33 -0
  199. data/ext/libmemcached-0.32/tests/r/memstat.res +33 -0
  200. data/ext/libmemcached-0.32/tests/server.c +118 -0
  201. data/ext/libmemcached-0.32/tests/server.h +25 -0
  202. data/ext/libmemcached-0.32/tests/start.c +16 -0
  203. data/ext/libmemcached-0.32/tests/t/memcat.test +4 -0
  204. data/ext/libmemcached-0.32/tests/t/memcp.test +3 -0
  205. data/ext/libmemcached-0.32/tests/t/memrm.test +3 -0
  206. data/ext/libmemcached-0.32/tests/t/memslap.test +5 -0
  207. data/ext/libmemcached-0.32/tests/t/memstat.test +3 -0
  208. data/ext/libmemcached-0.32/tests/test.c +137 -0
  209. data/ext/libmemcached-0.32/tests/test.h +46 -0
  210. data/ext/libmemcached-0.32/tests/udp.c +76 -0
  211. data/memcached.gemspec +4 -4
  212. data/test/unit/memcached_test.rb +30 -0
  213. metadata +213 -16
  214. data/ext/libmemcached-0.32.tar.gz +0 -0
  215. data/ext/libmemcached-1.patch +0 -270
  216. data/ext/libmemcached-10.patch +0 -12
  217. data/ext/libmemcached-2.patch +0 -116
  218. data/ext/libmemcached-3.patch +0 -8
  219. data/ext/libmemcached-4.patch +0 -40
  220. data/ext/libmemcached-5.patch +0 -832
  221. data/ext/libmemcached-6.patch +0 -20
  222. data/ext/libmemcached-7.patch +0 -2989
  223. data/ext/libmemcached-8.patch +0 -137
  224. data/ext/libmemcached-9.patch +0 -13
  225. data/ext/sasl.patch +0 -29283
@@ -0,0 +1,19 @@
1
+ memcat v1.0
2
+
3
+ Cat a set of key values to stdout.
4
+
5
+ Current options. A '=' means the option takes a value.
6
+
7
+ --version
8
+ Display the version of the application and then exit.
9
+ --help
10
+ Diplay this message and then exit.
11
+ --verbose
12
+ Give more details on the progression of the application.
13
+ --debug
14
+ Provide output only useful for debugging.
15
+ --servers=
16
+ List which servers you wish to connect to.
17
+ --flag
18
+ Provide flag information for storage operation.
19
+
@@ -0,0 +1,27 @@
1
+ memcp v1.0
2
+
3
+ Copy a set of files to a memcached cluster.
4
+
5
+ Current options. A '=' means the option takes a value.
6
+
7
+ --version
8
+ Display the version of the application and then exit.
9
+ --help
10
+ Diplay this message and then exit.
11
+ --verbose
12
+ Give more details on the progression of the application.
13
+ --debug
14
+ Provide output only useful for debugging.
15
+ --servers=
16
+ List which servers you wish to connect to.
17
+ --flag=
18
+ Provide flag information for storage operation.
19
+ --expire=
20
+ Set the expire option for the object.
21
+ --set
22
+ Use set command with memcached when storing.
23
+ --add
24
+ Use add command with memcached when storing.
25
+ --replace
26
+ Use replace command with memcached when storing.
27
+
@@ -0,0 +1,19 @@
1
+ memrm v1.0
2
+
3
+ Erase a key or set of keys from a memcached cluster.
4
+
5
+ Current options. A '=' means the option takes a value.
6
+
7
+ --version
8
+ Display the version of the application and then exit.
9
+ --help
10
+ Diplay this message and then exit.
11
+ --verbose
12
+ Give more details on the progression of the application.
13
+ --debug
14
+ Provide output only useful for debugging.
15
+ --servers=
16
+ List which servers you wish to connect to.
17
+ --expire=
18
+ Set the expire option for the object.
19
+
@@ -0,0 +1,33 @@
1
+ memslap v1.0
2
+
3
+ Generates a load against a memcached custer of servers.
4
+
5
+ Current options. A '=' means the option takes a value.
6
+
7
+ --concurrency=
8
+ Number of users to simulate with load.
9
+ --debug
10
+ Provide output only useful for debugging.
11
+ --execute-number=
12
+ Number of times to execute the given test.
13
+ --flag
14
+ Provide flag information for storage operation.
15
+ --flush
16
+ Flush servers before running tests.
17
+ --help
18
+ Diplay this message and then exit.
19
+ --initial-load=
20
+ Number of key pairs to load before executing tests.
21
+ --non-blocking
22
+ Set TCP up to use non-blocking IO.
23
+ --servers=
24
+ List which servers you wish to connect to.
25
+ --tcp-nodelay
26
+ Set TCP socket up to use nodelay.
27
+ --test=
28
+ Test to run.
29
+ --verbose
30
+ Give more details on the progression of the application.
31
+ --version
32
+ Display the version of the application and then exit.
33
+
@@ -0,0 +1,33 @@
1
+ memslap v1.0
2
+
3
+ Generates a load against a memcached custer of servers.
4
+
5
+ Current options. A '=' means the option takes a value.
6
+
7
+ --concurrency=
8
+ Number of users to simulate with load.
9
+ --debug
10
+ Provide output only useful for debugging.
11
+ --execute-number=
12
+ Number of times to execute the given test.
13
+ --flag
14
+ Provide flag information for storage operation.
15
+ --flush
16
+ Flush servers before running tests.
17
+ --help
18
+ Diplay this message and then exit.
19
+ --initial-load=
20
+ Number of key pairs to load before executing tests.
21
+ --non-blocking
22
+ Set TCP up to use non-blocking IO.
23
+ --servers=
24
+ List which servers you wish to connect to.
25
+ --tcp-nodelay
26
+ Set TCP socket up to use nodelay.
27
+ --test=
28
+ Test to run.
29
+ --verbose
30
+ Give more details on the progression of the application.
31
+ --version
32
+ Display the version of the application and then exit.
33
+
@@ -0,0 +1,118 @@
1
+ /*
2
+ Startup, and shutdown the memcached servers.
3
+ */
4
+
5
+ #define TEST_PORT_BASE MEMCACHED_DEFAULT_PORT+10
6
+
7
+ #include "config.h"
8
+
9
+ #include <stdio.h>
10
+ #include <stdlib.h>
11
+ #include <string.h>
12
+ #include <time.h>
13
+ #include <assert.h>
14
+ #include <signal.h>
15
+ #include <libmemcached/memcached.h>
16
+ #include <unistd.h>
17
+ #include "server.h"
18
+
19
+ void server_startup(server_startup_st *construct)
20
+ {
21
+ unsigned int x;
22
+
23
+ if ((construct->server_list= getenv("MEMCACHED_SERVERS")))
24
+ {
25
+ printf("servers %s\n", construct->server_list);
26
+ construct->servers= memcached_servers_parse(construct->server_list);
27
+ construct->server_list= NULL;
28
+ construct->count= 0;
29
+ }
30
+ else
31
+ {
32
+ {
33
+ char server_string_buffer[8096];
34
+ char *end_ptr;
35
+ end_ptr= server_string_buffer;
36
+
37
+ for (x= 0; x < construct->count; x++)
38
+ {
39
+ char buffer[1024]; /* Nothing special for number */
40
+ int count;
41
+ int status;
42
+
43
+ sprintf(buffer, "/tmp/%umemc.pid", x);
44
+ if (access(buffer, F_OK) == 0)
45
+ {
46
+ FILE *fp= fopen(buffer, "r");
47
+ remove(buffer);
48
+
49
+ if (fp != NULL)
50
+ {
51
+ if (fgets(buffer, sizeof(buffer), fp) != NULL)
52
+ {
53
+ pid_t pid = (pid_t)atol(buffer);
54
+ if (pid != 0)
55
+ kill(pid, SIGTERM);
56
+ }
57
+
58
+ fclose(fp);
59
+ }
60
+ }
61
+
62
+ if (x == 0)
63
+ {
64
+ sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u -U %u -m 128",
65
+ MEMCACHED_BINARY, x, x + TEST_PORT_BASE, x + TEST_PORT_BASE);
66
+ }
67
+ else
68
+ {
69
+ sprintf(buffer, "%s -d -P /tmp/%umemc.pid -t 1 -p %u -U %u",
70
+ MEMCACHED_BINARY, x, x + TEST_PORT_BASE, x + TEST_PORT_BASE);
71
+ }
72
+ fprintf(stderr, "STARTING SERVER: %s\n", buffer);
73
+ status= system(buffer);
74
+ count= sprintf(end_ptr, "localhost:%u,", x + TEST_PORT_BASE);
75
+ end_ptr+= count;
76
+ }
77
+ *end_ptr= 0;
78
+
79
+ construct->server_list= strdup(server_string_buffer);
80
+ }
81
+ printf("servers %s\n", construct->server_list);
82
+ construct->servers= memcached_servers_parse(construct->server_list);
83
+ }
84
+
85
+ assert(construct->servers);
86
+
87
+ srandom((unsigned int)time(NULL));
88
+
89
+ for (x= 0; x < memcached_server_list_count(construct->servers); x++)
90
+ {
91
+ printf("\t%s : %u\n", construct->servers[x].hostname, construct->servers[x].port);
92
+ assert(construct->servers[x].fd == -1);
93
+ assert(construct->servers[x].cursor_active == 0);
94
+ }
95
+
96
+ printf("\n");
97
+ }
98
+
99
+ void server_shutdown(server_startup_st *construct)
100
+ {
101
+ unsigned int x;
102
+
103
+ if (construct->server_list)
104
+ {
105
+ for (x= 0; x < construct->count; x++)
106
+ {
107
+ char buffer[1024]; /* Nothing special for number */
108
+ sprintf(buffer, "cat /tmp/%umemc.pid | xargs kill", x);
109
+ /* We have to check the return value of this or the compiler will yell */
110
+ int sys_ret= system(buffer);
111
+ assert(sys_ret != -1);
112
+ sprintf(buffer, "/tmp/%umemc.pid", x);
113
+ unlink(buffer);
114
+ }
115
+
116
+ free(construct->server_list);
117
+ }
118
+ }
@@ -0,0 +1,25 @@
1
+ /*
2
+ Server startup and shutdown functions.
3
+ */
4
+ #ifdef __cplusplus
5
+ extern "C" {
6
+ #endif
7
+
8
+ #include <libmemcached/memcached.h>
9
+
10
+ typedef struct server_startup_st server_startup_st;
11
+
12
+ struct server_startup_st
13
+ {
14
+ uint8_t count;
15
+ uint8_t udp;
16
+ memcached_server_st *servers;
17
+ char *server_list;
18
+ };
19
+
20
+ void server_startup(server_startup_st *construct);
21
+ void server_shutdown(server_startup_st *construct);
22
+
23
+ #ifdef __cplusplus
24
+ }
25
+ #endif
@@ -0,0 +1,16 @@
1
+ #include <stdio.h>
2
+ #include <string.h>
3
+ #include "server.h"
4
+
5
+ int main(void)
6
+ {
7
+ server_startup_st construct;
8
+
9
+ memset(&construct, 0, sizeof(server_startup_st));
10
+
11
+ construct.count= 4;
12
+
13
+ server_startup(&construct);
14
+
15
+ return 0;
16
+ }
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+ MEMCAT="../src/memcat"
3
+
4
+ $MEMCAT --help
@@ -0,0 +1,3 @@
1
+ MEMCP="../src/memcp"
2
+
3
+ $MEMCP --help
@@ -0,0 +1,3 @@
1
+ MEMRM="../src/memrm"
2
+
3
+ $MEMRM --help
@@ -0,0 +1,5 @@
1
+ MEMSLAP="../src/memslap"
2
+
3
+ $MEMSLAP --help
4
+
5
+ $MEMSLAP --initial-load=5000 --verbose --flush --concurrency=500 --execute-number=500 > /dev/null
@@ -0,0 +1,3 @@
1
+ MEMSTAT="../src/memslap"
2
+
3
+ $MEMSTAT --help
@@ -0,0 +1,137 @@
1
+ /*
2
+ Sample test application.
3
+ */
4
+ #include <assert.h>
5
+ #include <stdlib.h>
6
+ #include <string.h>
7
+ #include <sys/time.h>
8
+ #include <sys/types.h>
9
+ #include <sys/stat.h>
10
+ #include <unistd.h>
11
+ #include <time.h>
12
+ #include <fnmatch.h>
13
+ #include "server.h"
14
+
15
+ #include "test.h"
16
+
17
+ static long int timedif(struct timeval a, struct timeval b)
18
+ {
19
+ register int us, s;
20
+
21
+ us = (int)(a.tv_usec - b.tv_usec);
22
+ us /= 1000;
23
+ s = (int)(a.tv_sec - b.tv_sec);
24
+ s *= 1000;
25
+ return s + us;
26
+ }
27
+
28
+ int main(int argc, char *argv[])
29
+ {
30
+ unsigned int x;
31
+ char *collection_to_run= NULL;
32
+ char *wildcard= NULL;
33
+ server_startup_st *startup_ptr;
34
+ memcached_server_st *servers;
35
+ world_st world;
36
+ collection_st *collection;
37
+ collection_st *next;
38
+ uint8_t failed;
39
+ void *world_ptr;
40
+
41
+ memset(&world, 0, sizeof(world_st));
42
+ get_world(&world);
43
+ collection= world.collections;
44
+
45
+ if (world.create)
46
+ world_ptr= world.create();
47
+ else
48
+ world_ptr= NULL;
49
+
50
+ startup_ptr= (server_startup_st *)world_ptr;
51
+ servers= (memcached_server_st *)startup_ptr->servers;
52
+
53
+ if (argc > 1)
54
+ collection_to_run= argv[1];
55
+
56
+ if (argc == 3)
57
+ wildcard= argv[2];
58
+
59
+ for (next= collection; next->name; next++)
60
+ {
61
+ test_st *run;
62
+
63
+ run= next->tests;
64
+ if (collection_to_run && fnmatch(collection_to_run, next->name, 0))
65
+ continue;
66
+
67
+ fprintf(stderr, "\n%s\n\n", next->name);
68
+
69
+ for (x= 0; run->name; run++)
70
+ {
71
+ unsigned int loop;
72
+ memcached_st *memc;
73
+ memcached_return rc;
74
+ struct timeval start_time, end_time;
75
+ long int load_time;
76
+
77
+ if (wildcard && fnmatch(wildcard, run->name, 0))
78
+ continue;
79
+
80
+ fprintf(stderr, "Testing %s", run->name);
81
+
82
+ memc= memcached_create(NULL);
83
+ assert(memc);
84
+
85
+ rc= memcached_server_push(memc, servers);
86
+ assert(rc == MEMCACHED_SUCCESS);
87
+
88
+ if (run->requires_flush)
89
+ {
90
+ memcached_flush(memc, 0);
91
+ memcached_quit(memc);
92
+ }
93
+
94
+ for (loop= 0; loop < memcached_server_list_count(servers); loop++)
95
+ {
96
+ assert(memc->hosts[loop].fd == -1);
97
+ assert(memc->hosts[loop].cursor_active == 0);
98
+ }
99
+
100
+ if (next->pre)
101
+ {
102
+ rc= next->pre(memc);
103
+
104
+ if (rc != MEMCACHED_SUCCESS)
105
+ {
106
+ fprintf(stderr, "\t\t\t\t\t [ skipping ]\n");
107
+ goto error;
108
+ }
109
+ }
110
+
111
+ gettimeofday(&start_time, NULL);
112
+ failed= run->function(memc);
113
+ gettimeofday(&end_time, NULL);
114
+ load_time= timedif(end_time, start_time);
115
+ if (failed)
116
+ fprintf(stderr, "\t\t\t\t\t %ld.%03ld [ failed ]\n", load_time / 1000,
117
+ load_time % 1000);
118
+ else
119
+ fprintf(stderr, "\t\t\t\t\t %ld.%03ld [ ok ]\n", load_time / 1000,
120
+ load_time % 1000);
121
+
122
+ if (next->post)
123
+ (void)next->post(memc);
124
+
125
+ assert(memc);
126
+ error:
127
+ memcached_free(memc);
128
+ }
129
+ }
130
+
131
+ fprintf(stderr, "All tests completed successfully\n\n");
132
+
133
+ if (world.destroy)
134
+ world.destroy(world_ptr);
135
+
136
+ return 0;
137
+ }