@ohos-ports/confluentinc-kafka-javascript 1.10.0-beta.1

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 (628) hide show
  1. package/CHANGELOG.md +457 -0
  2. package/LICENSE.kafkajs +31 -0
  3. package/LICENSE.node-rdkafka +25 -0
  4. package/LICENSE.txt +20 -0
  5. package/README.md +133 -0
  6. package/binding.gyp +184 -0
  7. package/build/Release/confluent-kafka-javascript.node +0 -0
  8. package/build/deps/librdkafka++.so.1 +0 -0
  9. package/build/deps/librdkafka.Makefile +6 -0
  10. package/build/deps/librdkafka.so.1 +0 -0
  11. package/build/deps/librdkafka.target.mk +55 -0
  12. package/deps/librdkafka/.clang-format +136 -0
  13. package/deps/librdkafka/.clang-format-cpp +103 -0
  14. package/deps/librdkafka/.dir-locals.el +10 -0
  15. package/deps/librdkafka/.formatignore +35 -0
  16. package/deps/librdkafka/.gdbmacros +19 -0
  17. package/deps/librdkafka/CHANGELOG.md +2477 -0
  18. package/deps/librdkafka/CMakeLists.txt +291 -0
  19. package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
  20. package/deps/librdkafka/CONFIGURATION.md +212 -0
  21. package/deps/librdkafka/CONTRIBUTING.md +431 -0
  22. package/deps/librdkafka/Doxyfile +2375 -0
  23. package/deps/librdkafka/INTRODUCTION.md +2752 -0
  24. package/deps/librdkafka/LICENSE +26 -0
  25. package/deps/librdkafka/LICENSE.cjson +22 -0
  26. package/deps/librdkafka/LICENSE.crc32c +28 -0
  27. package/deps/librdkafka/LICENSE.fnv1a +18 -0
  28. package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
  29. package/deps/librdkafka/LICENSE.lz4 +26 -0
  30. package/deps/librdkafka/LICENSE.murmur2 +25 -0
  31. package/deps/librdkafka/LICENSE.nanopb +22 -0
  32. package/deps/librdkafka/LICENSE.opentelemetry +203 -0
  33. package/deps/librdkafka/LICENSE.pycrc +23 -0
  34. package/deps/librdkafka/LICENSE.queue +31 -0
  35. package/deps/librdkafka/LICENSE.regexp +5 -0
  36. package/deps/librdkafka/LICENSE.snappy +36 -0
  37. package/deps/librdkafka/LICENSE.tinycthread +26 -0
  38. package/deps/librdkafka/LICENSE.wingetopt +49 -0
  39. package/deps/librdkafka/LICENSES.txt +625 -0
  40. package/deps/librdkafka/Makefile +125 -0
  41. package/deps/librdkafka/README.md +201 -0
  42. package/deps/librdkafka/README.win32 +26 -0
  43. package/deps/librdkafka/STATISTICS.md +624 -0
  44. package/deps/librdkafka/configure +214 -0
  45. package/deps/librdkafka/configure.self +341 -0
  46. package/deps/librdkafka/dev-conf.sh +123 -0
  47. package/deps/librdkafka/lds-gen.py +73 -0
  48. package/deps/librdkafka/mainpage.doxy +40 -0
  49. package/deps/librdkafka/mklove/Makefile.base +329 -0
  50. package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
  51. package/deps/librdkafka/mklove/modules/configure.base +2484 -0
  52. package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
  53. package/deps/librdkafka/mklove/modules/configure.cc +186 -0
  54. package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
  55. package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
  56. package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
  57. package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
  58. package/deps/librdkafka/mklove/modules/configure.host +132 -0
  59. package/deps/librdkafka/mklove/modules/configure.lib +49 -0
  60. package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
  61. package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
  62. package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
  63. package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
  64. package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
  65. package/deps/librdkafka/mklove/modules/configure.pic +16 -0
  66. package/deps/librdkafka/mklove/modules/configure.socket +20 -0
  67. package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
  68. package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
  69. package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
  70. package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
  71. package/deps/librdkafka/service.yml +182 -0
  72. package/deps/librdkafka/src/CMakeLists.txt +379 -0
  73. package/deps/librdkafka/src/Makefile +105 -0
  74. package/deps/librdkafka/src/README.lz4.md +30 -0
  75. package/deps/librdkafka/src/cJSON.c +3191 -0
  76. package/deps/librdkafka/src/cJSON.h +306 -0
  77. package/deps/librdkafka/src/crc32c.c +430 -0
  78. package/deps/librdkafka/src/crc32c.h +38 -0
  79. package/deps/librdkafka/src/generate_proto.sh +66 -0
  80. package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
  81. package/deps/librdkafka/src/lz4.c +2727 -0
  82. package/deps/librdkafka/src/lz4.h +842 -0
  83. package/deps/librdkafka/src/lz4frame.c +2078 -0
  84. package/deps/librdkafka/src/lz4frame.h +692 -0
  85. package/deps/librdkafka/src/lz4frame_static.h +47 -0
  86. package/deps/librdkafka/src/lz4hc.c +1631 -0
  87. package/deps/librdkafka/src/lz4hc.h +413 -0
  88. package/deps/librdkafka/src/nanopb/pb.h +917 -0
  89. package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
  90. package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
  91. package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
  92. package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
  93. package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
  94. package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
  95. package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
  96. package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
  97. package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
  98. package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
  99. package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
  100. package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
  101. package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
  102. package/deps/librdkafka/src/queue.h +850 -0
  103. package/deps/librdkafka/src/rd.h +592 -0
  104. package/deps/librdkafka/src/rdaddr.c +255 -0
  105. package/deps/librdkafka/src/rdaddr.h +202 -0
  106. package/deps/librdkafka/src/rdatomic.h +262 -0
  107. package/deps/librdkafka/src/rdavg.h +260 -0
  108. package/deps/librdkafka/src/rdavl.c +210 -0
  109. package/deps/librdkafka/src/rdavl.h +250 -0
  110. package/deps/librdkafka/src/rdbase64.c +200 -0
  111. package/deps/librdkafka/src/rdbase64.h +43 -0
  112. package/deps/librdkafka/src/rdbuf.c +1884 -0
  113. package/deps/librdkafka/src/rdbuf.h +375 -0
  114. package/deps/librdkafka/src/rdcrc32.c +114 -0
  115. package/deps/librdkafka/src/rdcrc32.h +170 -0
  116. package/deps/librdkafka/src/rddl.c +179 -0
  117. package/deps/librdkafka/src/rddl.h +43 -0
  118. package/deps/librdkafka/src/rdendian.h +175 -0
  119. package/deps/librdkafka/src/rdfloat.h +67 -0
  120. package/deps/librdkafka/src/rdfnv1a.c +113 -0
  121. package/deps/librdkafka/src/rdfnv1a.h +35 -0
  122. package/deps/librdkafka/src/rdgz.c +120 -0
  123. package/deps/librdkafka/src/rdgz.h +46 -0
  124. package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
  125. package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
  126. package/deps/librdkafka/src/rdhttp.c +831 -0
  127. package/deps/librdkafka/src/rdhttp.h +101 -0
  128. package/deps/librdkafka/src/rdinterval.h +177 -0
  129. package/deps/librdkafka/src/rdkafka.c +7287 -0
  130. package/deps/librdkafka/src/rdkafka.h +11795 -0
  131. package/deps/librdkafka/src/rdkafka_admin.c +10165 -0
  132. package/deps/librdkafka/src/rdkafka_admin.h +658 -0
  133. package/deps/librdkafka/src/rdkafka_assignment.c +1282 -0
  134. package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
  135. package/deps/librdkafka/src/rdkafka_assignor.c +1800 -0
  136. package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
  137. package/deps/librdkafka/src/rdkafka_aux.c +409 -0
  138. package/deps/librdkafka/src/rdkafka_aux.h +174 -0
  139. package/deps/librdkafka/src/rdkafka_background.c +222 -0
  140. package/deps/librdkafka/src/rdkafka_broker.c +6736 -0
  141. package/deps/librdkafka/src/rdkafka_broker.h +851 -0
  142. package/deps/librdkafka/src/rdkafka_buf.c +543 -0
  143. package/deps/librdkafka/src/rdkafka_buf.h +1525 -0
  144. package/deps/librdkafka/src/rdkafka_cert.c +576 -0
  145. package/deps/librdkafka/src/rdkafka_cert.h +62 -0
  146. package/deps/librdkafka/src/rdkafka_cgrp.c +8310 -0
  147. package/deps/librdkafka/src/rdkafka_cgrp.h +589 -0
  148. package/deps/librdkafka/src/rdkafka_conf.c +5177 -0
  149. package/deps/librdkafka/src/rdkafka_conf.h +746 -0
  150. package/deps/librdkafka/src/rdkafka_confval.h +97 -0
  151. package/deps/librdkafka/src/rdkafka_coord.c +623 -0
  152. package/deps/librdkafka/src/rdkafka_coord.h +132 -0
  153. package/deps/librdkafka/src/rdkafka_error.c +228 -0
  154. package/deps/librdkafka/src/rdkafka_error.h +80 -0
  155. package/deps/librdkafka/src/rdkafka_event.c +502 -0
  156. package/deps/librdkafka/src/rdkafka_event.h +126 -0
  157. package/deps/librdkafka/src/rdkafka_feature.c +898 -0
  158. package/deps/librdkafka/src/rdkafka_feature.h +104 -0
  159. package/deps/librdkafka/src/rdkafka_fetcher.c +3820 -0
  160. package/deps/librdkafka/src/rdkafka_fetcher.h +62 -0
  161. package/deps/librdkafka/src/rdkafka_header.c +220 -0
  162. package/deps/librdkafka/src/rdkafka_header.h +76 -0
  163. package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
  164. package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
  165. package/deps/librdkafka/src/rdkafka_int.h +1505 -0
  166. package/deps/librdkafka/src/rdkafka_interceptor.c +842 -0
  167. package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
  168. package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
  169. package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
  170. package/deps/librdkafka/src/rdkafka_metadata.c +2347 -0
  171. package/deps/librdkafka/src/rdkafka_metadata.h +350 -0
  172. package/deps/librdkafka/src/rdkafka_metadata_cache.c +1183 -0
  173. package/deps/librdkafka/src/rdkafka_mock.c +4514 -0
  174. package/deps/librdkafka/src/rdkafka_mock.h +867 -0
  175. package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1877 -0
  176. package/deps/librdkafka/src/rdkafka_mock_handlers.c +5255 -0
  177. package/deps/librdkafka/src/rdkafka_mock_int.h +1005 -0
  178. package/deps/librdkafka/src/rdkafka_mock_sharegrp.c +1207 -0
  179. package/deps/librdkafka/src/rdkafka_msg.c +2619 -0
  180. package/deps/librdkafka/src/rdkafka_msg.h +629 -0
  181. package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
  182. package/deps/librdkafka/src/rdkafka_msgset.h +105 -0
  183. package/deps/librdkafka/src/rdkafka_msgset_reader.c +2099 -0
  184. package/deps/librdkafka/src/rdkafka_msgset_writer.c +1474 -0
  185. package/deps/librdkafka/src/rdkafka_offset.c +1565 -0
  186. package/deps/librdkafka/src/rdkafka_offset.h +150 -0
  187. package/deps/librdkafka/src/rdkafka_op.c +1219 -0
  188. package/deps/librdkafka/src/rdkafka_op.h +1065 -0
  189. package/deps/librdkafka/src/rdkafka_partition.c +5109 -0
  190. package/deps/librdkafka/src/rdkafka_partition.h +1215 -0
  191. package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
  192. package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
  193. package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
  194. package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
  195. package/deps/librdkafka/src/rdkafka_proto.h +739 -0
  196. package/deps/librdkafka/src/rdkafka_protocol.h +131 -0
  197. package/deps/librdkafka/src/rdkafka_queue.c +1351 -0
  198. package/deps/librdkafka/src/rdkafka_queue.h +1235 -0
  199. package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
  200. package/deps/librdkafka/src/rdkafka_request.c +7298 -0
  201. package/deps/librdkafka/src/rdkafka_request.h +761 -0
  202. package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
  203. package/deps/librdkafka/src/rdkafka_sasl.c +589 -0
  204. package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
  205. package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
  206. package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
  207. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1833 -0
  208. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
  209. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1827 -0
  210. package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +52 -0
  211. package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
  212. package/deps/librdkafka/src/rdkafka_sasl_scram.c +858 -0
  213. package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
  214. package/deps/librdkafka/src/rdkafka_share_acknowledgement.c +1445 -0
  215. package/deps/librdkafka/src/rdkafka_share_acknowledgement.h +373 -0
  216. package/deps/librdkafka/src/rdkafka_ssl.c +2235 -0
  217. package/deps/librdkafka/src/rdkafka_ssl.h +86 -0
  218. package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4785 -0
  219. package/deps/librdkafka/src/rdkafka_subscription.c +411 -0
  220. package/deps/librdkafka/src/rdkafka_telemetry.c +761 -0
  221. package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
  222. package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1307 -0
  223. package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
  224. package/deps/librdkafka/src/rdkafka_telemetry_encode.c +1309 -0
  225. package/deps/librdkafka/src/rdkafka_telemetry_encode.h +459 -0
  226. package/deps/librdkafka/src/rdkafka_timer.c +407 -0
  227. package/deps/librdkafka/src/rdkafka_timer.h +117 -0
  228. package/deps/librdkafka/src/rdkafka_topic.c +2382 -0
  229. package/deps/librdkafka/src/rdkafka_topic.h +369 -0
  230. package/deps/librdkafka/src/rdkafka_transport.c +1309 -0
  231. package/deps/librdkafka/src/rdkafka_transport.h +99 -0
  232. package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
  233. package/deps/librdkafka/src/rdkafka_txnmgr.c +3256 -0
  234. package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
  235. package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
  236. package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
  237. package/deps/librdkafka/src/rdlist.c +593 -0
  238. package/deps/librdkafka/src/rdlist.h +444 -0
  239. package/deps/librdkafka/src/rdlog.c +89 -0
  240. package/deps/librdkafka/src/rdlog.h +41 -0
  241. package/deps/librdkafka/src/rdmap.c +508 -0
  242. package/deps/librdkafka/src/rdmap.h +492 -0
  243. package/deps/librdkafka/src/rdmurmur2.c +167 -0
  244. package/deps/librdkafka/src/rdmurmur2.h +35 -0
  245. package/deps/librdkafka/src/rdports.c +61 -0
  246. package/deps/librdkafka/src/rdports.h +38 -0
  247. package/deps/librdkafka/src/rdposix.h +250 -0
  248. package/deps/librdkafka/src/rdrand.c +151 -0
  249. package/deps/librdkafka/src/rdrand.h +72 -0
  250. package/deps/librdkafka/src/rdregex.c +156 -0
  251. package/deps/librdkafka/src/rdregex.h +43 -0
  252. package/deps/librdkafka/src/rdsignal.h +57 -0
  253. package/deps/librdkafka/src/rdstring.c +645 -0
  254. package/deps/librdkafka/src/rdstring.h +98 -0
  255. package/deps/librdkafka/src/rdsysqueue.h +404 -0
  256. package/deps/librdkafka/src/rdtime.h +356 -0
  257. package/deps/librdkafka/src/rdtypes.h +86 -0
  258. package/deps/librdkafka/src/rdunittest.c +564 -0
  259. package/deps/librdkafka/src/rdunittest.h +232 -0
  260. package/deps/librdkafka/src/rdunittest_acknowledge.c +1177 -0
  261. package/deps/librdkafka/src/rdunittest_fetcher.c +1211 -0
  262. package/deps/librdkafka/src/rdunittest_msgset_errors.c +1521 -0
  263. package/deps/librdkafka/src/rdvarint.c +134 -0
  264. package/deps/librdkafka/src/rdvarint.h +165 -0
  265. package/deps/librdkafka/src/rdwin32.h +382 -0
  266. package/deps/librdkafka/src/rdxxhash.c +1030 -0
  267. package/deps/librdkafka/src/rdxxhash.h +328 -0
  268. package/deps/librdkafka/src/regexp.c +1352 -0
  269. package/deps/librdkafka/src/regexp.h +41 -0
  270. package/deps/librdkafka/src/snappy.c +1866 -0
  271. package/deps/librdkafka/src/snappy.h +62 -0
  272. package/deps/librdkafka/src/snappy_compat.h +138 -0
  273. package/deps/librdkafka/src/statistics_schema.json +444 -0
  274. package/deps/librdkafka/src/tinycthread.c +932 -0
  275. package/deps/librdkafka/src/tinycthread.h +503 -0
  276. package/deps/librdkafka/src/tinycthread_extra.c +210 -0
  277. package/deps/librdkafka/src/tinycthread_extra.h +218 -0
  278. package/deps/librdkafka/src/win32_config.h +58 -0
  279. package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
  280. package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
  281. package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
  282. package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
  283. package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
  284. package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
  285. package/deps/librdkafka/src-cpp/Makefile +55 -0
  286. package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
  287. package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
  288. package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
  289. package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
  290. package/deps/librdkafka/src-cpp/README.md +16 -0
  291. package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
  292. package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
  293. package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
  294. package/deps/librdkafka/src-cpp/rdkafkacpp.h +3797 -0
  295. package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
  296. package/deps/librdkafka/tests/0000-unittests.c +72 -0
  297. package/deps/librdkafka/tests/0001-multiobj.c +102 -0
  298. package/deps/librdkafka/tests/0002-unkpart.c +244 -0
  299. package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
  300. package/deps/librdkafka/tests/0004-conf.c +934 -0
  301. package/deps/librdkafka/tests/0005-order.c +133 -0
  302. package/deps/librdkafka/tests/0006-symbols.c +163 -0
  303. package/deps/librdkafka/tests/0007-autotopic.c +136 -0
  304. package/deps/librdkafka/tests/0008-reqacks.c +179 -0
  305. package/deps/librdkafka/tests/0009-mock_cluster.c +272 -0
  306. package/deps/librdkafka/tests/0011-produce_batch.c +753 -0
  307. package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
  308. package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
  309. package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
  310. package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
  311. package/deps/librdkafka/tests/0016-client_swname.c +181 -0
  312. package/deps/librdkafka/tests/0017-compression.c +140 -0
  313. package/deps/librdkafka/tests/0018-cgrp_term.c +444 -0
  314. package/deps/librdkafka/tests/0019-list_groups.c +289 -0
  315. package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
  316. package/deps/librdkafka/tests/0021-rkt_destroy.c +72 -0
  317. package/deps/librdkafka/tests/0022-consume_batch.c +331 -0
  318. package/deps/librdkafka/tests/0025-timers.c +147 -0
  319. package/deps/librdkafka/tests/0026-consume_pause.c +547 -0
  320. package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
  321. package/deps/librdkafka/tests/0029-assign_offset.c +202 -0
  322. package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
  323. package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
  324. package/deps/librdkafka/tests/0033-regex_subscribe.c +536 -0
  325. package/deps/librdkafka/tests/0034-offset_reset.c +398 -0
  326. package/deps/librdkafka/tests/0035-api_version.c +73 -0
  327. package/deps/librdkafka/tests/0036-partial_fetch.c +87 -0
  328. package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
  329. package/deps/librdkafka/tests/0038-performance.c +121 -0
  330. package/deps/librdkafka/tests/0039-event.c +284 -0
  331. package/deps/librdkafka/tests/0040-io_event.c +257 -0
  332. package/deps/librdkafka/tests/0041-fetch_max_bytes.c +97 -0
  333. package/deps/librdkafka/tests/0042-many_topics.c +252 -0
  334. package/deps/librdkafka/tests/0043-no_connection.c +77 -0
  335. package/deps/librdkafka/tests/0044-partition_cnt.c +94 -0
  336. package/deps/librdkafka/tests/0045-subscribe_update.c +1010 -0
  337. package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
  338. package/deps/librdkafka/tests/0047-partial_buf_tmout.c +98 -0
  339. package/deps/librdkafka/tests/0048-partitioner.c +283 -0
  340. package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
  341. package/deps/librdkafka/tests/0050-subscribe_adds.c +145 -0
  342. package/deps/librdkafka/tests/0051-assign_adds.c +126 -0
  343. package/deps/librdkafka/tests/0052-msg_timestamps.c +238 -0
  344. package/deps/librdkafka/tests/0053-stats_cb.cpp +527 -0
  345. package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
  346. package/deps/librdkafka/tests/0055-producer_latency.c +539 -0
  347. package/deps/librdkafka/tests/0056-balanced_group_mt.c +315 -0
  348. package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
  349. package/deps/librdkafka/tests/0058-log.cpp +123 -0
  350. package/deps/librdkafka/tests/0059-bsearch.cpp +241 -0
  351. package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
  352. package/deps/librdkafka/tests/0061-consumer_lag.cpp +295 -0
  353. package/deps/librdkafka/tests/0062-stats_event.c +126 -0
  354. package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
  355. package/deps/librdkafka/tests/0064-interceptors.c +529 -0
  356. package/deps/librdkafka/tests/0065-yield.cpp +140 -0
  357. package/deps/librdkafka/tests/0066-plugins.cpp +143 -0
  358. package/deps/librdkafka/tests/0067-empty_topic.cpp +151 -0
  359. package/deps/librdkafka/tests/0068-produce_timeout.c +136 -0
  360. package/deps/librdkafka/tests/0069-consumer_add_parts.c +119 -0
  361. package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
  362. package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
  363. package/deps/librdkafka/tests/0073-headers.c +381 -0
  364. package/deps/librdkafka/tests/0074-producev.c +87 -0
  365. package/deps/librdkafka/tests/0075-retry.c +290 -0
  366. package/deps/librdkafka/tests/0076-produce_retry.c +452 -0
  367. package/deps/librdkafka/tests/0077-compaction.c +366 -0
  368. package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
  369. package/deps/librdkafka/tests/0079-fork.c +93 -0
  370. package/deps/librdkafka/tests/0080-admin_ut.c +3095 -0
  371. package/deps/librdkafka/tests/0081-admin.c +5633 -0
  372. package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +137 -0
  373. package/deps/librdkafka/tests/0083-cb_event.c +233 -0
  374. package/deps/librdkafka/tests/0084-destroy_flags.c +208 -0
  375. package/deps/librdkafka/tests/0085-headers.cpp +392 -0
  376. package/deps/librdkafka/tests/0086-purge.c +368 -0
  377. package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
  378. package/deps/librdkafka/tests/0089-max_poll_interval.c +511 -0
  379. package/deps/librdkafka/tests/0090-idempotence.c +171 -0
  380. package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +295 -0
  381. package/deps/librdkafka/tests/0092-mixed_msgver.c +103 -0
  382. package/deps/librdkafka/tests/0093-holb.c +200 -0
  383. package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +231 -0
  384. package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
  385. package/deps/librdkafka/tests/0097-ssl_verify.cpp +674 -0
  386. package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
  387. package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
  388. package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
  389. package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
  390. package/deps/librdkafka/tests/0102-static_group_rebalance.c +836 -0
  391. package/deps/librdkafka/tests/0103-transactions.c +1383 -0
  392. package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +625 -0
  393. package/deps/librdkafka/tests/0105-transactions_mock.c +3930 -0
  394. package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +318 -0
  395. package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
  396. package/deps/librdkafka/tests/0109-auto_create_topics.cpp +278 -0
  397. package/deps/librdkafka/tests/0110-batch_size.cpp +182 -0
  398. package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
  399. package/deps/librdkafka/tests/0112-assign_unknown_part.c +87 -0
  400. package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3473 -0
  401. package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
  402. package/deps/librdkafka/tests/0115-producer_auth.cpp +182 -0
  403. package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +216 -0
  404. package/deps/librdkafka/tests/0117-mock_errors.c +331 -0
  405. package/deps/librdkafka/tests/0118-commit_rebalance.c +154 -0
  406. package/deps/librdkafka/tests/0119-consumer_auth.cpp +167 -0
  407. package/deps/librdkafka/tests/0120-asymmetric_subscription.c +185 -0
  408. package/deps/librdkafka/tests/0121-clusterid.c +115 -0
  409. package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
  410. package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
  411. package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
  412. package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
  413. package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +1164 -0
  414. package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
  415. package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +217 -0
  416. package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +79 -0
  417. package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
  418. package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
  419. package/deps/librdkafka/tests/0132-strategy_ordering.c +179 -0
  420. package/deps/librdkafka/tests/0133-ssl_keys.c +150 -0
  421. package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
  422. package/deps/librdkafka/tests/0135-sasl_credentials.cpp +279 -0
  423. package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
  424. package/deps/librdkafka/tests/0137-barrier_batch_consume.c +752 -0
  425. package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
  426. package/deps/librdkafka/tests/0139-offset_validation_mock.c +950 -0
  427. package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
  428. package/deps/librdkafka/tests/0142-reauthentication.c +931 -0
  429. package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +552 -0
  430. package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
  431. package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
  432. package/deps/librdkafka/tests/0146-metadata_mock.c +505 -0
  433. package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +1210 -0
  434. package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +569 -0
  435. package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
  436. package/deps/librdkafka/tests/0150-telemetry_mock.c +651 -0
  437. package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
  438. package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
  439. package/deps/librdkafka/tests/0153-memberid.c +128 -0
  440. package/deps/librdkafka/tests/0155-share_group_heartbeat_mock.c +2695 -0
  441. package/deps/librdkafka/tests/0156-share_consumer_fetch_mock.c +1551 -0
  442. package/deps/librdkafka/tests/0157-share_consumer_ack_mock.c +1788 -0
  443. package/deps/librdkafka/tests/0158-share_consumer_transactions_mock.c +467 -0
  444. package/deps/librdkafka/tests/0170-share_consumer_subscription.c +2192 -0
  445. package/deps/librdkafka/tests/0171-share_consumer_consume.c +2150 -0
  446. package/deps/librdkafka/tests/0172-share_consumer_acknowledge.c +1919 -0
  447. package/deps/librdkafka/tests/0173-share_consumer_commit_async.c +2735 -0
  448. package/deps/librdkafka/tests/0174-share_consumer_concurrency.c +1434 -0
  449. package/deps/librdkafka/tests/0175-share_consumer_groups.c +574 -0
  450. package/deps/librdkafka/tests/0176-share_consumer_commit_sync.c +2986 -0
  451. package/deps/librdkafka/tests/0177-share_consumer_transactions.c +1815 -0
  452. package/deps/librdkafka/tests/0178-share_consumer_close.c +2102 -0
  453. package/deps/librdkafka/tests/0179-share_consumer_destroy.c +2482 -0
  454. package/deps/librdkafka/tests/0180-share_consumer_config.c +1677 -0
  455. package/deps/librdkafka/tests/0181-share_consumer_topic_delete.c +354 -0
  456. package/deps/librdkafka/tests/0182-share_consumer_error_handling_mock.c +3358 -0
  457. package/deps/librdkafka/tests/0183-share_consumer_leader_change_mock.c +1234 -0
  458. package/deps/librdkafka/tests/0184-share_consumer_topic_recreate.c +1356 -0
  459. package/deps/librdkafka/tests/0185-share_consumer_max_poll_interval.c +557 -0
  460. package/deps/librdkafka/tests/0186-share_consumer_fatal_error.c +360 -0
  461. package/deps/librdkafka/tests/0190-share_consumer_telemetry.c +387 -0
  462. package/deps/librdkafka/tests/1000-unktopic.c +164 -0
  463. package/deps/librdkafka/tests/8000-idle.cpp +60 -0
  464. package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
  465. package/deps/librdkafka/tests/CMakeLists.txt +193 -0
  466. package/deps/librdkafka/tests/LibrdkafkaTestApp.py +291 -0
  467. package/deps/librdkafka/tests/Makefile +182 -0
  468. package/deps/librdkafka/tests/README.md +514 -0
  469. package/deps/librdkafka/tests/autotest.sh +33 -0
  470. package/deps/librdkafka/tests/backtrace.gdb +30 -0
  471. package/deps/librdkafka/tests/broker_version_tests.py +315 -0
  472. package/deps/librdkafka/tests/buildbox.sh +17 -0
  473. package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
  474. package/deps/librdkafka/tests/cluster_testing.py +203 -0
  475. package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
  476. package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
  477. package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
  478. package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
  479. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
  480. package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
  481. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
  482. package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +50 -0
  483. package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
  484. package/deps/librdkafka/tests/fixtures/ssl/client2.key +46 -0
  485. package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +168 -0
  486. package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
  487. package/deps/librdkafka/tests/fuzzers/README.md +31 -0
  488. package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
  489. package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
  490. package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
  491. package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
  492. package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
  493. package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
  494. package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
  495. package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
  496. package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
  497. package/deps/librdkafka/tests/java/Makefile +13 -0
  498. package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
  499. package/deps/librdkafka/tests/java/README.md +14 -0
  500. package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
  501. package/deps/librdkafka/tests/java/run-class.sh +11 -0
  502. package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
  503. package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
  504. package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
  505. package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
  506. package/deps/librdkafka/tests/performance_plot.py +115 -0
  507. package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
  508. package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
  509. package/deps/librdkafka/tests/requirements.txt +2 -0
  510. package/deps/librdkafka/tests/run-all-tests.sh +81 -0
  511. package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
  512. package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
  513. package/deps/librdkafka/tests/run-test-batches.py +157 -0
  514. package/deps/librdkafka/tests/run-test.sh +141 -0
  515. package/deps/librdkafka/tests/rusage.c +249 -0
  516. package/deps/librdkafka/tests/sasl_test.py +289 -0
  517. package/deps/librdkafka/tests/scenarios/README.md +6 -0
  518. package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
  519. package/deps/librdkafka/tests/scenarios/default.json +5 -0
  520. package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
  521. package/deps/librdkafka/tests/share_telemetry_verify/share-otel-collector-config.yaml +28 -0
  522. package/deps/librdkafka/tests/sockem.c +801 -0
  523. package/deps/librdkafka/tests/sockem.h +85 -0
  524. package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
  525. package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
  526. package/deps/librdkafka/tests/test.c +8376 -0
  527. package/deps/librdkafka/tests/test.conf.example +27 -0
  528. package/deps/librdkafka/tests/test.h +1150 -0
  529. package/deps/librdkafka/tests/testcpp.cpp +131 -0
  530. package/deps/librdkafka/tests/testcpp.h +388 -0
  531. package/deps/librdkafka/tests/testshared.h +416 -0
  532. package/deps/librdkafka/tests/tools/README.md +4 -0
  533. package/deps/librdkafka/tests/tools/stats/README.md +21 -0
  534. package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
  535. package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
  536. package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
  537. package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
  538. package/deps/librdkafka/tests/trivup/trivup-0.15.0.tar.gz +0 -0
  539. package/deps/librdkafka/tests/until-fail.sh +87 -0
  540. package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
  541. package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
  542. package/deps/librdkafka/vcpkg.json +23 -0
  543. package/deps/librdkafka/win32/README.md +5 -0
  544. package/deps/librdkafka/win32/build-package.bat +3 -0
  545. package/deps/librdkafka/win32/build.bat +19 -0
  546. package/deps/librdkafka/win32/common.vcxproj +84 -0
  547. package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
  548. package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
  549. package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
  550. package/deps/librdkafka/win32/librdkafka.sln +226 -0
  551. package/deps/librdkafka/win32/librdkafka.vcxproj +282 -0
  552. package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
  553. package/deps/librdkafka/win32/msbuild.ps1 +58 -0
  554. package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
  555. package/deps/librdkafka/win32/package-zip.ps1 +46 -0
  556. package/deps/librdkafka/win32/packages/repositories.config +4 -0
  557. package/deps/librdkafka/win32/push-package.bat +4 -0
  558. package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
  559. package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
  560. package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
  561. package/deps/librdkafka/win32/setup-msys2.ps1 +47 -0
  562. package/deps/librdkafka/win32/setup-vcpkg.ps1 +34 -0
  563. package/deps/librdkafka/win32/tests/test.conf.example +25 -0
  564. package/deps/librdkafka/win32/tests/tests.vcxproj +278 -0
  565. package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
  566. package/deps/librdkafka/win32/wingetopt.c +564 -0
  567. package/deps/librdkafka/win32/wingetopt.h +101 -0
  568. package/deps/librdkafka/win32/wintime.h +33 -0
  569. package/deps/librdkafka.gyp +83 -0
  570. package/deps/windows-install.py +80 -0
  571. package/index.d.ts +3 -0
  572. package/lib/admin.js +732 -0
  573. package/lib/client.js +679 -0
  574. package/lib/error.js +501 -0
  575. package/lib/index.js +8 -0
  576. package/lib/kafka-consumer-stream.js +399 -0
  577. package/lib/kafka-consumer.js +798 -0
  578. package/lib/kafkajs/_admin.js +1052 -0
  579. package/lib/kafkajs/_common.js +887 -0
  580. package/lib/kafkajs/_consumer.js +2156 -0
  581. package/lib/kafkajs/_consumer_cache.js +310 -0
  582. package/lib/kafkajs/_error.js +298 -0
  583. package/lib/kafkajs/_kafka.js +125 -0
  584. package/lib/kafkajs/_linked-list.js +220 -0
  585. package/lib/kafkajs/_producer.js +863 -0
  586. package/lib/kafkajs/index.js +5 -0
  587. package/lib/producer/high-level-producer.js +400 -0
  588. package/lib/producer-stream.js +337 -0
  589. package/lib/producer.js +405 -0
  590. package/lib/rdkafka.js +44 -0
  591. package/lib/tools/ref-counter.js +53 -0
  592. package/lib/topic-partition.js +91 -0
  593. package/lib/topic.js +43 -0
  594. package/lib/util.js +55 -0
  595. package/librdkafka.js +12 -0
  596. package/package.json +85 -0
  597. package/shim/source_location +54 -0
  598. package/src/admin.cc +1597 -0
  599. package/src/admin.h +112 -0
  600. package/src/binding.cc +76 -0
  601. package/src/binding.h +25 -0
  602. package/src/callbacks.cc +676 -0
  603. package/src/callbacks.h +302 -0
  604. package/src/common.cc +1628 -0
  605. package/src/common.h +192 -0
  606. package/src/config.cc +219 -0
  607. package/src/config.h +61 -0
  608. package/src/connection.cc +703 -0
  609. package/src/connection.h +117 -0
  610. package/src/errors.cc +119 -0
  611. package/src/errors.h +60 -0
  612. package/src/kafka-consumer.cc +1539 -0
  613. package/src/kafka-consumer.h +147 -0
  614. package/src/producer.cc +917 -0
  615. package/src/producer.h +124 -0
  616. package/src/topic.cc +173 -0
  617. package/src/topic.h +54 -0
  618. package/src/workers.cc +1714 -0
  619. package/src/workers.h +690 -0
  620. package/types/config.d.ts +1269 -0
  621. package/types/errors.d.ts +373 -0
  622. package/types/kafkajs.d.ts +568 -0
  623. package/types/rdkafka.d.ts +571 -0
  624. package/util/configure.js +32 -0
  625. package/util/generate-docs.sh +18 -0
  626. package/util/get-env.js +6 -0
  627. package/util/test-compile.js +11 -0
  628. package/util/test-producer-delivery.js +100 -0
