couchbase 3.0.0.alpha.4-universal-darwin-19 → 3.0.0.alpha.5-universal-darwin-19

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 (749) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/bin/fetch-stats +19 -0
  4. data/bin/init-cluster +24 -24
  5. data/bin/jenkins/build-extension +35 -0
  6. data/bin/jenkins/install-dependencies +47 -0
  7. data/bin/jenkins/test-with-cbdyncluster +58 -0
  8. data/couchbase.gemspec +27 -1
  9. data/examples/subdocument.rb +2 -2
  10. data/ext/build_version.hxx.in +1 -1
  11. data/ext/couchbase/cluster.hxx +41 -40
  12. data/ext/couchbase/couchbase.cxx +174 -61
  13. data/ext/couchbase/io/dns_message.hxx +3 -6
  14. data/ext/couchbase/io/http_session.hxx +31 -26
  15. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +3 -3
  16. data/ext/couchbase/io/mcbp_message.hxx +19 -2
  17. data/ext/couchbase/io/mcbp_session.hxx +89 -47
  18. data/ext/couchbase/operations/command.hxx +18 -7
  19. data/ext/couchbase/operations/document_analytics.hxx +5 -6
  20. data/ext/couchbase/operations/document_decrement.hxx +2 -1
  21. data/ext/couchbase/operations/document_exists.hxx +2 -1
  22. data/ext/couchbase/operations/document_get.hxx +2 -1
  23. data/ext/couchbase/operations/document_get_and_lock.hxx +2 -1
  24. data/ext/couchbase/operations/document_get_and_touch.hxx +2 -1
  25. data/ext/couchbase/operations/document_get_projected.hxx +2 -1
  26. data/ext/couchbase/operations/document_increment.hxx +2 -1
  27. data/ext/couchbase/operations/document_insert.hxx +2 -1
  28. data/ext/couchbase/operations/document_lookup_in.hxx +21 -1
  29. data/ext/couchbase/operations/document_mutate_in.hxx +44 -2
  30. data/ext/couchbase/operations/document_query.hxx +6 -7
  31. data/ext/couchbase/operations/document_remove.hxx +2 -1
  32. data/ext/couchbase/operations/document_replace.hxx +2 -1
  33. data/ext/couchbase/operations/document_search.hxx +3 -2
  34. data/ext/couchbase/operations/document_touch.hxx +2 -1
  35. data/ext/couchbase/operations/document_unlock.hxx +2 -1
  36. data/ext/couchbase/operations/document_upsert.hxx +2 -1
  37. data/ext/couchbase/operations/document_view.hxx +2 -1
  38. data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
  39. data/ext/couchbase/protocol/client_opcode.hxx +7 -3
  40. data/ext/couchbase/protocol/client_response.hxx +1 -1
  41. data/ext/couchbase/protocol/cmd_hello.hxx +10 -0
  42. data/ext/couchbase/protocol/cmd_lookup_in.hxx +1 -0
  43. data/ext/couchbase/protocol/cmd_mutate_in.hxx +53 -5
  44. data/ext/couchbase/version.hxx +1 -1
  45. data/ext/extconf.rb +1 -1
  46. data/lib/couchbase/bucket.rb +3 -0
  47. data/lib/couchbase/cluster.rb +5 -0
  48. data/lib/couchbase/collection.rb +18 -6
  49. data/lib/couchbase/collection_options.rb +50 -7
  50. data/lib/couchbase/errors.rb +2 -2
  51. data/lib/couchbase/subdoc.rb +80 -19
  52. data/lib/couchbase/version.rb +1 -1
  53. metadata +7 -705
  54. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  55. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  56. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  57. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  58. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  59. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  60. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  61. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  62. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  63. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  64. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  65. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  66. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  67. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  68. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  69. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  70. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  71. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  72. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  73. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  74. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  75. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  76. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  77. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  78. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  79. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  80. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  81. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  82. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  83. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  84. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  85. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  86. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  87. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  88. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  89. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  90. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  91. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  92. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  93. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  94. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  95. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  96. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  97. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  98. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  99. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  100. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  101. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  102. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  103. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  104. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  105. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  106. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  107. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  108. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  109. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  110. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  111. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  112. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  113. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  114. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  115. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  116. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  117. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  118. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  119. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  120. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  121. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  122. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  123. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  124. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  125. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  126. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  127. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  128. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  129. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  130. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  131. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  132. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  133. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  134. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  135. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  136. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  137. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  138. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  139. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  140. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  141. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  142. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  143. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  144. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  145. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  146. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  147. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  148. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  149. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  150. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  151. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  152. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  153. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  154. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  155. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  156. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  157. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  158. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  159. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  160. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  161. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  162. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  163. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  164. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  165. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  166. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  167. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  168. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  169. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  170. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  171. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  172. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  173. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  174. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  175. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  176. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  177. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  178. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  179. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  180. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  181. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  182. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  183. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  184. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  185. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  186. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  187. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  188. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  189. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  190. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  191. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  192. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  193. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  194. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  195. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  196. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  197. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  198. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  199. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  200. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  201. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  202. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  203. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  204. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  205. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  206. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  207. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  208. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  209. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  210. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  211. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  212. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  213. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  214. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  215. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  216. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  217. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  218. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  219. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  220. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  221. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  222. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  223. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  224. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  225. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  226. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  227. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  228. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  229. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  230. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  231. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  232. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  233. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  234. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  235. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  236. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  237. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  238. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  239. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  240. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  241. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  242. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  243. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  244. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  245. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  246. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  247. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  248. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  249. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  250. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  251. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  252. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  253. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  254. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  255. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  256. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  257. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  258. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  259. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  260. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  261. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  262. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  263. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  264. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  265. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  266. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  267. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  268. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  269. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  270. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  271. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  272. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  273. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  274. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  275. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  276. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  277. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  278. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  279. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  280. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  281. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  282. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  283. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  284. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  285. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  286. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  287. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  288. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  289. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  290. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  291. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  292. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  293. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  294. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  295. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  296. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  297. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  298. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  299. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  300. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  301. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  302. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  303. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  304. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  305. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  306. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  307. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  308. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  309. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  310. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  311. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  312. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  313. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  314. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  315. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  316. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  317. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  318. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  319. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  320. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  321. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  322. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  323. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  324. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  325. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  326. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  327. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  328. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  329. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  330. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  331. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  332. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  333. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  334. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  335. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  336. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  337. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  338. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  339. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  340. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  341. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  342. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  343. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  344. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  345. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  346. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  347. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  348. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  349. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  350. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  351. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  352. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  353. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  354. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  355. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  356. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  357. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  358. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  359. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  360. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  361. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  362. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  363. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  364. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  365. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  366. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  367. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  368. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  369. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  370. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  371. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  372. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  373. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  374. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  375. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  376. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  377. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  378. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  379. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  380. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  381. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  382. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  383. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  384. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  385. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  386. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  387. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  388. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  389. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  390. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  391. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  392. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  393. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  394. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  395. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  396. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  397. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  398. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  399. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  400. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  401. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  402. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  403. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  404. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  405. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  406. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  407. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  408. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  409. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  410. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  411. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  412. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  413. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  414. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  415. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  416. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  417. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  418. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  419. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  420. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  421. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  422. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  423. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  424. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  425. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  426. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  427. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  428. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  429. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  430. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  431. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  432. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  433. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  434. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  435. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  436. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  437. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  438. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  439. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  440. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  441. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  442. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  443. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  444. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  445. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  446. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  447. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  448. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  449. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  450. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  451. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  452. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  453. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  454. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  455. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  456. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  457. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  458. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  459. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  460. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  461. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  462. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  463. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  464. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  465. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  466. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  467. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  468. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  469. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  470. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  471. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  472. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  473. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  474. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  475. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  476. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  477. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  478. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  479. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  480. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  481. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  482. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  483. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  484. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  485. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  486. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  487. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  488. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  489. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  490. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  491. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  492. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  493. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  494. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  495. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  496. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  497. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  498. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  499. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  500. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  501. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  502. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  503. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  504. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  505. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  506. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  507. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  508. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  509. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  510. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  511. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  512. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  513. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  514. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  515. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  516. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  517. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  518. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  519. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  520. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  521. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  522. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  523. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  524. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  525. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  526. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  527. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  528. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  529. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  530. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  531. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  532. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  533. data/ext/third_party/json/doc/Changelog.md +0 -31
  534. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  535. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  536. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  537. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  538. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  539. data/ext/third_party/json/doc/Interoperability.md +0 -75
  540. data/ext/third_party/json/doc/Overview.md +0 -24
  541. data/ext/third_party/json/doc/Overview.png +0 -0
  542. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  543. data/ext/third_party/json/doc/README.md +0 -78
  544. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  545. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  546. data/ext/third_party/json/doc/Types.png +0 -0
  547. data/ext/third_party/json/doc/Value-Class.md +0 -525
  548. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  549. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  550. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  551. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  552. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  553. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  554. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  555. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  556. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  557. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  558. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  559. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  560. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  561. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  562. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  563. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  564. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  565. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  566. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  567. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  568. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  569. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  570. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  571. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  572. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  573. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  574. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  575. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  576. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  577. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  578. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  579. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  580. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  581. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  582. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  583. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  584. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  585. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  586. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  587. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  588. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  589. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  590. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  591. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  592. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  593. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  594. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  595. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  596. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  597. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  598. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  599. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  600. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  601. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  602. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  603. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  604. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  605. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  606. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  607. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  608. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  609. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  610. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  611. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  612. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  613. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  614. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  615. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  616. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  617. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  618. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  619. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  620. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  621. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  622. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  623. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  624. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  625. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  626. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  627. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  628. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  629. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  630. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  631. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  632. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  633. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  634. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  635. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  636. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  637. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  638. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  639. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  640. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  641. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  642. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  643. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  644. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  645. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  646. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  647. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  648. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  649. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  650. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  651. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  652. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  653. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  654. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  655. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  656. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  657. data/ext/third_party/json/tests/blns.json +0 -496
  658. data/ext/third_party/json/tests/canada.json +0 -9
  659. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  660. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  661. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  662. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  663. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  664. data/ext/third_party/json/tests/draft4/default.json +0 -49
  665. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  666. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  667. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  668. data/ext/third_party/json/tests/draft4/items.json +0 -46
  669. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  670. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  671. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  672. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  673. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  674. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  675. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  676. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  677. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  678. data/ext/third_party/json/tests/draft4/not.json +0 -96
  679. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  680. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  681. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  682. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  683. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  684. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  685. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  686. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  687. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  688. data/ext/third_party/json/tests/draft4/required.json +0 -44
  689. data/ext/third_party/json/tests/draft4/type.json +0 -345
  690. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  691. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  692. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  693. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  694. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  695. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  696. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  697. data/ext/third_party/json/tests/twitter.json +0 -15482
  698. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  699. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  700. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  701. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  702. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  703. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  704. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  705. data/ext/third_party/snappy/testdata/html +0 -1
  706. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  707. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  708. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  709. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  710. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  711. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  712. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  713. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  714. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  715. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  716. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  717. data/ext/third_party/spdlog/bench/utils.h +0 -34
  718. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  719. data/ext/third_party/spdlog/example/example.cpp +0 -282
  720. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  721. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  722. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  723. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  724. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  725. data/ext/third_party/spdlog/tests/catch.license +0 -23
  726. data/ext/third_party/spdlog/tests/includes.h +0 -26
  727. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  728. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  729. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  730. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  731. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  732. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  733. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  734. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  735. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  736. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  737. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  738. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  739. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  740. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  741. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  742. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  743. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  744. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  745. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  746. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  747. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  748. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  749. data/ext/third_party/spdlog/tests/utils.h +0 -18