@@ -0,0 +1,182 @@
1
+ TESTSRCS_C = $(wildcard [08]*-*.c)
2
+ TESTSRCS_CXX= $(wildcard [08]*-*.cpp)
3
+ OBJS = $(TESTSRCS_C:%.c=%.o) $(TESTSRCS_CXX:%.cpp=%.o)
4
+
5
+ BIN = test-runner
6
+ LIBS += -lrdkafka++ -lrdkafka
7
+ OBJS += test.o rusage.o testcpp.o \
8
+ tinycthread.o tinycthread_extra.o rdlist.o sockem.o \
9
+ sockem_ctrl.o
10
+ CFLAGS += -I../src
11
+ CXXFLAGS += -I../src -I../src-cpp
12
+ LDFLAGS += -rdynamic -L../src -L../src-cpp
13
+
14
+ # Latest Kafka version
15
+ KAFKA_VERSION?=3.4.0
16
+ # Kafka versions for compatibility tests
17
+ COMPAT_KAFKA_VERSIONS?=0.8.2.2 0.9.0.1 0.11.0.3 1.0.2 2.4.1 2.8.1 $(KAFKA_VERSION)
18
+
19
+ # Non-default scenarios (FIXME: read from scenarios/*)
20
+ SCENARIOS?=noautocreate ak23
21
+
22
+ # A subset of rudimentary (and quick) tests suitable for quick smoke testing.
23
+ # The smoke test should preferably finish in under a minute.
24
+ SMOKE_TESTS?=0000,0001,0004,0012,0017,0022,0030,0039,0049,0087,0103
25
+
26
+ -include ../Makefile.config
27
+
28
+ # Use C++ compiler as linker
29
+ CC_LD=$(CXX)
30
+
31
+ all: $(BIN) run_par
32
+
33
+ #
34
+ # These targets spin up a cluster and runs the test suite
35
+ # with different parameters.
36
+ #
37
+
38
+ broker: $(BIN)
39
+ ./broker_version_tests.py --conf '{"parallel":1, "args":"-Q"}' $(KAFKA_VERSION)
40
+
41
+ broker_idempotent: $(BIN)
42
+ ./broker_version_tests.py --conf '{"parallel":1, "args":"-P -L -Q"}' $(KAFKA_VERSION)
43
+
44
+ sasl: $(BIN)
45
+ ./sasl_test.py --conf '{"parallel":1, "args":"-L -Q"}' $(KAFKA_VERSION)
46
+
47
+ # Run the full test suite(s)
48
+ full: broker broker_idempotent sasl
49
+
50
+
51
+ #
52
+ # The following targets require an existing cluster running (test.conf)
53
+ #
54
+ quick:
55
+ @echo "Running quick(er) test suite (without sockem)"
56
+ ./run-test.sh -Q -E
57
+
58
+ smoke:
59
+ @echo "Running smoke tests: $(SMOKE_TESTS)"
60
+ TESTS="$(SMOKE_TESTS)" $(MAKE) quick
61
+
62
+ run_par: $(BIN)
63
+ @echo "Running tests in parallel"
64
+ ./run-test.sh
65
+
66
+ run_seq: $(BIN)
67
+ @echo "Running tests sequentially"
68
+ ./run-test.sh -p1
69
+
70
+ run_local: $(BIN)
71
+ @echo "Running local broker-less tests with idempotent producer"
72
+ ./run-test.sh -l -P
73
+
74
+ run_local_quick: $(BIN)
75
+ @echo "Running quick local broker-less tests with idempotent producer"
76
+ ./run-test.sh -l -Q -P
77
+
78
+ idempotent_par: $(BIN)
79
+ ./run-test.sh -P
80
+
81
+ idempotent_seq: $(BIN)
82
+ ./run-test.sh -P
83
+
84
+ idempotent: idempotent_par
85
+
86
+ transactions: $(BIN)
87
+ for _test in 0098 0101; do TESTS=$$_test ./run-test.sh ./$(BIN) ; done
88
+
89
+ # Run unit tests
90
+ unit: $(BIN)
91
+ TESTS=0000 ./run-test.sh -p1
92
+
93
+
94
+ # Delete all test topics (based on prefix)
95
+ delete_topics:
96
+ TESTS=none ./run-test.sh -D bare
97
+
98
+ .PHONY:
99
+
100
+ build: $(BIN) interceptor_test
101
+
102
+ test.o: ../src/librdkafka.a ../src-cpp/librdkafka++.a interceptor_test
103
+
104
+
105
+
106
+ include ../mklove/Makefile.base
107
+
108
+ ifeq ($(_UNAME_S),Darwin)
109
+ interceptor_test: .PHONY
110
+ else
111
+ interceptor_test: .PHONY
112
+ $(MAKE) -C $@
113
+ endif
114
+
115
+
116
+ tinycthread.o: ../src/tinycthread.c
117
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
118
+
119
+ tinycthread_extra.o: ../src/tinycthread_extra.c
120
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
121
+
122
+ rdlist.o: ../src/rdlist.c
123
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
124
+
125
+
126
+ clean:
127
+ rm -f *.test $(OBJS) $(BIN)
128
+ $(MAKE) -C interceptor_test clean
129
+
130
+ # Remove test reports, temporary test files, crash dumps, etc.
131
+ clean-output:
132
+ rm -f *.offset stats_*.json core vgcore.* _until_fail_*.log gdbrun??????
133
+
134
+ realclean: clean clean-output
135
+ rm -f test_report_*.json
136
+
137
+ java: .PHONY
138
+ make -C java
139
+
140
+ # Run test-suite with ASAN
141
+ asan:
142
+ @(echo "### Running tests with AddressSanitizer")
143
+ (cd .. ; ./dev-conf.sh asan)
144
+ CI=true ./broker_version_tests.py --conf '{"args":"-Q"}' $(KAFKA_VERSION)
145
+
146
+ # Run test-suite with TSAN
147
+ tsan:
148
+ @(echo "### Running tests with ThreadSanitizer")
149
+ (cd .. ; ./dev-conf.sh tsan)
150
+ CI=true ./broker_version_tests.py --conf '{"args":"-Q"}' $(KAFKA_VERSION)
151
+
152
+ # Run full test-suite with a clean release build
153
+ pristine-full:
154
+ @(echo "### Running full test-suite with clean build")
155
+ (cd .. ; ./dev-conf.sh clean)
156
+ make full
157
+
158
+ # Run backward compatibility tests
159
+ compat:
160
+ @(echo "### Running compatibility tests with Apache Kafka versions $(COMPAT_KAFKA_VERSIONS)")
161
+ ./broker_version_tests.py --rdkconf '{"args": "-Q"}' \
162
+ $(COMPAT_KAFKA_VERSIONS)
163
+
164
+ # Run non-default scenarios
165
+ scenarios: .PHONY
166
+ @echo "### Running test scenarios: $(SCENARIOS)"
167
+ @(for _SCENARIO in $(SCENARIOS) ; do \
168
+ ./broker_version_tests.py --scenario "$$_SCENARIO" $(KAFKA_VERSION) ; \
169
+ done)
170
+
171
+
172
+ # Run a full release / PR test.
173
+ # (| is for not running suites in parallel)
174
+ release-test: | asan tsan pristine-full scenarios compat
175
+
176
+ # Check resource usage (requires a running cluster environment)
177
+ rusage:
178
+ ./run-test.sh -R bare
179
+
180
+
181
+
182
+ -include $(DEPS)
@@ -0,0 +1,514 @@
1
+ # Automated regression tests for librdkafka
2
+
3
+
4
+ ## Supported test environments
5
+
6
+ While the standard test suite works well on OSX and Windows,
7
+ the full test suite (which must be run for PRs and releases) will
8
+ only run on recent Linux distros due to its use of ASAN, Kerberos, etc.
9
+
10
+
11
+ ## Automated broker cluster setup using trivup
12
+
13
+ A local broker cluster can be set up using
14
+ [trivup](https://github.com/edenhill/trivup), which is a Python package
15
+ available on PyPi.
16
+ These self-contained clusters are used to run the librdkafka test suite
17
+ on a number of different broker versions or with specific broker configs.
18
+
19
+ trivup will download the specified Kafka version into its root directory,
20
+ the root directory is also used for cluster instances, where Kafka will
21
+ write messages, logs, etc.
22
+ The trivup root directory is by default `tmp` in the current directory but
23
+ may be specified by setting the `TRIVUP_ROOT` environment variable
24
+ to alternate directory, e.g., `TRIVUP_ROOT=$HOME/trivup make full`.
25
+
26
+ First install required Python packages (trivup with friends):
27
+
28
+ $ python3 -m pip install -U -r requirements.txt
29
+
30
+ Bring up a Kafka cluster (with the specified version) and start an interactive
31
+ shell, when the shell is exited the cluster is brought down and deleted.
32
+
33
+ $ python3 -m trivup.clusters.KafkaCluster 2.3.0 # Broker version
34
+ # You can also try adding:
35
+ # --ssl To enable SSL listeners
36
+ # --sasl <mechanism> To enable SASL authentication
37
+ # --sr To provide a Schema-Registry instance
38
+ # .. and so on, see --help for more.
39
+
40
+ In the trivup shell, run the test suite:
41
+
42
+ $ make
43
+
44
+
45
+ If you'd rather use an existing cluster, you may omit trivup and
46
+ provide a `test.conf` file that specifies the brokers and possibly other
47
+ librdkafka configuration properties:
48
+
49
+ $ cp test.conf.example test.conf
50
+ $ $EDITOR test.conf
51
+
52
+
53
+
54
+ ## Run specific tests
55
+
56
+ To run tests:
57
+
58
+ # Run tests in parallel (quicker, but harder to troubleshoot)
59
+ $ make
60
+
61
+ # Run a condensed test suite (quickest)
62
+ # This is what is run on CI builds.
63
+ $ make quick
64
+
65
+ # Run tests in sequence
66
+ $ make run_seq
67
+
68
+ # Run specific test
69
+ $ TESTS=0004 make
70
+
71
+ # Run test(s) with helgrind, valgrind, gdb
72
+ $ TESTS=0009 ./run-test.sh valgrind|helgrind|gdb
73
+
74
+
75
+ All tests in the 0000-0999 series are run automatically with `make`.
76
+
77
+ Tests 1000-1999 are subject to specific non-standard setups or broker
78
+ configuration, these tests are run with `TESTS=1nnn make`.
79
+ See comments in the test's source file for specific requirements.
80
+
81
+ To insert test results into SQLite database make sure the `sqlite3` utility
82
+ is installed, then add this to `test.conf`:
83
+
84
+ test.sql.command=sqlite3 rdktests
85
+
86
+
87
+
88
+ ## Adding a new test
89
+
90
+ The simplest way to add a new test is to copy one of the recent
91
+ (higher `0nnn-..` number) tests to the next free
92
+ `0nnn-<what-is-tested>` file.
93
+
94
+ If possible and practical, try to use the C++ API in your test as that will
95
+ cover both the C and C++ APIs and thus provide better test coverage.
96
+ Do note that the C++ test framework is not as feature rich as the C one,
97
+ so if you need message verification, etc, you're better off with a C test.
98
+
99
+ After creating your test file it needs to be added in a couple of places:
100
+
101
+ * Add to [tests/CMakeLists.txt](tests/CMakeLists.txt)
102
+ * Add to [win32/tests/tests.vcxproj](win32/tests/tests.vcxproj)
103
+ * Add to both locations in [tests/test.c](tests/test.c) - search for an
104
+ existing test number to see what needs to be done.
105
+
106
+ You don't need to add the test to the Makefile, it is picked up automatically.
107
+
108
+ Some additional guidelines:
109
+ * If your test depends on a minimum broker version, make sure to specify it
110
+ in test.c using `TEST_BRKVER()` (see 0091 as an example).
111
+ * If your test can run without an active cluster, flag the test
112
+ with `TEST_F_LOCAL`.
113
+ * If your test runs for a long time or produces/consumes a lot of messages
114
+ it might not be suitable for running on CI (which should run quickly
115
+ and are bound by both time and resources). In this case it is preferred
116
+ if you modify your test to be able to run quicker and/or with less messages
117
+ if the `test_quick` variable is true.
118
+ * There's plenty of helper wrappers in test.c for common librdkafka functions
119
+ that makes tests easier to write by not having to deal with errors, etc.
120
+ * Fail fast, use `TEST_ASSERT()` et.al., the sooner an error is detected
121
+ the better since it makes troubleshooting easier.
122
+ * Use `TEST_SAY()` et.al. to inform the developer what your test is doing,
123
+ making it easier to troubleshoot upon failure. But try to keep output
124
+ down to reasonable levels. There is a `TEST_LEVEL` environment variable
125
+ that can be used with `TEST_SAYL()` to only emit certain printouts
126
+ if the test level is increased. The default test level is 2.
127
+ * The test runner will automatically adjust timeouts (it knows about)
128
+ if running under valgrind, on CI, or similar environment where the
129
+ execution speed may be slower.
130
+ To make sure your test remains sturdy in these type of environments, make
131
+ sure to use the `tmout_multip(milliseconds)` macro when passing timeout
132
+ values to non-test functions, e.g, `rd_kafka_poll(rk, tmout_multip(3000))`.
133
+ * If your test file contains multiple separate sub-tests, use the
134
+ `SUB_TEST()`, `SUB_TEST_QUICK()` and `SUB_TEST_PASS()` from inside
135
+ the test functions to help differentiate test failures.
136
+
137
+
138
+ ## Test scenarios
139
+
140
+ A test scenario defines the cluster configuration used by tests.
141
+ The majority of tests use the "default" scenario which matches the
142
+ Apache Kafka default broker configuration (topic auto creation enabled, etc).
143
+
144
+ If a test relies on cluster configuration that is mutually exclusive with
145
+ the default configuration an alternate scenario must be defined in
146
+ `scenarios/<scenario>.json` which is a configuration object which
147
+ is passed to [trivup](https://github.com/edenhill/trivup).
148
+
149
+ Try to reuse an existing test scenario as far as possible to speed up
150
+ test times, since each new scenario will require a new cluster incarnation.
151
+
152
+
153
+ ## A guide to testing, verifying, and troubleshooting, librdkafka
154
+
155
+
156
+ ### Creating a development build
157
+
158
+ The [dev-conf.sh](../dev-conf.sh) script configures and builds librdkafka and
159
+ the test suite for development use, enabling extra runtime
160
+ checks (`ENABLE_DEVEL`, `rd_dassert()`, etc), disabling optimization
161
+ (to get accurate stack traces and line numbers), enable ASAN, etc.
162
+
163
+ # Reconfigure librdkafka for development use and rebuild.
164
+ $ ./dev-conf.sh
165
+
166
+ **NOTE**: Performance tests and benchmarks should not use a development build.
167
+
168
+
169
+ ### Controlling the test framework
170
+
171
+ A test run may be dynamically set up using a number of environment variables.
172
+ These environment variables work for all different ways of invocing the tests,
173
+ be it `make`, `run-test.sh`, `until-fail.sh`, etc.
174
+
175
+ * `TESTS=0nnn` - only run a single test identified by its full number, e.g.
176
+ `TESTS=0102 make`. (Yes, the var should have been called TEST)
177
+ * `SUBTESTS=...` - only run sub-tests (tests that are using `SUB_TEST()`)
178
+ that contains this string.
179
+ * `TESTS_SKIP=...` - skip these tests.
180
+ * `TEST_DEBUG=...` - this will automatically set the `debug` config property
181
+ of all instantiated clients to the value.
182
+ E.g.. `TEST_DEBUG=broker,protocol TESTS=0001 make`
183
+ * `TESTS_TO_DEBUG=0nnn,0mmm` - when used with `TEST_DEBUG`, limits debug
184
+ logging to only the specified comma-separated test numbers.
185
+ This is useful when running multiple tests but only wanting
186
+ debug output from specific ones.
187
+ E.g., `TESTS_TO_DEBUG=0172,0171 TEST_DEBUG=all make`
188
+ * `TEST_LEVEL=n` - controls the `TEST_SAY()` output level, a higher number
189
+ yields more test output. Default level is 2.
190
+ * `RD_UT_TEST=name` - only run unittest containing `name`, should be used
191
+ with `TESTS=0000`.
192
+ See [../src/rdunittest.c](../src/rdunittest.c) for
193
+ unit test names.
194
+ * `TESTS_SKIP_BEFORE=0nnn` - skip tests before this test. Tests are skipped
195
+ even if they are part of `TESTS` variable.
196
+ Usage: `TESTS_SKIP_BEFORE=0030`. All the tests
197
+ until test 0030 are skipped.
198
+
199
+
200
+ Let's say that you run the full test suite and get a failure in test 0061,
201
+ which is a consumer test. You want to quickly reproduce the issue
202
+ and figure out what is wrong, so limit the tests to just 0061, and provide
203
+ the relevant debug options (which is typically `cgrp,fetch` for consumers):
204
+
205
+ $ TESTS=0061 TEST_DEBUG=cgrp,fetch make
206
+
207
+ If the test did not fail you've found an intermittent issue, this is where
208
+ [until-fail.sh](until-fail.sh) comes in to play, so run the test until it fails:
209
+
210
+ # bare means to run the test without valgrind
211
+ $ TESTS=0061 TEST_DEBUG=cgrp,fetch ./until-fail.sh bare
212
+
213
+
214
+ ### How to run tests
215
+
216
+ The standard way to run the test suite is firing up a trivup cluster
217
+ in an interactive shell:
218
+
219
+ $ ./interactive_broker_version.py 2.3.0 # Broker version
220
+
221
+
222
+ And then running the test suite in parallel:
223
+
224
+ $ make
225
+
226
+
227
+ Run one test at a time:
228
+
229
+ $ make run_seq
230
+
231
+
232
+ Run a single test:
233
+
234
+ $ TESTS=0034 make
235
+
236
+
237
+ Run test suite with valgrind (see instructions below):
238
+
239
+ $ ./run-test.sh valgrind # memory checking
240
+
241
+ or with helgrind (the valgrind thread checker):
242
+
243
+ $ ./run-test.sh helgrind # thread checking
244
+
245
+
246
+ To run the tests in gdb:
247
+
248
+ **NOTE**: gdb support is flaky on OSX due to signing issues.
249
+
250
+ $ ./run-test.sh gdb
251
+ (gdb) run
252
+
253
+ # wait for test to crash, or interrupt with Ctrl-C
254
+
255
+ # backtrace of current thread
256
+ (gdb) bt
257
+ # move up or down a stack frame
258
+ (gdb) up
259
+ (gdb) down
260
+ # select specific stack frame
261
+ (gdb) frame 3
262
+ # show code at location
263
+ (gdb) list
264
+
265
+ # print variable content
266
+ (gdb) p rk.rk_conf.group_id
267
+ (gdb) p *rkb
268
+
269
+ # continue execution (if interrupted)
270
+ (gdb) cont
271
+
272
+ # single-step one instruction
273
+ (gdb) step
274
+
275
+ # restart
276
+ (gdb) run
277
+
278
+ # see all threads
279
+ (gdb) info threads
280
+
281
+ # see backtraces of all threads
282
+ (gdb) thread apply all bt
283
+
284
+ # exit gdb
285
+ (gdb) exit
286
+
287
+
288
+ If a test crashes and produces a core file (make sure your shell has
289
+ `ulimit -c unlimited` set!), do:
290
+
291
+ # On linux
292
+ $ LD_LIBRARY_PATH=../src:../src-cpp gdb ./test-runner <core-file>
293
+ (gdb) bt
294
+
295
+ # On OSX
296
+ $ DYLD_LIBRARY_PATH=../src:../src-cpp gdb ./test-runner /cores/core.<pid>
297
+ (gdb) bt
298
+
299
+
300
+ To run all tests repeatedly until one fails, this is a good way of finding
301
+ intermittent failures, race conditions, etc:
302
+
303
+ $ ./until-fail.sh bare # bare is to run the test without valgrind,
304
+ # may also be one or more of the modes supported
305
+ # by run-test.sh:
306
+ # bare valgrind helgrind gdb, etc..
307
+
308
+ To run a single test repeatedly with valgrind until failure:
309
+
310
+ $ TESTS=0103 ./until-fail.sh valgrind
311
+
312
+
313
+
314
+ ### Finding memory leaks, memory corruption, etc.
315
+
316
+ There are two ways to verifying there are no memory leaks, out of bound
317
+ memory accesses, use after free, etc. ASAN or valgrind.
318
+
319
+ #### ASAN - AddressSanitizer
320
+
321
+ The first option is using AddressSanitizer, this is build-time instrumentation
322
+ provided by clang and gcc to insert memory checks in the build library.
323
+
324
+ To enable AddressSanitizer (ASAN), run `./dev-conf.sh asan` from the
325
+ librdkafka root directory.
326
+ This script will rebuild librdkafka and the test suite with ASAN enabled.
327
+
328
+ Then run tests as usual. Memory access issues will be reported on stderr
329
+ in real time as they happen (and the test will fail eventually), while
330
+ memory leaks will be reported on stderr when the test run exits successfully,
331
+ i.e., no tests failed.
332
+
333
+ Test failures will typically cause the current test to exit hard without
334
+ cleaning up, in which case there will be a large number of reported memory
335
+ leaks, these shall be ignored. The memory leak report is only relevant
336
+ when the test suite passes.
337
+
338
+ **NOTE**: The OSX version of ASAN does not provide memory leak protection,
339
+ you will need to run the test suite on Linux (native or in Docker).
340
+
341
+ **NOTE**: ASAN, TSAN and valgrind are mutually exclusive.
342
+
343
+
344
+ #### Valgrind - memory checker
345
+
346
+ Valgrind is a powerful virtual machine that intercepts all memory accesses
347
+ of an unmodified program, reporting memory access violations, use after free,
348
+ memory leaks, etc.
349
+
350
+ Valgrind provides additional checks over ASAN and is mostly useful
351
+ for troubleshooting crashes, memory issues and leaks when ASAN falls short.
352
+
353
+ To use valgrind, make sure librdkafka and the test suite is built without
354
+ ASAN or TSAN, it must be a clean build without any other instrumentation,
355
+ then simply run:
356
+
357
+ $ ./run-test.sh valgrind
358
+
359
+ Valgrind will report to stderr, just like ASAN.
360
+
361
+
362
+ **NOTE**: Valgrind only runs on Linux.
363
+
364
+ **NOTE**: ASAN, TSAN and valgrind are mutually exclusive.
365
+
366
+
367
+ ### TSAN - Thread and locking issues
368
+
369
+ librdkafka uses a number of internal threads which communicate and share state
370
+ through op queues, conditional variables, mutexes and atomics.
371
+
372
+ While the docstrings in the librdkafka source code specify what locking is
373
+ required it is very hard to manually verify that the correct locks
374
+ are acquired, and in the correct order (to avoid deadlocks).
375
+
376
+ TSAN, ThreadSanitizer, is of great help here. As with ASAN, TSAN is a
377
+ build-time option: run `./dev-conf.sh tsan` to rebuild with TSAN.
378
+
379
+ Run the test suite as usual, preferably in parallel. TSAN will output
380
+ thread errors to stderr and eventually fail the test run.
381
+
382
+ If you're having threading issues and TSAN does not provide enough information
383
+ to sort it out, you can also try running the test with helgrind, which
384
+ is valgrind's thread checker (`./run-test.sh helgrind`).
385
+
386
+
387
+ **NOTE**: ASAN, TSAN and valgrind are mutually exclusive.
388
+
389
+
390
+ ### Resource usage thresholds (experimental)
391
+
392
+ **NOTE**: This is an experimental feature, some form of system-specific
393
+ calibration will be needed.
394
+
395
+ If the `-R` option is passed to the `test-runner`, or the `make rusage`
396
+ target is used, the test framework will monitor each test's resource usage
397
+ and fail the test if the default or test-specific thresholds are exceeded.
398
+
399
+ Per-test thresholds are specified in test.c using the `_THRES()` macro.
400
+
401
+ Currently monitored resources are:
402
+ * `utime` - User CPU time in seconds (default 1.0s)
403
+ * `stime` - System/Kernel CPU time in seconds (default 0.5s).
404
+ * `rss` - RSS (memory) usage (default 10.0 MB)
405
+ * `ctxsw` - Number of voluntary context switches, e.g. syscalls (default 10000).
406
+
407
+ Upon successful test completion a log line will be emitted with a resource
408
+ usage summary, e.g.:
409
+
410
+ Test resource usage summary: 20.161s (32.3%) User CPU time, 12.976s (20.8%) Sys CPU time, 0.000MB RSS memory increase, 4980 Voluntary context switches
411
+
412
+ The User and Sys CPU thresholds are based on observations running the
413
+ test suite on an Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (8 cores)
414
+ which define the base line system.
415
+
416
+ Since no two development environments are identical a manual CPU calibration
417
+ value can be passed as `-R<C>`, where `C` is the CPU calibration for
418
+ the local system compared to the base line system.
419
+ The CPU threshold will be multiplied by the CPU calibration value (default 1.0),
420
+ thus a value less than 1.0 means the local system is faster than the
421
+ base line system, and a value larger than 1.0 means the local system is
422
+ slower than the base line system.
423
+ I.e., if you are on an i5 system, pass `-R2.0` to allow higher CPU usages,
424
+ or `-R0.8` if your system is faster than the base line system.
425
+ The the CPU calibration value may also be set with the
426
+ `TEST_CPU_CALIBRATION=1.5` environment variable.
427
+
428
+ In an ideal future, the test suite would be able to auto-calibrate.
429
+
430
+
431
+ **NOTE**: The resource usage threshold checks will run tests in sequence,
432
+ not parallell, to be able to effectively measure per-test usage.
433
+
434
+
435
+ # PR and release verification
436
+
437
+ Prior to pushing your PR you must verify that your code change has not
438
+ introduced any regression or new issues, this requires running the test
439
+ suite in multiple different modes:
440
+
441
+ * PLAINTEXT, SSL transports
442
+ * All SASL mechanisms (PLAIN, GSSAPI, SCRAM, OAUTHBEARER)
443
+ * Idempotence enabled for all tests
444
+ * With memory checking
445
+ * With thread checking
446
+ * Compatibility with older broker versions
447
+
448
+ These tests must also be run for each release candidate that is created.
449
+
450
+ $ make release-test
451
+
452
+ This will take approximately 30 minutes.
453
+
454
+ **NOTE**: Run this on Linux (for ASAN and Kerberos tests to work properly), not OSX.
455
+
456
+
457
+ # Test mode specifics
458
+
459
+ The following sections rely on trivup being installed.
460
+
461
+
462
+ ### Compatbility tests with multiple broker versions
463
+
464
+ To ensure compatibility across all supported broker versions the entire
465
+ test suite is run in a trivup based cluster, one test run for each
466
+ relevant broker version.
467
+
468
+ $ ./broker_version_tests.py
469
+
470
+
471
+ ### SASL tests
472
+
473
+ Testing SASL requires a bit of configuration on the brokers, to automate
474
+ this the entire test suite is run on trivup based clusters.
475
+
476
+ $ ./sasl_tests.py
477
+
478
+
479
+
480
+ ### Full test suite(s) run
481
+
482
+ To run all tests, including the broker version and SASL tests, etc, use
483
+
484
+ $ make full
485
+
486
+ **NOTE**: `make full` is a sub-set of the more complete `make release-test` target.
487
+
488
+
489
+ ### Idempotent Producer tests
490
+
491
+ To run the entire test suite with `enable.idempotence=true` enabled, use
492
+ `make idempotent_seq` or `make idempotent_par` for sequencial or
493
+ parallel testing.
494
+ Some tests are skipped or slightly modified when idempotence is enabled.
495
+
496
+
497
+ ## Manual testing notes
498
+
499
+ The following manual tests are currently performed manually, they should be
500
+ implemented as automatic tests.
501
+
502
+ ### LZ4 interop
503
+
504
+ $ ./interactive_broker_version.py -c ./lz4_manual_test.py 0.8.2.2 0.9.0.1 2.3.0
505
+
506
+ Check the output and follow the instructions.
507
+
508
+
509
+
510
+
511
+ ## Test numbers
512
+
513
+ Automated tests: 0000-0999
514
+ Manual tests: 8000-8999