@@ -1,1217 +0,0 @@
1
- ///////////////////////////////////////////////////////////////////////////////
2
- //
3
- // Copyright (c) 2015 Microsoft Corporation. All rights reserved.
4
- //
5
- // This code is licensed under the MIT License (MIT).
6
- //
7
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
10
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
13
- // THE SOFTWARE.
14
- //
15
- ///////////////////////////////////////////////////////////////////////////////
16
-
17
- #include <gtest/gtest.h>
18
-
19
- #include <gsl/gsl_assert> // for Expects, fail_fast (ptr only)
20
- #include <gsl/pointers> // for owner
21
- #include <gsl/span> // for span, dynamic_extent
22
- #include <gsl/string_span> // for basic_string_span, operator==, ensure_z
23
-
24
- #include <algorithm> // for move, find
25
- #include <cstddef> // for size_t
26
- #include <map> // for map
27
- #include <string> // for basic_string, string, char_traits, operat...
28
- #include <type_traits> // for remove_reference<>::type
29
- #include <vector> // for vector, allocator
30
-
31
- using namespace std;
32
- using namespace gsl;
33
-
34
- namespace
35
- {
36
- static constexpr char deathstring[] = "Expected Death";
37
- }
38
- // Generic string functions
39
-
40
- namespace generic
41
- {
42
-
43
- template <typename CharT>
44
- auto strlen(const CharT* s)
45
- {
46
- auto p = s;
47
- while (*p) ++p;
48
- return p - s;
49
- }
50
-
51
- template <typename CharT>
52
- auto strnlen(const CharT* s, std::size_t n)
53
- {
54
- return std::find(s, s + n, CharT{0}) - s;
55
- }
56
-
57
- } // namespace generic
58
-
59
- namespace
60
- {
61
-
62
- template <typename T>
63
- T move_wrapper(T&& t)
64
- {
65
- return std::move(t);
66
- }
67
-
68
- // not used otherwise
69
- #ifdef CONFIRM_COMPILATION_ERRORS
70
-
71
- template <class T>
72
- T create()
73
- {
74
- return T{};
75
- }
76
-
77
- template <class T>
78
- void use(basic_string_span<T, gsl::dynamic_extent>)
79
- {
80
- }
81
- #endif
82
-
83
- czstring_span<> CreateTempName(string_span<> span)
84
- {
85
- Expects(span.size() > 1);
86
-
87
- std::size_t last = 0;
88
- if (span.size() > 4) {
89
- span[0] = 't';
90
- span[1] = 'm';
91
- span[2] = 'p';
92
- last = 3;
93
- }
94
- span[last] = '\0';
95
-
96
- auto ret = span.subspan(0, 4);
97
- return {ret};
98
- }
99
-
100
- cwzstring_span<> CreateTempNameW(wstring_span<> span)
101
- {
102
- Expects(span.size() > 1);
103
-
104
- std::size_t last = 0;
105
- if (span.size() > 4) {
106
- span[0] = L't';
107
- span[1] = L'm';
108
- span[2] = L'p';
109
- last = 3;
110
- }
111
- span[last] = L'\0';
112
-
113
- auto ret = span.subspan(0, 4);
114
- return {ret};
115
- }
116
-
117
- cu16zstring_span<> CreateTempNameU16(u16string_span<> span)
118
- {
119
- Expects(span.size() > 1);
120
-
121
- std::size_t last = 0;
122
- if (span.size() > 4) {
123
- span[0] = u't';
124
- span[1] = u'm';
125
- span[2] = u'p';
126
- last = 3;
127
- }
128
- span[last] = u'\0';
129
-
130
- auto ret = span.subspan(0, 4);
131
- return {ret};
132
- }
133
-
134
- cu32zstring_span<> CreateTempNameU32(u32string_span<> span)
135
- {
136
- Expects(span.size() > 1);
137
-
138
- std::size_t last = 0;
139
- if (span.size() > 4) {
140
- span[0] = U't';
141
- span[1] = U'm';
142
- span[2] = U'p';
143
- last = 3;
144
- }
145
- span[last] = U'\0';
146
-
147
- auto ret = span.subspan(0, 4);
148
- return {ret};
149
- }
150
- } // namespace
151
-
152
- TEST(string_span_tests, TestLiteralConstruction)
153
- {
154
- cwstring_span<> v = ensure_z(L"Hello");
155
- EXPECT_TRUE(5 == v.length());
156
-
157
- #ifdef CONFIRM_COMPILATION_ERRORS
158
- wstring_span<> v2 = ensure0(L"Hello");
159
- #endif
160
- }
161
-
162
- TEST(string_span_tests, TestConstructFromStdString)
163
- {
164
- std::string s = "Hello there world";
165
- cstring_span<> v = s;
166
- EXPECT_TRUE(v.length() == static_cast<cstring_span<>::size_type>(s.length()));
167
- }
168
-
169
- TEST(string_span_tests, TestConstructFromStdVector)
170
- {
171
- std::vector<char> vec(5, 'h');
172
- string_span<> v{vec};
173
- EXPECT_TRUE(v.length() == static_cast<string_span<>::size_type>(vec.size()));
174
- }
175
-
176
- TEST(string_span_tests, TestStackArrayConstruction)
177
- {
178
- wchar_t stack_string[] = L"Hello";
179
-
180
- {
181
- cwstring_span<> v = ensure_z(stack_string);
182
- EXPECT_TRUE(v.length() == 5);
183
- }
184
-
185
- {
186
- cwstring_span<> v = stack_string;
187
- EXPECT_TRUE(v.length() == 5);
188
- }
189
-
190
- {
191
- wstring_span<> v = ensure_z(stack_string);
192
- EXPECT_TRUE(v.length() == 5);
193
- }
194
-
195
- {
196
- wstring_span<> v = stack_string;
197
- EXPECT_TRUE(v.length() == 5);
198
- }
199
- }
200
-
201
- TEST(string_span_tests, TestConstructFromConstCharPointer)
202
- {
203
- const char* s = "Hello";
204
- cstring_span<> v = ensure_z(s);
205
- EXPECT_TRUE(v.length() == 5);
206
- }
207
-
208
- TEST(string_span_tests, TestConversionToConst)
209
- {
210
- char stack_string[] = "Hello";
211
- string_span<> v = ensure_z(stack_string);
212
- cstring_span<> v2 = v;
213
- EXPECT_TRUE(v.length() == v2.length());
214
- }
215
-
216
- TEST(string_span_tests, TestConversionFromConst)
217
- {
218
- char stack_string[] = "Hello";
219
- cstring_span<> v = ensure_z(stack_string);
220
- (void) v;
221
- #ifdef CONFIRM_COMPILATION_ERRORS
222
- string_span<> v2 = v;
223
- string_span<> v3 = "Hello";
224
- #endif
225
- }
226
-
227
- TEST(string_span_tests, TestToString)
228
- {
229
- auto s = gsl::to_string(cstring_span<>{});
230
- EXPECT_TRUE(s.length() == static_cast<size_t>(0));
231
-
232
- char stack_string[] = "Hello";
233
- cstring_span<> v = ensure_z(stack_string);
234
- auto s2 = gsl::to_string(v);
235
- EXPECT_TRUE(static_cast<cstring_span<>::size_type>(s2.length()) == v.length());
236
- EXPECT_TRUE(s2.length() == static_cast<size_t>(5));
237
- }
238
-
239
- TEST(string_span_tests, TestToBasicString)
240
- {
241
- auto s = gsl::to_basic_string<char, std::char_traits<char>, ::std::allocator<char>>(
242
- cstring_span<>{});
243
- EXPECT_TRUE(s.length() == static_cast<size_t>(0));
244
-
245
- char stack_string[] = "Hello";
246
- cstring_span<> v = ensure_z(stack_string);
247
- auto s2 = gsl::to_basic_string<char, std::char_traits<char>, ::std::allocator<char>>(v);
248
- EXPECT_TRUE(static_cast<cstring_span<>::size_type>(s2.length()) == v.length());
249
- EXPECT_TRUE(s2.length() == static_cast<size_t>(5));
250
- }
251
-
252
- TEST(string_span_tests, EqualityAndImplicitConstructors)
253
- {
254
- {
255
- cstring_span<> span = "Hello";
256
- cstring_span<> span1;
257
-
258
- // comparison to empty span
259
- EXPECT_TRUE(span1 != span);
260
- EXPECT_TRUE(span != span1);
261
- }
262
-
263
- {
264
- cstring_span<> span = "Hello";
265
- cstring_span<> span1 = "Hello1";
266
-
267
- // comparison to different span
268
- EXPECT_TRUE(span1 != span);
269
- EXPECT_TRUE(span != span1);
270
- }
271
-
272
- {
273
- cstring_span<> span = "Hello";
274
-
275
- const char ar[] = {'H', 'e', 'l', 'l', 'o'};
276
- const char ar1[] = "Hello";
277
- const char ar2[10] = "Hello";
278
- const char* ptr = "Hello";
279
- const std::string str = "Hello";
280
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
281
- gsl::span<const char> sp = ensure_z("Hello");
282
-
283
- // comparison to literal
284
- EXPECT_TRUE(span == cstring_span<>("Hello"));
285
-
286
- // comparison to static array with no null termination
287
- EXPECT_TRUE(span == cstring_span<>(ar));
288
-
289
- // comparison to static array with null at the end
290
- EXPECT_TRUE(span == cstring_span<>(ar1));
291
-
292
- // comparison to static array with null in the middle
293
- EXPECT_TRUE(span == cstring_span<>(ar2));
294
-
295
- // comparison to null-terminated c string
296
- EXPECT_TRUE(span == cstring_span<>(ptr, 5));
297
-
298
- // comparison to string
299
- EXPECT_TRUE(span == cstring_span<>(str));
300
-
301
- // comparison to vector of charaters with no null termination
302
- EXPECT_TRUE(span == cstring_span<>(vec));
303
-
304
- // comparison to span
305
- EXPECT_TRUE(span == cstring_span<>(sp));
306
-
307
- // comparison to string_span
308
- EXPECT_TRUE(span == span);
309
- }
310
-
311
- {
312
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
313
-
314
- string_span<> span = ar;
315
-
316
- char ar1[] = "Hello";
317
- char ar2[10] = "Hello";
318
- char* ptr = ar;
319
- std::string str = "Hello";
320
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
321
- gsl::span<char> sp = ensure_z(ar1);
322
-
323
- // comparison to static array with no null termination
324
- EXPECT_TRUE(span == string_span<>(ar));
325
-
326
- // comparison to static array with null at the end
327
- EXPECT_TRUE(span == string_span<>(ar1));
328
-
329
- // comparison to static array with null in the middle
330
- EXPECT_TRUE(span == string_span<>(ar2));
331
-
332
- // comparison to null-terminated c string
333
- EXPECT_TRUE(span == string_span<>(ptr, 5));
334
-
335
- // comparison to string
336
- EXPECT_TRUE(span == string_span<>(str));
337
-
338
- // comparison to vector of charaters with no null termination
339
- EXPECT_TRUE(span == string_span<>(vec));
340
-
341
- // comparison to span
342
- EXPECT_TRUE(span == string_span<>(sp));
343
-
344
- // comparison to string_span
345
- EXPECT_TRUE(span == span);
346
- }
347
-
348
- {
349
- const char ar[] = {'H', 'e', 'l', 'l', 'o'};
350
- const char ar1[] = "Hello";
351
- const char ar2[10] = "Hello";
352
- const std::string str = "Hello";
353
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
354
- const gsl::span<const char> sp = ensure_z("Hello");
355
-
356
- cstring_span<> span = "Hello";
357
-
358
- // const span, const other type
359
-
360
- EXPECT_TRUE(span == "Hello");
361
- EXPECT_TRUE(span == ar);
362
- EXPECT_TRUE(span == ar1);
363
- EXPECT_TRUE(span == ar2);
364
- #ifdef CONFIRM_COMPILATION_ERRORS
365
- const char* ptr = "Hello";
366
- EXPECT_TRUE(span == ptr);
367
- #endif
368
- EXPECT_TRUE(span == str);
369
- EXPECT_TRUE(span == vec);
370
- EXPECT_TRUE(span == sp);
371
-
372
- EXPECT_TRUE("Hello" == span);
373
- EXPECT_TRUE(ar == span);
374
- EXPECT_TRUE(ar1 == span);
375
- EXPECT_TRUE(ar2 == span);
376
- #ifdef CONFIRM_COMPILATION_ERRORS
377
- EXPECT_TRUE(ptr == span);
378
- #endif
379
- EXPECT_TRUE(str == span);
380
- EXPECT_TRUE(vec == span);
381
- EXPECT_TRUE(sp == span);
382
-
383
- // const span, non-const other type
384
-
385
- char _ar[] = {'H', 'e', 'l', 'l', 'o'};
386
- char _ar1[] = "Hello";
387
- char _ar2[10] = "Hello";
388
- char* _ptr = _ar;
389
- std::string _str = "Hello";
390
- std::vector<char> _vec = {'H', 'e', 'l', 'l', 'o'};
391
- gsl::span<char> _sp{_ar, 5};
392
-
393
- EXPECT_TRUE(span == _ar);
394
- EXPECT_TRUE(span == _ar1);
395
- EXPECT_TRUE(span == _ar2);
396
- #ifdef CONFIRM_COMPILATION_ERRORS
397
- EXPECT_TRUE(span == _ptr);
398
- #endif
399
- EXPECT_TRUE(span == _str);
400
- EXPECT_TRUE(span == _vec);
401
- EXPECT_TRUE(span == _sp);
402
-
403
- EXPECT_TRUE(_ar == span);
404
- EXPECT_TRUE(_ar1 == span);
405
- EXPECT_TRUE(_ar2 == span);
406
- #ifdef CONFIRM_COMPILATION_ERRORS
407
- EXPECT_TRUE(_ptr == span);
408
- #endif
409
- EXPECT_TRUE(_str == span);
410
- EXPECT_TRUE(_vec == span);
411
- EXPECT_TRUE(_sp == span);
412
-
413
- string_span<> _span{_ptr, 5};
414
-
415
- // non-const span, non-const other type
416
-
417
- EXPECT_TRUE(_span == _ar);
418
- EXPECT_TRUE(_span == _ar1);
419
- EXPECT_TRUE(_span == _ar2);
420
- #ifdef CONFIRM_COMPILATION_ERRORS
421
- EXPECT_TRUE(_span == _ptr);
422
- #endif
423
- EXPECT_TRUE(_span == _str);
424
- EXPECT_TRUE(_span == _vec);
425
- EXPECT_TRUE(_span == _sp);
426
-
427
- EXPECT_TRUE(_ar == _span);
428
- EXPECT_TRUE(_ar1 == _span);
429
- EXPECT_TRUE(_ar2 == _span);
430
- #ifdef CONFIRM_COMPILATION_ERRORS
431
- EXPECT_TRUE(_ptr == _span);
432
- #endif
433
- EXPECT_TRUE(_str == _span);
434
- EXPECT_TRUE(_vec == _span);
435
- EXPECT_TRUE(_sp == _span);
436
-
437
- // non-const span, const other type
438
-
439
- EXPECT_TRUE(_span == "Hello");
440
- EXPECT_TRUE(_span == ar);
441
- EXPECT_TRUE(_span == ar1);
442
- EXPECT_TRUE(_span == ar2);
443
- #ifdef CONFIRM_COMPILATION_ERRORS
444
- EXPECT_TRUE(_span == ptr);
445
- #endif
446
- EXPECT_TRUE(_span == str);
447
- EXPECT_TRUE(_span == vec);
448
- EXPECT_TRUE(_span == sp);
449
-
450
- EXPECT_TRUE("Hello" == _span);
451
- EXPECT_TRUE(ar == _span);
452
- EXPECT_TRUE(ar1 == _span);
453
- EXPECT_TRUE(ar2 == _span);
454
- #ifdef CONFIRM_COMPILATION_ERRORS
455
- EXPECT_TRUE(ptr == _span);
456
- #endif
457
- EXPECT_TRUE(str == _span);
458
- EXPECT_TRUE(vec == _span);
459
- EXPECT_TRUE(sp == _span);
460
-
461
- // two spans
462
-
463
- EXPECT_TRUE(_span == span);
464
- EXPECT_TRUE(span == _span);
465
- }
466
-
467
- {
468
- std::vector<char> str1 = {'H', 'e', 'l', 'l', 'o'};
469
- cstring_span<> span1 = str1;
470
- std::vector<char> str2 = std::move(str1);
471
- cstring_span<> span2 = str2;
472
-
473
- // comparison of spans from the same vector before and after move (ok)
474
- EXPECT_TRUE(span1 == span2);
475
- }
476
- }
477
-
478
- TEST(string_span_tests, ComparisonAndImplicitConstructors)
479
- {
480
- {
481
- cstring_span<> span = "Hello";
482
-
483
- const char ar[] = {'H', 'e', 'l', 'l', 'o'};
484
- const char ar1[] = "Hello";
485
- const char ar2[10] = "Hello";
486
- const char* ptr = "Hello";
487
- const std::string str = "Hello";
488
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
489
-
490
- // comparison to literal
491
- EXPECT_TRUE(span < cstring_span<>("Helloo"));
492
- EXPECT_TRUE(span > cstring_span<>("Hell"));
493
-
494
- // comparison to static array with no null termination
495
- EXPECT_TRUE(span >= cstring_span<>(ar));
496
-
497
- // comparison to static array with null at the end
498
- EXPECT_TRUE(span <= cstring_span<>(ar1));
499
-
500
- // comparison to static array with null in the middle
501
- EXPECT_TRUE(span >= cstring_span<>(ar2));
502
-
503
- // comparison to null-terminated c string
504
- EXPECT_TRUE(span <= cstring_span<>(ptr, 5));
505
-
506
- // comparison to string
507
- EXPECT_TRUE(span >= cstring_span<>(str));
508
-
509
- // comparison to vector of charaters with no null termination
510
- EXPECT_TRUE(span <= cstring_span<>(vec));
511
- }
512
-
513
- {
514
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
515
-
516
- string_span<> span = ar;
517
-
518
- char larr[] = "Hell";
519
- char rarr[] = "Helloo";
520
-
521
- char ar1[] = "Hello";
522
- char ar2[10] = "Hello";
523
- char* ptr = ar;
524
- std::string str = "Hello";
525
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
526
-
527
- // comparison to static array with no null termination
528
- EXPECT_TRUE(span <= string_span<>(ar));
529
- EXPECT_TRUE(span < string_span<>(rarr));
530
- EXPECT_TRUE(span > string_span<>(larr));
531
-
532
- // comparison to static array with null at the end
533
- EXPECT_TRUE(span >= string_span<>(ar1));
534
-
535
- // comparison to static array with null in the middle
536
- EXPECT_TRUE(span <= string_span<>(ar2));
537
-
538
- // comparison to null-terminated c string
539
- EXPECT_TRUE(span >= string_span<>(ptr, 5));
540
-
541
- // comparison to string
542
- EXPECT_TRUE(span <= string_span<>(str));
543
-
544
- // comparison to vector of charaters with no null termination
545
- EXPECT_TRUE(span >= string_span<>(vec));
546
- }
547
- }
548
-
549
- TEST(string_span_tests, ConstrutorsEnsureZ)
550
- {
551
- // remove z from literals
552
- {
553
- cstring_span<> sp = "hello";
554
- EXPECT_TRUE(sp.length() == 5);
555
- }
556
-
557
- // take the string as is
558
- {
559
- auto str = std::string("hello");
560
- cstring_span<> sp = str;
561
- EXPECT_TRUE(sp.length() == 5);
562
- }
563
-
564
- // ensure z on c strings
565
- {
566
- gsl::owner<char*> ptr = new char[3];
567
-
568
- ptr[0] = 'a';
569
- ptr[1] = 'b';
570
- ptr[2] = '\0';
571
-
572
- string_span<> span = ensure_z(ptr);
573
- EXPECT_TRUE(span.length() == 2);
574
-
575
- delete[] ptr;
576
- }
577
- }
578
-
579
- TEST(string_span_tests, Constructors)
580
- {
581
- // creating cstring_span
582
-
583
- // from span of a final extent
584
- {
585
- span<const char, 6> sp = "Hello";
586
- cstring_span<> span = sp;
587
- EXPECT_TRUE(span.length() == 6);
588
- }
589
-
590
- // from const span of a final extent to non-const string_span
591
- #ifdef CONFIRM_COMPILATION_ERRORS
592
- {
593
- span<const char, 6> sp = "Hello";
594
- string_span<> span = sp;
595
- EXPECT_TRUE(span.length() == 6);
596
- }
597
- #endif
598
-
599
- // from string temporary
600
- #ifdef CONFIRM_COMPILATION_ERRORS
601
- {
602
- cstring_span<> span = std::string("Hello");
603
- }
604
- #endif
605
-
606
- // default
607
- {
608
- cstring_span<> span;
609
- EXPECT_TRUE(span.length() == 0);
610
- }
611
-
612
- // from string literal
613
- {
614
- cstring_span<> span = "Hello";
615
- EXPECT_TRUE(span.length() == 5);
616
- }
617
-
618
- // from const static array
619
- {
620
- const char ar[] = {'H', 'e', 'l', 'l', 'o'};
621
- cstring_span<> span = ar;
622
- EXPECT_TRUE(span.length() == 5);
623
- }
624
-
625
- // from non-const static array
626
- {
627
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
628
- cstring_span<> span = ar;
629
- EXPECT_TRUE(span.length() == 5);
630
- }
631
-
632
- // from const ptr and length
633
- {
634
- const char* ptr = "Hello";
635
- cstring_span<> span{ptr, 5};
636
- EXPECT_TRUE(span.length() == 5);
637
- }
638
-
639
- // from const ptr and length, include 0
640
- {
641
- const char* ptr = "Hello";
642
- cstring_span<> span{ptr, 6};
643
- EXPECT_TRUE(span.length() == 6);
644
- }
645
-
646
- // from const ptr and length, 0 inside
647
- {
648
- const char* ptr = "He\0lo";
649
- cstring_span<> span{ptr, 5};
650
- EXPECT_TRUE(span.length() == 5);
651
- }
652
-
653
- // from non-const ptr and length
654
- {
655
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
656
- char* ptr = ar;
657
- cstring_span<> span{ptr, 5};
658
- EXPECT_TRUE(span.length() == 5);
659
- }
660
-
661
- // from non-const ptr and length, 0 inside
662
- {
663
- char ar[] = {'H', 'e', '\0', 'l', 'o'};
664
- char* ptr = ar;
665
- cstring_span<> span{ptr, 5};
666
- EXPECT_TRUE(span.length() == 5);
667
- }
668
-
669
- // from const string
670
- {
671
- const std::string str = "Hello";
672
- const cstring_span<> span = str;
673
- EXPECT_TRUE(span.length() == 5);
674
- }
675
-
676
- // from non-const string
677
- {
678
- std::string str = "Hello";
679
- const cstring_span<> span = str;
680
- EXPECT_TRUE(span.length() == 5);
681
- }
682
-
683
- // from const vector
684
- {
685
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
686
- const cstring_span<> span = vec;
687
- EXPECT_TRUE(span.length() == 5);
688
- }
689
-
690
- // from non-const vector
691
- {
692
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
693
- const cstring_span<> span = vec;
694
- EXPECT_TRUE(span.length() == 5);
695
- }
696
-
697
- // from const span
698
- {
699
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
700
- const span<const char> inner = vec;
701
- const cstring_span<> span = inner;
702
- EXPECT_TRUE(span.length() == 5);
703
- }
704
-
705
- // from non-const span
706
- {
707
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
708
- const span<char> inner = vec;
709
- const cstring_span<> span = inner;
710
- EXPECT_TRUE(span.length() == 5);
711
- }
712
-
713
- // from const string_span
714
- {
715
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
716
- const cstring_span<> tmp = vec;
717
- const cstring_span<> span = tmp;
718
- EXPECT_TRUE(span.length() == 5);
719
- }
720
-
721
- // from non-const string_span
722
- {
723
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
724
- string_span<> tmp = vec;
725
- cstring_span<> span = tmp;
726
- EXPECT_TRUE(span.length() == 5);
727
- }
728
-
729
- // creating string_span
730
-
731
- // from string literal
732
- {
733
- #ifdef CONFIRM_COMPILATION_ERRORS
734
- string_span<> span = "Hello";
735
- #endif
736
- }
737
-
738
- // from const static array
739
- {
740
- #ifdef CONFIRM_COMPILATION_ERRORS
741
- const char ar[] = {'H', 'e', 'l', 'l', 'o'};
742
- string_span<> span = ar;
743
- EXPECT_TRUE(span.length() == 5);
744
- #endif
745
- }
746
-
747
- // from non-const static array
748
- {
749
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
750
- string_span<> span = ar;
751
- EXPECT_TRUE(span.length() == 5);
752
- }
753
-
754
- // from const ptr and length
755
- {
756
- #ifdef CONFIRM_COMPILATION_ERRORS
757
- const char* ptr = "Hello";
758
- string_span<> span{ptr, 5};
759
- EXPECT_TRUE(span.length() == 5);
760
- #endif
761
- }
762
-
763
- // from non-const ptr and length
764
- {
765
- char ar[] = {'H', 'e', 'l', 'l', 'o'};
766
- char* ptr = ar;
767
- string_span<> span{ptr, 5};
768
- EXPECT_TRUE(span.length() == 5);
769
- }
770
-
771
- // from const string
772
- {
773
- #ifdef CONFIRM_COMPILATION_ERRORS
774
- const std::string str = "Hello";
775
- string_span<> span = str;
776
- EXPECT_TRUE(span.length() == 5);
777
- #endif
778
- }
779
-
780
- // from non-const string
781
- {
782
- std::string str = "Hello";
783
- string_span<> span = str;
784
- EXPECT_TRUE(span.length() == 5);
785
- }
786
-
787
- // from const vector
788
- {
789
- #ifdef CONFIRM_COMPILATION_ERRORS
790
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
791
- string_span<> span = vec;
792
- EXPECT_TRUE(span.length() == 5);
793
- #endif
794
- }
795
-
796
- // from non-const vector
797
- {
798
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
799
- string_span<> span = vec;
800
- EXPECT_TRUE(span.length() == 5);
801
- }
802
-
803
- // from const span
804
- {
805
- #ifdef CONFIRM_COMPILATION_ERRORS
806
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
807
- const span<const char> inner = vec;
808
- string_span<> span = inner;
809
- EXPECT_TRUE(span.length() == 5);
810
- #endif
811
- }
812
-
813
- // from non-const span
814
- {
815
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
816
- span<char> inner = vec;
817
- string_span<> span = inner;
818
- EXPECT_TRUE(span.length() == 5);
819
- }
820
-
821
- // from non-const span of non-const data from const vector
822
- {
823
- #ifdef CONFIRM_COMPILATION_ERRORS
824
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
825
- const span<char> inner = vec;
826
- string_span<> span = inner;
827
- EXPECT_TRUE(span.length() == 5);
828
- #endif
829
- }
830
-
831
- // from const string_span
832
- {
833
- #ifdef CONFIRM_COMPILATION_ERRORS
834
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
835
- cstring_span<> tmp = vec;
836
- string_span<> span = tmp;
837
- EXPECT_TRUE(span.length() == 5);
838
- #endif
839
- }
840
-
841
- // from non-const string_span
842
- {
843
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
844
- const string_span<> tmp = vec;
845
- const string_span<> span = tmp;
846
- EXPECT_TRUE(span.length() == 5);
847
- }
848
-
849
- // from non-const string_span from const vector
850
- {
851
- #ifdef CONFIRM_COMPILATION_ERRORS
852
- const std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
853
- string_span<> tmp = vec;
854
- string_span<> span = tmp;
855
- EXPECT_TRUE(span.length() == 5);
856
- #endif
857
- }
858
-
859
- // from const string_span of non-const data
860
- {
861
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
862
- const string_span<> tmp = vec;
863
- const string_span<> span = tmp;
864
- EXPECT_TRUE(span.length() == 5);
865
- }
866
- }
867
-
868
- TEST(string_span_tests, MoveConstructors)
869
- {
870
- // move string_span
871
- {
872
- cstring_span<> span = "Hello";
873
- const auto span1 = std::move(span);
874
- EXPECT_TRUE(span1.length() == 5);
875
- }
876
- {
877
- cstring_span<> span = "Hello";
878
- const auto span1 = move_wrapper(std::move(span));
879
- EXPECT_TRUE(span1.length() == 5);
880
- }
881
- {
882
- cstring_span<> span = "Hello";
883
- const auto span1 = move_wrapper(std::move(span));
884
- EXPECT_TRUE(span1.length() == 5);
885
- }
886
-
887
- // move span
888
- {
889
- span<const char> span = ensure_z("Hello");
890
- const cstring_span<> span1 = std::move(span);
891
- EXPECT_TRUE(span1.length() == 5);
892
- }
893
- {
894
- span<const char> span = ensure_z("Hello");
895
- const cstring_span<> span2 = move_wrapper(std::move(span));
896
- EXPECT_TRUE(span2.length() == 5);
897
- }
898
-
899
- // move string
900
- {
901
- #ifdef CONFIRM_COMPILATION_ERRORS
902
- std::string str = "Hello";
903
- string_span<> span = std::move(str);
904
- EXPECT_TRUE(span.length() == 5);
905
- #endif
906
- }
907
- {
908
- #ifdef CONFIRM_COMPILATION_ERRORS
909
- std::string str = "Hello";
910
- string_span<> span = move_wrapper<std::string>(std::move(str));
911
- EXPECT_TRUE(span.length() == 5);
912
- #endif
913
- }
914
- {
915
- #ifdef CONFIRM_COMPILATION_ERRORS
916
- use<char>(create<string>());
917
- #endif
918
- }
919
-
920
- // move container
921
- {
922
- #ifdef CONFIRM_COMPILATION_ERRORS
923
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
924
- string_span<> span = std::move(vec);
925
- EXPECT_TRUE(span.length() == 5);
926
- #endif
927
- }
928
- {
929
- #ifdef CONFIRM_COMPILATION_ERRORS
930
- std::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};
931
- string_span<> span = move_wrapper<std::vector<char>>(std::move(vec));
932
- EXPECT_TRUE(span.length() == 5);
933
- #endif
934
- }
935
- {
936
- #ifdef CONFIRM_COMPILATION_ERRORS
937
- use<char>(create<std::vector<char>>());
938
- #endif
939
- }
940
- }
941
-
942
- TEST(string_span_tests, Conversion)
943
- {
944
- #ifdef CONFIRM_COMPILATION_ERRORS
945
- cstring_span<> span = "Hello";
946
- cwstring_span<> wspan{span};
947
- EXPECT_TRUE(wspan.length() == 5);
948
- #endif
949
- }
950
-
951
- TEST(string_span_tests, zstring)
952
- {
953
- std::set_terminate([] {
954
- std::cerr << "Expected Death. zstring";
955
- std::abort();
956
- });
957
-
958
- // create zspan from zero terminated string
959
- {
960
- char buf[1];
961
- buf[0] = '\0';
962
-
963
- zstring_span<> zspan({buf, 1});
964
-
965
- EXPECT_TRUE(generic::strlen(zspan.assume_z()) == 0);
966
- EXPECT_TRUE(zspan.as_string_span().size() == 0);
967
- EXPECT_TRUE(zspan.ensure_z().size() == 0);
968
- }
969
-
970
- // create zspan from non-zero terminated string
971
- {
972
- char buf[1];
973
- buf[0] = 'a';
974
-
975
- auto workaround_macro = [&]() { const zstring_span<> zspan({buf, 1}); };
976
- EXPECT_DEATH(workaround_macro(), deathstring);
977
- }
978
-
979
- // usage scenario: create zero-terminated temp file name and pass to a legacy API
980
- {
981
- char buf[10];
982
-
983
- auto name = CreateTempName({buf, 10});
984
- if (!name.empty()) {
985
- czstring<> str = name.assume_z();
986
- EXPECT_TRUE(generic::strlen(str) == 3);
987
- EXPECT_TRUE(*(str + 3) == '\0');
988
- }
989
- }
990
- }
991
-
992
- TEST(string_span_tests, wzstring)
993
- {
994
- std::set_terminate([] {
995
- std::cerr << "Expected Death. wzstring";
996
- std::abort();
997
- });
998
-
999
- // create zspan from zero terminated string
1000
- {
1001
- wchar_t buf[1];
1002
- buf[0] = L'\0';
1003
-
1004
- wzstring_span<> zspan({buf, 1});
1005
-
1006
- EXPECT_TRUE(generic::strnlen(zspan.assume_z(), 1) == 0);
1007
- EXPECT_TRUE(zspan.as_string_span().size() == 0);
1008
- EXPECT_TRUE(zspan.ensure_z().size() == 0);
1009
- }
1010
-
1011
- // create zspan from non-zero terminated string
1012
- {
1013
- wchar_t buf[1];
1014
- buf[0] = L'a';
1015
-
1016
- const auto workaround_macro = [&]() { const wzstring_span<> zspan({buf, 1}); };
1017
- EXPECT_DEATH(workaround_macro(), deathstring);
1018
- }
1019
-
1020
- // usage scenario: create zero-terminated temp file name and pass to a legacy API
1021
- {
1022
- wchar_t buf[10];
1023
-
1024
- const auto name = CreateTempNameW({buf, 10});
1025
- if (!name.empty()) {
1026
- cwzstring<> str = name.assume_z();
1027
- EXPECT_TRUE(generic::strnlen(str, 10) == 3);
1028
- EXPECT_TRUE(*(str + 3) == L'\0');
1029
- }
1030
- }
1031
- }
1032
-
1033
- TEST(string_span_tests, u16zstring)
1034
- {
1035
- std::set_terminate([] {
1036
- std::cerr << "Expected Death. u16zstring";
1037
- std::abort();
1038
- });
1039
-
1040
- // create zspan from zero terminated string
1041
- {
1042
- char16_t buf[1];
1043
- buf[0] = L'\0';
1044
-
1045
- u16zstring_span<> zspan({buf, 1});
1046
-
1047
- EXPECT_TRUE(generic::strnlen(zspan.assume_z(), 1) == 0);
1048
- EXPECT_TRUE(zspan.as_string_span().size() == 0);
1049
- EXPECT_TRUE(zspan.ensure_z().size() == 0);
1050
- }
1051
-
1052
- // create zspan from non-zero terminated string
1053
- {
1054
- char16_t buf[1];
1055
- buf[0] = u'a';
1056
-
1057
- const auto workaround_macro = [&]() { const u16zstring_span<> zspan({buf, 1}); };
1058
- EXPECT_DEATH(workaround_macro(), deathstring);
1059
- }
1060
-
1061
- // usage scenario: create zero-terminated temp file name and pass to a legacy API
1062
- {
1063
- char16_t buf[10];
1064
-
1065
- const auto name = CreateTempNameU16({buf, 10});
1066
- if (!name.empty()) {
1067
- cu16zstring<> str = name.assume_z();
1068
- EXPECT_TRUE(generic::strnlen(str, 10) == 3);
1069
- EXPECT_TRUE(*(str + 3) == L'\0');
1070
- }
1071
- }
1072
- }
1073
-
1074
- TEST(string_span_tests, u32zstring)
1075
- {
1076
- std::set_terminate([] {
1077
- std::cerr << "Expected Death. u31zstring";
1078
- std::abort();
1079
- });
1080
-
1081
- // create zspan from zero terminated string
1082
- {
1083
- char32_t buf[1];
1084
- buf[0] = L'\0';
1085
-
1086
- u32zstring_span<> zspan({buf, 1});
1087
-
1088
- EXPECT_TRUE(generic::strnlen(zspan.assume_z(), 1) == 0);
1089
- EXPECT_TRUE(zspan.as_string_span().size() == 0);
1090
- EXPECT_TRUE(zspan.ensure_z().size() == 0);
1091
- }
1092
-
1093
- // create zspan from non-zero terminated string
1094
- {
1095
- char32_t buf[1];
1096
- buf[0] = u'a';
1097
-
1098
- const auto workaround_macro = [&]() { const u32zstring_span<> zspan({buf, 1}); };
1099
- EXPECT_DEATH(workaround_macro(), deathstring);
1100
- }
1101
-
1102
- // usage scenario: create zero-terminated temp file name and pass to a legacy API
1103
- {
1104
- char32_t buf[10];
1105
-
1106
- const auto name = CreateTempNameU32({buf, 10});
1107
- if (!name.empty()) {
1108
- cu32zstring<> str = name.assume_z();
1109
- EXPECT_TRUE(generic::strnlen(str, 10) == 3);
1110
- EXPECT_TRUE(*(str + 3) == L'\0');
1111
- }
1112
- }
1113
- }
1114
-
1115
- TEST(string_span_tests, Issue305)
1116
- {
1117
- std::map<gsl::cstring_span<>, int> foo = {{"foo", 0}, {"bar", 1}};
1118
- EXPECT_TRUE(foo["foo"] == 0);
1119
- EXPECT_TRUE(foo["bar"] == 1);
1120
- }
1121
-
1122
- TEST(string_span_tests, char16_t_type)
1123
- {
1124
- gsl::cu16string_span<> ss1 = gsl::ensure_z(u"abc");
1125
- EXPECT_TRUE(ss1.size() == 3);
1126
- EXPECT_TRUE(ss1.size_bytes() == 6);
1127
-
1128
- std::u16string s1 = gsl::to_string(ss1);
1129
- EXPECT_TRUE(s1 == u"abc");
1130
-
1131
- std::u16string s2 = u"abc";
1132
- gsl::u16string_span<> ss2 = s2;
1133
- EXPECT_TRUE(ss2.size() == 3);
1134
-
1135
- gsl::u16string_span<> ss3 = ss2.subspan(1, 1);
1136
- EXPECT_TRUE(ss3.size() == 1);
1137
- EXPECT_TRUE(ss3[0] == u'b');
1138
-
1139
- char16_t buf[4]{u'a', u'b', u'c', u'\0'};
1140
- gsl::u16string_span<> ss4{buf, 4};
1141
- EXPECT_TRUE(ss4[3] == u'\0');
1142
-
1143
- gsl::cu16zstring_span<> ss5(u"abc");
1144
- EXPECT_TRUE((ss5.as_string_span().size()) == 3);
1145
-
1146
- gsl::cu16string_span<> ss6 = ss5.as_string_span();
1147
- EXPECT_TRUE(ss6 == ss1);
1148
-
1149
- std::vector<char16_t> v7 = {u'a', u'b', u'c'};
1150
- gsl::cu16string_span<> ss7{v7};
1151
- EXPECT_TRUE(ss7 == ss1);
1152
-
1153
- gsl::cu16string_span<> ss8 = gsl::ensure_z(u"abc");
1154
- gsl::cu16string_span<> ss9 = gsl::ensure_z(u"abc");
1155
- EXPECT_TRUE(ss8 == ss9);
1156
-
1157
- ss9 = gsl::ensure_z(u"abd");
1158
- EXPECT_TRUE(ss8 < ss9);
1159
- EXPECT_TRUE(ss8 <= ss9);
1160
- EXPECT_TRUE(ss8 != ss9);
1161
- }
1162
-
1163
- TEST(string_span_tests, char32_t_type)
1164
- {
1165
- gsl::cu32string_span<> ss1 = gsl::ensure_z(U"abc");
1166
- EXPECT_TRUE(ss1.size() == 3);
1167
- EXPECT_TRUE(ss1.size_bytes() == 12);
1168
-
1169
- std::u32string s1 = gsl::to_string(ss1);
1170
- EXPECT_TRUE(s1 == U"abc");
1171
-
1172
- std::u32string s2 = U"abc";
1173
- gsl::u32string_span<> ss2 = s2;
1174
- EXPECT_TRUE(ss2.size() == 3);
1175
-
1176
- gsl::u32string_span<> ss3 = ss2.subspan(1, 1);
1177
- EXPECT_TRUE(ss3.size() == 1);
1178
- EXPECT_TRUE(ss3[0] == U'b');
1179
-
1180
- char32_t buf[4]{U'a', U'b', U'c', U'\0'};
1181
- gsl::u32string_span<> ss4{buf, 4};
1182
- EXPECT_TRUE(ss4[3] == u'\0');
1183
-
1184
- gsl::cu32zstring_span<> ss5(U"abc");
1185
- EXPECT_TRUE(ss5.as_string_span().size() == 3);
1186
-
1187
- gsl::cu32string_span<> ss6 = ss5.as_string_span();
1188
- EXPECT_TRUE(ss6 == ss1);
1189
-
1190
- gsl::cu32string_span<> ss8 = gsl::ensure_z(U"abc");
1191
- gsl::cu32string_span<> ss9 = gsl::ensure_z(U"abc");
1192
- EXPECT_TRUE(ss8 == ss9);
1193
-
1194
- ss9 = gsl::ensure_z(U"abd");
1195
- EXPECT_TRUE(ss8 < ss9);
1196
- EXPECT_TRUE(ss8 <= ss9);
1197
- EXPECT_TRUE(ss8 != ss9);
1198
- }
1199
-
1200
- TEST(string_span_tests, as_bytes)
1201
- {
1202
- cwzstring_span<> v(L"qwerty");
1203
- const auto s = v.as_string_span();
1204
- const auto bs = as_bytes(s);
1205
- EXPECT_TRUE(static_cast<const void*>(bs.data()) == static_cast<const void*>(s.data()));
1206
- EXPECT_TRUE(bs.size() == s.size_bytes());
1207
- }
1208
-
1209
- TEST(string_span_tests, as_writable_bytes)
1210
- {
1211
- wchar_t buf[]{L"qwerty"};
1212
- wzstring_span<> v(buf);
1213
- const auto s = v.as_string_span();
1214
- const auto bs = as_writable_bytes(s);
1215
- EXPECT_TRUE(static_cast<const void*>(bs.data()) == static_cast<const void*>(s.data()));
1216
- EXPECT_TRUE(bs.size() == s.size_bytes());
1217
- }