automerge-rb 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/README.md +175 -0
  4. data/ext/automerge_ext/automerge_ext.c +1805 -0
  5. data/ext/automerge_ext/extconf.rb +132 -0
  6. data/lib/automerge/version.rb +6 -0
  7. data/lib/automerge.rb +110 -0
  8. data/rust-toolchain.toml +4 -0
  9. data/vendor/automerge-rust/Cargo.lock +1909 -0
  10. data/vendor/automerge-rust/Cargo.toml +15 -0
  11. data/vendor/automerge-rust/automerge/Cargo.toml +78 -0
  12. data/vendor/automerge-rust/automerge/README.md +5 -0
  13. data/vendor/automerge-rust/automerge/benches/load_save.rs +102 -0
  14. data/vendor/automerge-rust/automerge/benches/map.rs +260 -0
  15. data/vendor/automerge-rust/automerge/benches/range.rs +37 -0
  16. data/vendor/automerge-rust/automerge/benches/sync.rs +95 -0
  17. data/vendor/automerge-rust/automerge/examples/README.md +7 -0
  18. data/vendor/automerge-rust/automerge/examples/quickstart.rs +57 -0
  19. data/vendor/automerge-rust/automerge/examples/watch.rs +94 -0
  20. data/vendor/automerge-rust/automerge/fuzz/Cargo.toml +29 -0
  21. data/vendor/automerge-rust/automerge/fuzz/fuzz_targets/load.rs +37 -0
  22. data/vendor/automerge-rust/automerge/src/autocommit.rs +1286 -0
  23. data/vendor/automerge-rust/automerge/src/automerge/current_state.rs +546 -0
  24. data/vendor/automerge-rust/automerge/src/automerge/tests.rs +2023 -0
  25. data/vendor/automerge-rust/automerge/src/automerge.rs +2071 -0
  26. data/vendor/automerge-rust/automerge/src/autoserde.rs +128 -0
  27. data/vendor/automerge-rust/automerge/src/change.rs +357 -0
  28. data/vendor/automerge-rust/automerge/src/change_graph.rs +1215 -0
  29. data/vendor/automerge-rust/automerge/src/change_queue.rs +46 -0
  30. data/vendor/automerge-rust/automerge/src/clock.rs +206 -0
  31. data/vendor/automerge-rust/automerge/src/columnar/column_range/boolean.rs +83 -0
  32. data/vendor/automerge-rust/automerge/src/columnar/column_range/delta.rs +148 -0
  33. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/group.rs +138 -0
  34. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/simple.rs +76 -0
  35. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic.rs +93 -0
  36. data/vendor/automerge-rust/automerge/src/columnar/column_range/key.rs +272 -0
  37. data/vendor/automerge-rust/automerge/src/columnar/column_range/obj_id.rs +202 -0
  38. data/vendor/automerge-rust/automerge/src/columnar/column_range/opid_list.rs +329 -0
  39. data/vendor/automerge-rust/automerge/src/columnar/column_range/raw.rs +38 -0
  40. data/vendor/automerge-rust/automerge/src/columnar/column_range/rle.rs +216 -0
  41. data/vendor/automerge-rust/automerge/src/columnar/column_range/value.rs +547 -0
  42. data/vendor/automerge-rust/automerge/src/columnar/column_range.rs +17 -0
  43. data/vendor/automerge-rust/automerge/src/columnar/encoding/boolean.rs +197 -0
  44. data/vendor/automerge-rust/automerge/src/columnar/encoding/col_error.rs +88 -0
  45. data/vendor/automerge-rust/automerge/src/columnar/encoding/column_decoder.rs +133 -0
  46. data/vendor/automerge-rust/automerge/src/columnar/encoding/decodable_impls.rs +175 -0
  47. data/vendor/automerge-rust/automerge/src/columnar/encoding/delta.rs +96 -0
  48. data/vendor/automerge-rust/automerge/src/columnar/encoding/encodable_impls.rs +200 -0
  49. data/vendor/automerge-rust/automerge/src/columnar/encoding/leb128.rs +82 -0
  50. data/vendor/automerge-rust/automerge/src/columnar/encoding/properties.rs +178 -0
  51. data/vendor/automerge-rust/automerge/src/columnar/encoding/raw.rs +101 -0
  52. data/vendor/automerge-rust/automerge/src/columnar/encoding/rle.rs +239 -0
  53. data/vendor/automerge-rust/automerge/src/columnar/encoding.rs +67 -0
  54. data/vendor/automerge-rust/automerge/src/columnar/splice_error.rs +47 -0
  55. data/vendor/automerge-rust/automerge/src/columnar.rs +14 -0
  56. data/vendor/automerge-rust/automerge/src/convert.rs +112 -0
  57. data/vendor/automerge-rust/automerge/src/cursor.rs +296 -0
  58. data/vendor/automerge-rust/automerge/src/decoding.rs +475 -0
  59. data/vendor/automerge-rust/automerge/src/error.rs +159 -0
  60. data/vendor/automerge-rust/automerge/src/exid.rs +238 -0
  61. data/vendor/automerge-rust/automerge/src/hydrate/list.rs +140 -0
  62. data/vendor/automerge-rust/automerge/src/hydrate/map.rs +132 -0
  63. data/vendor/automerge-rust/automerge/src/hydrate/tests.rs +40 -0
  64. data/vendor/automerge-rust/automerge/src/hydrate/text.rs +89 -0
  65. data/vendor/automerge-rust/automerge/src/hydrate.rs +368 -0
  66. data/vendor/automerge-rust/automerge/src/indexed_cache.rs +113 -0
  67. data/vendor/automerge-rust/automerge/src/iter/doc.rs +603 -0
  68. data/vendor/automerge-rust/automerge/src/iter/keys.rs +93 -0
  69. data/vendor/automerge-rust/automerge/src/iter/list_range.rs +433 -0
  70. data/vendor/automerge-rust/automerge/src/iter/map_range.rs +316 -0
  71. data/vendor/automerge-rust/automerge/src/iter/spans.rs +601 -0
  72. data/vendor/automerge-rust/automerge/src/iter/tools.rs +427 -0
  73. data/vendor/automerge-rust/automerge/src/iter/values.rs +36 -0
  74. data/vendor/automerge-rust/automerge/src/iter.rs +25 -0
  75. data/vendor/automerge-rust/automerge/src/legacy/mod.rs +364 -0
  76. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/actor_id.rs +25 -0
  77. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/change_hash.rs +29 -0
  78. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/element_id.rs +27 -0
  79. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/mod.rs +31 -0
  80. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/object_id.rs +36 -0
  81. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op.rs +668 -0
  82. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op_type.rs +26 -0
  83. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/opid.rs +25 -0
  84. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/scalar_value.rs +63 -0
  85. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/element_id.rs +66 -0
  86. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/key.rs +49 -0
  87. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/mod.rs +4 -0
  88. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/object_id.rs +74 -0
  89. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/opid.rs +68 -0
  90. data/vendor/automerge-rust/automerge/src/lib.rs +315 -0
  91. data/vendor/automerge-rust/automerge/src/marks.rs +478 -0
  92. data/vendor/automerge-rust/automerge/src/op_set2/change/batch.rs +2002 -0
  93. data/vendor/automerge-rust/automerge/src/op_set2/change/collector.rs +974 -0
  94. data/vendor/automerge-rust/automerge/src/op_set2/change.rs +332 -0
  95. data/vendor/automerge-rust/automerge/src/op_set2/columns.rs +714 -0
  96. data/vendor/automerge-rust/automerge/src/op_set2/meta.rs +174 -0
  97. data/vendor/automerge-rust/automerge/src/op_set2/op.rs +1363 -0
  98. data/vendor/automerge-rust/automerge/src/op_set2/op_set/elems.rs +43 -0
  99. data/vendor/automerge-rust/automerge/src/op_set2/op_set/found_op.rs +60 -0
  100. data/vendor/automerge-rust/automerge/src/op_set2/op_set/index.rs +197 -0
  101. data/vendor/automerge-rust/automerge/src/op_set2/op_set/insert.rs +179 -0
  102. data/vendor/automerge-rust/automerge/src/op_set2/op_set/mark_index.rs +292 -0
  103. data/vendor/automerge-rust/automerge/src/op_set2/op_set/marks.rs +86 -0
  104. data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_iter.rs +1295 -0
  105. data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_query.rs +82 -0
  106. data/vendor/automerge-rust/automerge/src/op_set2/op_set/top_op.rs +50 -0
  107. data/vendor/automerge-rust/automerge/src/op_set2/op_set/visible.rs +290 -0
  108. data/vendor/automerge-rust/automerge/src/op_set2/op_set.rs +1793 -0
  109. data/vendor/automerge-rust/automerge/src/op_set2/parents.rs +133 -0
  110. data/vendor/automerge-rust/automerge/src/op_set2/skip_list.rs +714 -0
  111. data/vendor/automerge-rust/automerge/src/op_set2/types.rs +769 -0
  112. data/vendor/automerge-rust/automerge/src/op_set2.rs +18 -0
  113. data/vendor/automerge-rust/automerge/src/patches/patch.rs +95 -0
  114. data/vendor/automerge-rust/automerge/src/patches/patch_builder.rs +382 -0
  115. data/vendor/automerge-rust/automerge/src/patches/patch_log.rs +584 -0
  116. data/vendor/automerge-rust/automerge/src/patches.rs +7 -0
  117. data/vendor/automerge-rust/automerge/src/query/list_state.rs +230 -0
  118. data/vendor/automerge-rust/automerge/src/query/seek_mark.rs +142 -0
  119. data/vendor/automerge-rust/automerge/src/read.rs +326 -0
  120. data/vendor/automerge-rust/automerge/src/sequence_tree.rs +662 -0
  121. data/vendor/automerge-rust/automerge/src/storage/bundle/builder.rs +942 -0
  122. data/vendor/automerge-rust/automerge/src/storage/bundle/error.rs +42 -0
  123. data/vendor/automerge-rust/automerge/src/storage/bundle/meta.rs +23 -0
  124. data/vendor/automerge-rust/automerge/src/storage/bundle/storage.rs +146 -0
  125. data/vendor/automerge-rust/automerge/src/storage/bundle.rs +210 -0
  126. data/vendor/automerge-rust/automerge/src/storage/change/change_actors.rs +311 -0
  127. data/vendor/automerge-rust/automerge/src/storage/change/change_op_columns.rs +621 -0
  128. data/vendor/automerge-rust/automerge/src/storage/change/compressed.rs +51 -0
  129. data/vendor/automerge-rust/automerge/src/storage/change/op_with_change_actors.rs +1 -0
  130. data/vendor/automerge-rust/automerge/src/storage/change.rs +523 -0
  131. data/vendor/automerge-rust/automerge/src/storage/chunk.rs +312 -0
  132. data/vendor/automerge-rust/automerge/src/storage/columns/column.rs +42 -0
  133. data/vendor/automerge-rust/automerge/src/storage/columns/column_builder.rs +199 -0
  134. data/vendor/automerge-rust/automerge/src/storage/columns/column_specification.rs +340 -0
  135. data/vendor/automerge-rust/automerge/src/storage/columns/raw_column.rs +286 -0
  136. data/vendor/automerge-rust/automerge/src/storage/columns.rs +355 -0
  137. data/vendor/automerge-rust/automerge/src/storage/document/compression.rs +362 -0
  138. data/vendor/automerge-rust/automerge/src/storage/document.rs +411 -0
  139. data/vendor/automerge-rust/automerge/src/storage/load/change_collector.rs +15 -0
  140. data/vendor/automerge-rust/automerge/src/storage/load.rs +136 -0
  141. data/vendor/automerge-rust/automerge/src/storage/parse/leb128.rs +302 -0
  142. data/vendor/automerge-rust/automerge/src/storage/parse.rs +619 -0
  143. data/vendor/automerge-rust/automerge/src/storage/save/document.rs +27 -0
  144. data/vendor/automerge-rust/automerge/src/storage.rs +26 -0
  145. data/vendor/automerge-rust/automerge/src/sync/bloom.rs +161 -0
  146. data/vendor/automerge-rust/automerge/src/sync/message_builder.rs +118 -0
  147. data/vendor/automerge-rust/automerge/src/sync/state.rs +214 -0
  148. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/bloom.rs +162 -0
  149. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/mod.rs +625 -0
  150. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/state.rs +120 -0
  151. data/vendor/automerge-rust/automerge/src/sync.rs +2482 -0
  152. data/vendor/automerge-rust/automerge/src/text_diff/LICENSE +201 -0
  153. data/vendor/automerge-rust/automerge/src/text_diff/myers.rs +332 -0
  154. data/vendor/automerge-rust/automerge/src/text_diff/replace.rs +139 -0
  155. data/vendor/automerge-rust/automerge/src/text_diff/utils.rs +119 -0
  156. data/vendor/automerge-rust/automerge/src/text_diff.rs +515 -0
  157. data/vendor/automerge-rust/automerge/src/text_value.rs +276 -0
  158. data/vendor/automerge-rust/automerge/src/transaction/commit.rs +34 -0
  159. data/vendor/automerge-rust/automerge/src/transaction/inner.rs +1403 -0
  160. data/vendor/automerge-rust/automerge/src/transaction/manual_transaction.rs +147 -0
  161. data/vendor/automerge-rust/automerge/src/transaction/owned_transaction.rs +266 -0
  162. data/vendor/automerge-rust/automerge/src/transaction/result.rs +21 -0
  163. data/vendor/automerge-rust/automerge/src/transaction/transactable.rs +203 -0
  164. data/vendor/automerge-rust/automerge/src/transaction.rs +513 -0
  165. data/vendor/automerge-rust/automerge/src/types.rs +749 -0
  166. data/vendor/automerge-rust/automerge/src/validation.rs +29 -0
  167. data/vendor/automerge-rust/automerge/src/value.rs +763 -0
  168. data/vendor/automerge-rust/automerge/tests/batch_insert.rs +1034 -0
  169. data/vendor/automerge-rust/automerge/tests/block_tests.rs +887 -0
  170. data/vendor/automerge-rust/automerge/tests/convert_string_to_text.rs +72 -0
  171. data/vendor/automerge-rust/automerge/tests/diff_marks.rs +1508 -0
  172. data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_change.automerge +0 -0
  173. data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_doc.automerge +0 -0
  174. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_has_incorrect_meta.automerge +0 -0
  175. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_ok.automerge +0 -0
  176. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_overlong.automerge +0 -0
  177. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks.automerge +0 -0
  178. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_compressed.automerge +0 -0
  179. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_out_of_order.automerge +0 -0
  180. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/action-is-48.automerge +0 -0
  181. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 +0 -0
  182. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/incorrect_max_op.automerge +0 -0
  183. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/invalid_deflate_stream.automerge +0 -0
  184. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/missing_actor.automerge +0 -0
  185. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/overflow_in_length.automerge +0 -0
  186. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_deps.automerge +0 -0
  187. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_ops.automerge +0 -0
  188. data/vendor/automerge-rust/automerge/tests/test.rs +2668 -0
  189. data/vendor/automerge-rust/automerge/tests/test_mark_patches.rs +41 -0
  190. data/vendor/automerge-rust/automerge/tests/test_save_load_orphans.rs +84 -0
  191. data/vendor/automerge-rust/automerge/tests/text.rs +1098 -0
  192. data/vendor/automerge-rust/automerge/tests/text_encoding.rs +640 -0
  193. data/vendor/automerge-rust/automerge-c/CMakeLists.txt +439 -0
  194. data/vendor/automerge-rust/automerge-c/Cargo.toml +22 -0
  195. data/vendor/automerge-rust/automerge-c/README.md +233 -0
  196. data/vendor/automerge-rust/automerge-c/build.rs +21 -0
  197. data/vendor/automerge-rust/automerge-c/cbindgen.toml +48 -0
  198. data/vendor/automerge-rust/automerge-c/cmake/Cargo.toml.in +22 -0
  199. data/vendor/automerge-rust/automerge-c/cmake/automerge-c-config.cmake.in +99 -0
  200. data/vendor/automerge-rust/automerge-c/cmake/cbindgen.toml.in +48 -0
  201. data/vendor/automerge-rust/automerge-c/cmake/config.h.in +58 -0
  202. data/vendor/automerge-rust/automerge-c/cmake/enum-string-functions-gen.cmake +183 -0
  203. data/vendor/automerge-rust/automerge-c/cmake/file-regex-replace.cmake +33 -0
  204. data/vendor/automerge-rust/automerge-c/cmake/file-touch.cmake +35 -0
  205. data/vendor/automerge-rust/automerge-c/docs/CMakeLists.txt +39 -0
  206. data/vendor/automerge-rust/automerge-c/docs/img/brandmark.png +0 -0
  207. data/vendor/automerge-rust/automerge-c/examples/CMakeLists.txt +42 -0
  208. data/vendor/automerge-rust/automerge-c/examples/README.md +9 -0
  209. data/vendor/automerge-rust/automerge-c/examples/quickstart.c +131 -0
  210. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/result.h +30 -0
  211. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack.h +130 -0
  212. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack_callback_data.h +53 -0
  213. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/string.h +29 -0
  214. data/vendor/automerge-rust/automerge-c/src/actor_id.rs +193 -0
  215. data/vendor/automerge-rust/automerge-c/src/byte_span.rs +227 -0
  216. data/vendor/automerge-rust/automerge-c/src/change.rs +356 -0
  217. data/vendor/automerge-rust/automerge-c/src/cursor.rs +168 -0
  218. data/vendor/automerge-rust/automerge-c/src/doc/list.rs +636 -0
  219. data/vendor/automerge-rust/automerge-c/src/doc/map.rs +556 -0
  220. data/vendor/automerge-rust/automerge-c/src/doc/mark.rs +296 -0
  221. data/vendor/automerge-rust/automerge-c/src/doc/utils.rs +46 -0
  222. data/vendor/automerge-rust/automerge-c/src/doc.rs +1009 -0
  223. data/vendor/automerge-rust/automerge-c/src/index.rs +84 -0
  224. data/vendor/automerge-rust/automerge-c/src/item.rs +2177 -0
  225. data/vendor/automerge-rust/automerge-c/src/items.rs +401 -0
  226. data/vendor/automerge-rust/automerge-c/src/lib.rs +11 -0
  227. data/vendor/automerge-rust/automerge-c/src/obj.rs +216 -0
  228. data/vendor/automerge-rust/automerge-c/src/result.rs +653 -0
  229. data/vendor/automerge-rust/automerge-c/src/sync/have.rs +42 -0
  230. data/vendor/automerge-rust/automerge-c/src/sync/message.rs +146 -0
  231. data/vendor/automerge-rust/automerge-c/src/sync/state.rs +262 -0
  232. data/vendor/automerge-rust/automerge-c/src/sync.rs +7 -0
  233. data/vendor/automerge-rust/automerge-c/src/utils/result.c +33 -0
  234. data/vendor/automerge-rust/automerge-c/src/utils/stack.c +106 -0
  235. data/vendor/automerge-rust/automerge-c/src/utils/stack_callback_data.c +9 -0
  236. data/vendor/automerge-rust/automerge-c/src/utils/string.c +46 -0
  237. data/vendor/automerge-rust/automerge-c/test/CMakeLists.txt +67 -0
  238. data/vendor/automerge-rust/automerge-c/test/actor_id_tests.c +140 -0
  239. data/vendor/automerge-rust/automerge-c/test/base_state.c +17 -0
  240. data/vendor/automerge-rust/automerge-c/test/base_state.h +39 -0
  241. data/vendor/automerge-rust/automerge-c/test/byte_span_tests.c +119 -0
  242. data/vendor/automerge-rust/automerge-c/test/cmocka_utils.c +91 -0
  243. data/vendor/automerge-rust/automerge-c/test/cmocka_utils.h +42 -0
  244. data/vendor/automerge-rust/automerge-c/test/cursor_tests.c +263 -0
  245. data/vendor/automerge-rust/automerge-c/test/doc_state.c +27 -0
  246. data/vendor/automerge-rust/automerge-c/test/doc_state.h +17 -0
  247. data/vendor/automerge-rust/automerge-c/test/doc_tests.c +335 -0
  248. data/vendor/automerge-rust/automerge-c/test/enum_string_tests.c +148 -0
  249. data/vendor/automerge-rust/automerge-c/test/files/brave-ape-49.automerge +0 -0
  250. data/vendor/automerge-rust/automerge-c/test/item_tests.c +313 -0
  251. data/vendor/automerge-rust/automerge-c/test/list_tests.c +544 -0
  252. data/vendor/automerge-rust/automerge-c/test/macro_utils.c +38 -0
  253. data/vendor/automerge-rust/automerge-c/test/macro_utils.h +23 -0
  254. data/vendor/automerge-rust/automerge-c/test/main.c +33 -0
  255. data/vendor/automerge-rust/automerge-c/test/map_tests.c +1610 -0
  256. data/vendor/automerge-rust/automerge-c/test/mark_tests.c +124 -0
  257. data/vendor/automerge-rust/automerge-c/test/ported_wasm/basic_tests.c +1642 -0
  258. data/vendor/automerge-rust/automerge-c/test/ported_wasm/cursor_tests.c +108 -0
  259. data/vendor/automerge-rust/automerge-c/test/ported_wasm/suite.c +17 -0
  260. data/vendor/automerge-rust/automerge-c/test/ported_wasm/sync_tests.c +1280 -0
  261. data/vendor/automerge-rust/automerge-c/test/str_utils.c +15 -0
  262. data/vendor/automerge-rust/automerge-c/test/str_utils.h +17 -0
  263. data/vendor/automerge-rust/automerge-test/Cargo.toml +17 -0
  264. data/vendor/automerge-rust/automerge-test/README.md +3 -0
  265. data/vendor/automerge-rust/automerge-test/src/lib.rs +487 -0
  266. data/vendor/automerge-rust/hexane/CHANGELOG.md +34 -0
  267. data/vendor/automerge-rust/hexane/Cargo.toml +47 -0
  268. data/vendor/automerge-rust/hexane/README.md +292 -0
  269. data/vendor/automerge-rust/hexane/RESULTS.txt +20 -0
  270. data/vendor/automerge-rust/hexane/TODO +18 -0
  271. data/vendor/automerge-rust/hexane/benches/insert.rs +82 -0
  272. data/vendor/automerge-rust/hexane/benches/seek.rs +77 -0
  273. data/vendor/automerge-rust/hexane/benches/splice.rs +82 -0
  274. data/vendor/automerge-rust/hexane/src/aggregate.rs +288 -0
  275. data/vendor/automerge-rust/hexane/src/boolean.rs +478 -0
  276. data/vendor/automerge-rust/hexane/src/columndata.rs +2540 -0
  277. data/vendor/automerge-rust/hexane/src/cursor.rs +756 -0
  278. data/vendor/automerge-rust/hexane/src/delta.rs +793 -0
  279. data/vendor/automerge-rust/hexane/src/encoder.rs +639 -0
  280. data/vendor/automerge-rust/hexane/src/leb128.rs +82 -0
  281. data/vendor/automerge-rust/hexane/src/lib.rs +95 -0
  282. data/vendor/automerge-rust/hexane/src/pack.rs +325 -0
  283. data/vendor/automerge-rust/hexane/src/raw.rs +314 -0
  284. data/vendor/automerge-rust/hexane/src/rle.rs +928 -0
  285. data/vendor/automerge-rust/hexane/src/slab/tree.rs +1373 -0
  286. data/vendor/automerge-rust/hexane/src/slab/writer.rs +535 -0
  287. data/vendor/automerge-rust/hexane/src/slab.rs +224 -0
  288. data/vendor/automerge-rust/hexane/src/test.rs +108 -0
  289. data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
  290. data/vendor/bundle/ruby/3.3.0/bin/rake-compiler +29 -0
  291. data/vendor/bundle/ruby/3.3.0/bin/rake-compiler-dock +29 -0
  292. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/History.rdoc +1732 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Manifest.txt +32 -0
  294. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/README.rdoc +845 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Rakefile +97 -0
  296. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/design_rationale.rb +54 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/hoe/minitest.rb +30 -0
  298. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/assertions.rb +850 -0
  299. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/autorun.rb +6 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/benchmark.rb +452 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/compress.rb +94 -0
  302. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/error_on_warning.rb +11 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/expectations.rb +321 -0
  304. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/hell.rb +11 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/manual_plugins.rb +16 -0
  306. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/mock.rb +327 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/parallel.rb +72 -0
  308. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride.rb +4 -0
  309. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride_plugin.rb +135 -0
  310. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/spec.rb +353 -0
  311. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test.rb +238 -0
  312. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test_task.rb +324 -0
  313. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/unit.rb +42 -0
  314. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest.rb +1250 -0
  315. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/metametameta.rb +150 -0
  316. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_assertions.rb +1677 -0
  317. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_benchmark.rb +137 -0
  318. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_mock.rb +1213 -0
  319. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_reporter.rb +437 -0
  320. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_spec.rb +1159 -0
  321. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test.rb +1374 -0
  322. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test_task.rb +57 -0
  323. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/History.rdoc +2454 -0
  324. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/MIT-LICENSE +21 -0
  325. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/README.rdoc +155 -0
  326. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/command_line_usage.rdoc +171 -0
  327. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile1 +38 -0
  328. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile2 +35 -0
  329. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/a.c +6 -0
  330. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/b.c +6 -0
  331. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/main.c +11 -0
  332. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/glossary.rdoc +42 -0
  333. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/jamis.rb +592 -0
  334. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/proto_rake.rdoc +127 -0
  335. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rake.1 +156 -0
  336. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rakefile.rdoc +635 -0
  337. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rational.rdoc +151 -0
  338. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/exe/rake +27 -0
  339. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/application.rb +847 -0
  340. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/backtrace.rb +25 -0
  341. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/clean.rb +78 -0
  342. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cloneable.rb +17 -0
  343. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cpu_counter.rb +122 -0
  344. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/default_loader.rb +15 -0
  345. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/dsl_definition.rb +196 -0
  346. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/early_time.rb +22 -0
  347. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/core.rb +26 -0
  348. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/string.rb +176 -0
  349. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_creation_task.rb +25 -0
  350. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_list.rb +435 -0
  351. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_task.rb +58 -0
  352. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils.rb +137 -0
  353. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils_ext.rb +135 -0
  354. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_chain.rb +57 -0
  355. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_exception_mixin.rb +17 -0
  356. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/late_time.rb +18 -0
  357. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/linked_list.rb +112 -0
  358. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/loaders/makefile.rb +54 -0
  359. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/multi_task.rb +14 -0
  360. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/name_space.rb +38 -0
  361. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/options.rb +31 -0
  362. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/packagetask.rb +222 -0
  363. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/phony.rb +16 -0
  364. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/private_reader.rb +21 -0
  365. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/promise.rb +100 -0
  366. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/pseudo_status.rb +30 -0
  367. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_module.rb +67 -0
  368. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_test_loader.rb +27 -0
  369. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  370. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/scope.rb +43 -0
  371. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task.rb +434 -0
  372. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_argument_error.rb +8 -0
  373. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_arguments.rb +113 -0
  374. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_manager.rb +333 -0
  375. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/tasklib.rb +12 -0
  376. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/testtask.rb +192 -0
  377. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_history_display.rb +49 -0
  378. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_pool.rb +157 -0
  379. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/trace_output.rb +23 -0
  380. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/version.rb +10 -0
  381. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/win32.rb +17 -0
  382. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake.rb +69 -0
  383. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/rake.gemspec +102 -0
  384. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Gemfile +8 -0
  385. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/History.md +695 -0
  386. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/LICENSE.txt +20 -0
  387. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/README.md +476 -0
  388. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Rakefile +15 -0
  389. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/appveyor.yml +22 -0
  390. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/bin/rake-compiler +24 -0
  391. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/cucumber.yml +4 -0
  392. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/compile.feature +79 -0
  393. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-compile.feature +23 -0
  394. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package-multi.feature +15 -0
  395. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package.feature +14 -0
  396. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-compile.feature +22 -0
  397. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-no-native-compile.feature +33 -0
  398. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-package.feature +24 -0
  399. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/package.feature +40 -0
  400. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/compilation.rb +70 -0
  401. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/cross_compilation.rb +27 -0
  402. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/execution.rb +52 -0
  403. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/folders.rb +32 -0
  404. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/gem.rb +46 -0
  405. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/java_compilation.rb +7 -0
  406. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/env.rb +10 -0
  407. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/file_template_helpers.rb +137 -0
  408. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/generator_helpers.rb +123 -0
  409. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/platform_extension_helpers.rb +27 -0
  410. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/baseextensiontask.rb +90 -0
  411. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/compiler_config.rb +38 -0
  412. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensioncompiler.rb +51 -0
  413. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensiontask.rb +589 -0
  414. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/javaextensiontask.rb +321 -0
  415. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bin/cross-ruby.rake +189 -0
  416. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bootstrap.rake +11 -0
  417. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/common.rake +10 -0
  418. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/cucumber.rake +23 -0
  419. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/gem.rake +15 -0
  420. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/rspec.rake +9 -0
  421. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CHANGELOG.md +446 -0
  422. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CONTRIBUTING.md +109 -0
  423. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.jruby +79 -0
  424. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.mri.erb +282 -0
  425. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Gemfile +8 -0
  426. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/LICENSE.txt +22 -0
  427. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/README.md +447 -0
  428. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Rakefile +246 -0
  429. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/bin/rake-compiler-dock +18 -0
  430. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/buildkitd.toml +2 -0
  431. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/gem_helper.rb +54 -0
  432. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_i686.rb +18 -0
  433. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_musl_cross.sh +37 -0
  434. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_osxcross.sh +45 -0
  435. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_pkg_config.sh +24 -0
  436. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/parallel_docker_build.rb +169 -0
  437. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0004-Enable-build-of-static-libruby.patch +38 -0
  438. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0005-build-miniruby-first.patch +16 -0
  439. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0006-ruby-4-rubyspec-capiext.patch +16 -0
  440. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/rcd-env.sh +6 -0
  441. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/runas +7 -0
  442. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sigfw.c +45 -0
  443. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_codesign +17 -0
  444. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_vbox +30 -0
  445. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sudoers +1 -0
  446. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/colors.rb +43 -0
  447. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/docker_check.rb +356 -0
  448. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
  449. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/starter.rb +206 -0
  450. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/version.rb +4 -0
  451. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock.rb +151 -0
  452. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/Dockerfile +66 -0
  453. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/README.md +14 -0
  454. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch +13 -0
  455. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch +13 -0
  456. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
  457. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/rake-compiler-dock.gemspec +34 -0
  458. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.alpine +17 -0
  459. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.debian +24 -0
  460. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/fixtures/mig_test_rpc.defs +8 -0
  461. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Gemfile +11 -0
  462. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Rakefile +97 -0
  463. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
  464. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
  465. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/extconf.rb +111 -0
  466. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.c +65 -0
  467. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.h +11 -0
  468. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/lib/rcd_test.rb +6 -0
  469. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/rcd_test.gemspec +28 -0
  470. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/test/test_basic.rb +49 -0
  471. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_environment_variables.rb +108 -0
  472. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_mig.rb +18 -0
  473. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_parallel_docker_build.rb +95 -0
  474. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_rubygems_plugins.rb +12 -0
  475. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_starter.rb +158 -0
  476. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_versions.rb +82 -0
  477. data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.27.0.gemspec +32 -0
  478. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.4.2.gemspec +26 -0
  479. data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-1.3.1.gemspec +33 -0
  480. data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-dock-1.12.0.gemspec +28 -0
  481. metadata +584 -0
@@ -0,0 +1,1159 @@
1
+ require_relative "metametameta"
2
+ require "stringio"
3
+
4
+ class MiniSpecA < Minitest::Spec; end
5
+ class MiniSpecB < Minitest::Test; extend Minitest::Spec::DSL; end
6
+ class MiniSpecC < MiniSpecB; end
7
+ class NamedExampleA < MiniSpecA; end
8
+ class NamedExampleB < MiniSpecB; end
9
+ class NamedExampleC < MiniSpecC; end
10
+ class ExampleA; end
11
+ class ExampleB < ExampleA; end
12
+
13
+ describe Minitest::Spec do
14
+ # do not parallelize this suite... it just can"t handle it.
15
+
16
+ def assert_triggered expected = "blah", klass = Minitest::Assertion
17
+ @assertion_count += 1
18
+
19
+ e = assert_raises klass do
20
+ yield
21
+ end
22
+
23
+ msg = e.message.sub(/(---Backtrace---).*/m, '\1')
24
+ msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
25
+ msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
26
+ msg.gsub!(/:0x[Xa-fA-F0-9]{4,}[ @].+?>/, ":0xXXXXXX@PATH>")
27
+
28
+ return unless expected
29
+
30
+ @assertion_count += 1
31
+ case expected
32
+ when String then
33
+ assert_equal expected, msg
34
+ when Regexp then
35
+ @assertion_count += 1
36
+ assert_match expected, msg
37
+ else
38
+ flunk "Unknown: #{expected.inspect}"
39
+ end
40
+ end
41
+
42
+ def assert_success spec
43
+ assert_equal true, spec
44
+ end
45
+
46
+ before do
47
+ @assertion_count = 4
48
+ end
49
+
50
+ after do
51
+ _(self.assertions).must_equal @assertion_count if passed? and not skipped?
52
+ end
53
+
54
+ it "needs to be able to catch a Minitest::Assertion exception" do
55
+ @assertion_count = 1
56
+
57
+ assert_triggered "Expected 1 to not be equal to 1." do
58
+ _(1).wont_equal 1
59
+ end
60
+ end
61
+
62
+ it "needs to check for file existence" do
63
+ @assertion_count = 3
64
+
65
+ assert_success _(__FILE__).path_must_exist
66
+
67
+ assert_triggered "Expected path 'blah' to exist." do
68
+ _("blah").path_must_exist
69
+ end
70
+ end
71
+
72
+ it "needs to check for file non-existence" do
73
+ @assertion_count = 3
74
+
75
+ assert_success _("blah").path_wont_exist
76
+
77
+ assert_triggered "Expected path '#{__FILE__}' to not exist." do
78
+ _(__FILE__).path_wont_exist
79
+ end
80
+ end
81
+
82
+ it "needs to be sensible about must_include order" do
83
+ @assertion_count += 3 # must_include is 2 assertions
84
+
85
+ assert_success _([1, 2, 3]).must_include(2)
86
+
87
+ assert_triggered "Expected [1, 2, 3] to include 5." do
88
+ _([1, 2, 3]).must_include 5
89
+ end
90
+
91
+ assert_triggered "msg.\nExpected [1, 2, 3] to include 5." do
92
+ _([1, 2, 3]).must_include 5, "msg"
93
+ end
94
+ end
95
+
96
+ it "needs to be sensible about wont_include order" do
97
+ @assertion_count += 3 # wont_include is 2 assertions
98
+
99
+ assert_success _([1, 2, 3]).wont_include(5)
100
+
101
+ assert_triggered "Expected [1, 2, 3] to not include 2." do
102
+ _([1, 2, 3]).wont_include 2
103
+ end
104
+
105
+ assert_triggered "msg.\nExpected [1, 2, 3] to not include 2." do
106
+ _([1, 2, 3]).wont_include 2, "msg"
107
+ end
108
+ end
109
+
110
+ it "needs to catch an expected exception" do
111
+ @assertion_count -= 2
112
+
113
+ expect { raise "blah" }.must_raise RuntimeError
114
+ expect { raise Minitest::Assertion }.must_raise Minitest::Assertion
115
+ end
116
+
117
+ it "needs to catch an unexpected exception" do
118
+ @assertion_count -= 2 # no positive
119
+
120
+ msg = <<-EOM.gsub(/^ {6}/, "").chomp
121
+ [RuntimeError] exception expected, not
122
+ Class: <StandardError>
123
+ Message: <"woot">
124
+ ---Backtrace---
125
+ EOM
126
+
127
+ assert_triggered msg do
128
+ expect { raise StandardError, "woot" }.must_raise RuntimeError
129
+ end
130
+
131
+ assert_triggered "msg.\n#{msg}" do
132
+ expect { raise StandardError, "woot" }.must_raise RuntimeError, "msg"
133
+ end
134
+ end
135
+
136
+ def good_pattern
137
+ capture_io do # 3.0 is noisy
138
+ eval "[1,2,3] => [Integer, Integer, Integer]" # eval to escape parser for ruby<3
139
+ end
140
+ end
141
+
142
+ def bad_pattern
143
+ capture_io do # 3.0 is noisy
144
+ eval "[1,2,3] => [Integer, Integer]" # eval to escape parser for ruby<3
145
+ end
146
+ end
147
+
148
+ it "needs to pattern match" do
149
+ @assertion_count = 1
150
+
151
+ expect { good_pattern }.must_pattern_match
152
+ end
153
+
154
+ it "needs to error on bad pattern match" do
155
+ @assertion_count = 1
156
+
157
+ exp = /length mismatch/
158
+
159
+ assert_triggered exp do
160
+ expect { bad_pattern }.must_pattern_match
161
+ end
162
+ end
163
+
164
+ it "needs to ensure silence" do
165
+ @assertion_count -= 1 # no msg
166
+ @assertion_count += 2 # assert_output is 2 assertions
167
+
168
+ assert_success expect {}.must_be_silent
169
+
170
+ assert_triggered "In stdout.\nExpected: \"\"\n Actual: \"xxx\"" do
171
+ expect { print "xxx" }.must_be_silent
172
+ end
173
+ end
174
+
175
+ it "needs to have all methods named well" do
176
+ skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
177
+
178
+ @assertion_count = 2
179
+
180
+ methods = Minitest::Expectations.public_instance_methods.grep(/must|wont/)
181
+ methods.map!(&:to_s) if Symbol === methods.first
182
+
183
+ musts, wonts = methods.sort.partition { |m| m.include? "must" }
184
+
185
+ expected_musts = %w[must_be
186
+ must_be_close_to
187
+ must_be_empty
188
+ must_be_instance_of
189
+ must_be_kind_of
190
+ must_be_nil
191
+ must_be_same_as
192
+ must_be_silent
193
+ must_be_within_delta
194
+ must_be_within_epsilon
195
+ must_equal
196
+ must_include
197
+ must_match
198
+ must_output
199
+ must_pattern_match
200
+ must_raise
201
+ must_respond_to
202
+ must_throw
203
+ must_verify
204
+ path_must_exist]
205
+
206
+ bad = %w[not raise throw send output be_silent verify]
207
+
208
+ expected_wonts = expected_musts.map { |m| m.sub("must", "wont") }.sort
209
+ expected_wonts.reject! { |m| m =~ /wont_#{Regexp.union(*bad)}/ }
210
+
211
+ _(musts).must_equal expected_musts
212
+ _(wonts).must_equal expected_wonts
213
+ end
214
+
215
+ it "needs to raise if an expected exception is not raised" do
216
+ @assertion_count -= 2 # no positive test
217
+
218
+ assert_triggered "RuntimeError expected but nothing was raised." do
219
+ expect { 42 }.must_raise RuntimeError
220
+ end
221
+
222
+ assert_triggered "msg.\nRuntimeError expected but nothing was raised." do
223
+ expect { 42 }.must_raise RuntimeError, "msg"
224
+ end
225
+ end
226
+
227
+ it "needs to verify binary messages" do
228
+ assert_success _(42).wont_be(:<, 24)
229
+
230
+ assert_triggered "Expected 24 to not be < 42." do
231
+ _(24).wont_be :<, 42
232
+ end
233
+
234
+ assert_triggered "msg.\nExpected 24 to not be < 42." do
235
+ _(24).wont_be :<, 42, "msg"
236
+ end
237
+ end
238
+
239
+ it "needs to verify emptyness" do
240
+ @assertion_count += 3 # empty is 2 assertions
241
+
242
+ assert_success _([]).must_be_empty
243
+
244
+ assert_triggered "Expected [42] to be empty." do
245
+ _([42]).must_be_empty
246
+ end
247
+
248
+ assert_triggered "msg.\nExpected [42] to be empty." do
249
+ _([42]).must_be_empty "msg"
250
+ end
251
+ end
252
+
253
+ it "needs to verify equality" do
254
+ @assertion_count += 1
255
+
256
+ assert_success _(6 * 7).must_equal(42)
257
+
258
+ assert_triggered "Expected: 42\n Actual: 54" do
259
+ _(6 * 9).must_equal 42
260
+ end
261
+
262
+ assert_triggered "msg.\nExpected: 42\n Actual: 54" do
263
+ _(6 * 9).must_equal 42, "msg"
264
+ end
265
+
266
+ assert_triggered(/^-42\n\+#<Proc:0xXXXXXX[ @]PATH>\n/) do
267
+ _(proc { 42 }).must_equal 42 # proc isn't called, so expectation fails
268
+ end
269
+ end
270
+
271
+ it "needs to warn on equality with nil" do
272
+ @assertion_count = 3
273
+ @assertion_count += 2 unless error_on_warn? # 2 extra assertions
274
+
275
+ exp = /.*?test_minitest_\w+.rb:\d+: warning: DEPRECATED: Use assert_nil if expecting nil. This will fail in Minitest 6./
276
+
277
+ assert_deprecation exp do
278
+ assert_success _(nil).must_equal(nil)
279
+ end
280
+ end
281
+
282
+ it "needs to verify floats outside a delta" do
283
+ @assertion_count += 1 # extra test
284
+
285
+ assert_success _(24).wont_be_close_to(42)
286
+
287
+ assert_triggered "Expected |42 - 42.0| (0.0) to not be <= 0.001." do
288
+ _(6 * 7.0).wont_be_close_to 42
289
+ end
290
+
291
+ x = "1.0e-05"
292
+ assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
293
+ _(6 * 7.0).wont_be_close_to 42, 0.00001
294
+ end
295
+
296
+ assert_triggered "msg.\nExpected |42 - 42.0| (0.0) to not be <= #{x}." do
297
+ _(6 * 7.0).wont_be_close_to 42, 0.00001, "msg"
298
+ end
299
+ end
300
+
301
+ it "needs to verify floats outside an epsilon" do
302
+ @assertion_count += 1 # extra test
303
+
304
+ assert_success _(24).wont_be_within_epsilon(42)
305
+
306
+ x = "0.042"
307
+ assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
308
+ _(6 * 7.0).wont_be_within_epsilon 42
309
+ end
310
+
311
+ x = "0.00042"
312
+ assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
313
+ _(6 * 7.0).wont_be_within_epsilon 42, 0.00001
314
+ end
315
+
316
+ assert_triggered "msg.\nExpected |42 - 42.0| (0.0) to not be <= #{x}." do
317
+ _(6 * 7.0).wont_be_within_epsilon 42, 0.00001, "msg"
318
+ end
319
+ end
320
+
321
+ it "needs to verify floats within a delta" do
322
+ @assertion_count += 1 # extra test
323
+
324
+ assert_success _(6.0 * 7).must_be_close_to(42.0)
325
+
326
+ assert_triggered "Expected |0.0 - 0.01| (0.01) to be <= 0.001." do
327
+ _(1.0 / 100).must_be_close_to 0.0
328
+ end
329
+
330
+ x = "1.0e-06"
331
+ assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}." do
332
+ _(1.0 / 1000).must_be_close_to 0.0, 0.000001
333
+ end
334
+
335
+ assert_triggered "msg.\nExpected |0.0 - 0.001| (0.001) to be <= #{x}." do
336
+ _(1.0 / 1000).must_be_close_to 0.0, 0.000001, "msg"
337
+ end
338
+ end
339
+
340
+ it "needs to verify floats within an epsilon" do
341
+ @assertion_count += 1 # extra test
342
+
343
+ assert_success _(6.0 * 7).must_be_within_epsilon(42.0)
344
+
345
+ assert_triggered "Expected |0.0 - 0.01| (0.01) to be <= 0.0." do
346
+ _(1.0 / 100).must_be_within_epsilon 0.0
347
+ end
348
+
349
+ assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= 0.0." do
350
+ _(1.0 / 1000).must_be_within_epsilon 0.0, 0.000001
351
+ end
352
+
353
+ assert_triggered "msg.\nExpected |0.0 - 0.001| (0.001) to be <= 0.0." do
354
+ _(1.0 / 1000).must_be_within_epsilon 0.0, 0.000001, "msg"
355
+ end
356
+ end
357
+
358
+ it "needs to verify identity" do
359
+ assert_success _(1).must_be_same_as(1)
360
+
361
+ assert_triggered "Expected 1 (oid=N) to be the same as 2 (oid=N)." do
362
+ _(1).must_be_same_as 2
363
+ end
364
+
365
+ assert_triggered "msg.\nExpected 1 (oid=N) to be the same as 2 (oid=N)." do
366
+ _(1).must_be_same_as 2, "msg"
367
+ end
368
+ end
369
+
370
+ it "needs to verify inequality" do
371
+ @assertion_count += 2
372
+ assert_success _(42).wont_equal(6 * 9)
373
+ assert_success _(proc {}).wont_equal(42)
374
+
375
+ assert_triggered "Expected 1 to not be equal to 1." do
376
+ _(1).wont_equal 1
377
+ end
378
+
379
+ assert_triggered "msg.\nExpected 1 to not be equal to 1." do
380
+ _(1).wont_equal 1, "msg"
381
+ end
382
+ end
383
+
384
+ it "needs to verify instances of a class" do
385
+ assert_success _(42).wont_be_instance_of(String)
386
+
387
+ assert_triggered "Expected 42 to not be a kind of Integer." do
388
+ _(42).wont_be_kind_of Integer
389
+ end
390
+
391
+ assert_triggered "msg.\nExpected 42 to not be an instance of Integer." do
392
+ _(42).wont_be_instance_of Integer, "msg"
393
+ end
394
+ end
395
+
396
+ it "needs to verify kinds of a class" do
397
+ @assertion_count += 2
398
+
399
+ assert_success _(42).wont_be_kind_of(String)
400
+ assert_success _(proc {}).wont_be_kind_of(String)
401
+
402
+ assert_triggered "Expected 42 to not be a kind of Integer." do
403
+ _(42).wont_be_kind_of Integer
404
+ end
405
+
406
+ assert_triggered "msg.\nExpected 42 to not be a kind of Integer." do
407
+ _(42).wont_be_kind_of Integer, "msg"
408
+ end
409
+ end
410
+
411
+ it "needs to verify kinds of objects" do
412
+ @assertion_count += 3 # extra test
413
+
414
+ assert_success _(6 * 7).must_be_kind_of(Integer)
415
+ assert_success _(6 * 7).must_be_kind_of(Numeric)
416
+
417
+ assert_triggered "Expected 42 to be a kind of String, not Integer." do
418
+ _(6 * 7).must_be_kind_of String
419
+ end
420
+
421
+ assert_triggered "msg.\nExpected 42 to be a kind of String, not Integer." do
422
+ _(6 * 7).must_be_kind_of String, "msg"
423
+ end
424
+
425
+ exp = "Expected #<Proc:0xXXXXXX@PATH> to be a kind of String, not Proc."
426
+ assert_triggered exp do
427
+ _(proc {}).must_be_kind_of String
428
+ end
429
+ end
430
+
431
+ it "needs to verify mismatch" do
432
+ @assertion_count += 3 # match is 2
433
+
434
+ assert_success _("blah").wont_match(/\d+/)
435
+
436
+ assert_triggered "Expected /\\w+/ to not match \"blah\"." do
437
+ _("blah").wont_match(/\w+/)
438
+ end
439
+
440
+ assert_triggered "msg.\nExpected /\\w+/ to not match \"blah\"." do
441
+ _("blah").wont_match(/\w+/, "msg")
442
+ end
443
+ end
444
+
445
+ it "needs to verify nil" do
446
+ assert_success _(nil).must_be_nil
447
+
448
+ assert_triggered "Expected 42 to be nil." do
449
+ _(42).must_be_nil
450
+ end
451
+
452
+ assert_triggered "msg.\nExpected 42 to be nil." do
453
+ _(42).must_be_nil "msg"
454
+ end
455
+ end
456
+
457
+ it "needs to verify non-emptyness" do
458
+ @assertion_count += 3 # empty is 2 assertions
459
+
460
+ assert_success _(["some item"]).wont_be_empty
461
+
462
+ assert_triggered "Expected [] to not be empty." do
463
+ _([]).wont_be_empty
464
+ end
465
+
466
+ assert_triggered "msg.\nExpected [] to not be empty." do
467
+ _([]).wont_be_empty "msg"
468
+ end
469
+ end
470
+
471
+ it "needs to verify non-identity" do
472
+ assert_success _(1).wont_be_same_as(2)
473
+
474
+ assert_triggered "Expected 1 (oid=N) to not be the same as 1 (oid=N)." do
475
+ _(1).wont_be_same_as 1
476
+ end
477
+
478
+ assert_triggered "msg.\nExpected 1 (oid=N) to not be the same as 1 (oid=N)." do
479
+ _(1).wont_be_same_as 1, "msg"
480
+ end
481
+ end
482
+
483
+ it "needs to verify non-nil" do
484
+ assert_success _(42).wont_be_nil
485
+
486
+ assert_triggered "Expected nil to not be nil." do
487
+ _(nil).wont_be_nil
488
+ end
489
+
490
+ assert_triggered "msg.\nExpected nil to not be nil." do
491
+ _(nil).wont_be_nil "msg"
492
+ end
493
+ end
494
+
495
+ it "needs to verify objects not responding to a message" do
496
+ assert_success _("").wont_respond_to(:woot!)
497
+
498
+ assert_triggered "Expected \"\" to not respond to to_s." do
499
+ _("").wont_respond_to :to_s
500
+ end
501
+
502
+ assert_triggered "msg.\nExpected \"\" to not respond to to_s." do
503
+ _("").wont_respond_to :to_s, "msg"
504
+ end
505
+ end
506
+
507
+ it "needs to verify output in stderr" do
508
+ @assertion_count -= 1 # no msg
509
+
510
+ assert_success expect { $stderr.print "blah" }.must_output(nil, "blah")
511
+
512
+ assert_triggered "In stderr.\nExpected: \"blah\"\n Actual: \"xxx\"" do
513
+ expect { $stderr.print "xxx" }.must_output(nil, "blah")
514
+ end
515
+ end
516
+
517
+ it "needs to verify output in stdout" do
518
+ @assertion_count -= 1 # no msg
519
+
520
+ assert_success expect { print "blah" }.must_output("blah")
521
+
522
+ assert_triggered "In stdout.\nExpected: \"blah\"\n Actual: \"xxx\"" do
523
+ expect { print "xxx" }.must_output("blah")
524
+ end
525
+ end
526
+
527
+ it "needs to verify regexp matches" do
528
+ @assertion_count += 3 # must_match is 2 assertions
529
+
530
+ assert_kind_of MatchData, _("blah").must_match(/\w+/)
531
+
532
+ assert_triggered "Expected /\\d+/ to match \"blah\"." do
533
+ _("blah").must_match(/\d+/)
534
+ end
535
+
536
+ assert_triggered "msg.\nExpected /\\d+/ to match \"blah\"." do
537
+ _("blah").must_match(/\d+/, "msg")
538
+ end
539
+ end
540
+
541
+ describe "expect" do
542
+ before do
543
+ @assertion_count -= 3
544
+ end
545
+
546
+ it "can use expect" do
547
+ _(1 + 1).must_equal 2
548
+ end
549
+
550
+ it "can use expect with a lambda" do
551
+ _ { raise "blah" }.must_raise RuntimeError
552
+ end
553
+
554
+ it "can use expect in a thread" do
555
+ Thread.new { _(1 + 1).must_equal 2 }.join
556
+ end
557
+
558
+ it "can NOT use must_equal in a thread. It must use expect in a thread" do
559
+ skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
560
+
561
+ assert_raises RuntimeError, Minitest::UnexpectedWarning do
562
+ capture_io do
563
+ Thread.new { (1 + 1).must_equal 2 }.join
564
+ end
565
+ end
566
+ end
567
+
568
+ it "fails gracefully when expectation used outside of `it`" do
569
+ skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
570
+
571
+ @assertion_count += 2 # assert_match is compound
572
+
573
+ e = assert_raises RuntimeError, Minitest::UnexpectedWarning do
574
+ capture_io do
575
+ Thread.new { # forces ctx to be nil
576
+ describe "woot" do
577
+ (1 + 1).must_equal 2
578
+ end
579
+ }.join
580
+ end
581
+ end
582
+
583
+ exp = "Calling #must_equal outside of test."
584
+ exp = "DEPRECATED: global use of must_equal from" if error_on_warn?
585
+
586
+ assert_match exp, e.message
587
+ end
588
+
589
+ it "deprecates expectation used without _" do
590
+ skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
591
+
592
+ @assertion_count += 1
593
+ @assertion_count += 2 unless error_on_warn?
594
+
595
+ exp = /DEPRECATED: global use of must_equal from/
596
+
597
+ assert_deprecation exp do
598
+ (1 + 1).must_equal 2
599
+ end
600
+ end
601
+
602
+ # https://github.com/seattlerb/minitest/issues/837
603
+ # https://github.com/rails/rails/pull/39304
604
+ it "deprecates expectation used without _ with empty backtrace_filter" do
605
+ skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
606
+
607
+ @assertion_count += 1
608
+ @assertion_count += 2 unless error_on_warn?
609
+
610
+ exp = /DEPRECATED: global use of must_equal from/
611
+
612
+ with_empty_backtrace_filter do
613
+ assert_deprecation exp do
614
+ (1 + 1).must_equal 2
615
+ end
616
+ end
617
+ end
618
+ end
619
+
620
+ it "needs to verify throw" do
621
+ @assertion_count += 4 # 2 extra tests
622
+
623
+ assert_nil expect { throw :blah }.must_throw(:blah)
624
+ assert_equal 42, expect { throw :blah, 42 }.must_throw(:blah)
625
+
626
+ assert_triggered "Expected :blah to have been thrown." do
627
+ expect {}.must_throw :blah
628
+ end
629
+
630
+ assert_triggered "Expected :blah to have been thrown, not :xxx." do
631
+ expect { throw :xxx }.must_throw :blah
632
+ end
633
+
634
+ assert_triggered "msg.\nExpected :blah to have been thrown." do
635
+ expect {}.must_throw :blah, "msg"
636
+ end
637
+
638
+ assert_triggered "msg.\nExpected :blah to have been thrown, not :xxx." do
639
+ expect { throw :xxx }.must_throw :blah, "msg"
640
+ end
641
+ end
642
+
643
+ it "needs to verify types of objects" do
644
+ assert_success _(6 * 7).must_be_instance_of(Integer)
645
+
646
+ exp = "Expected 42 to be an instance of String, not Integer."
647
+
648
+ assert_triggered exp do
649
+ _(6 * 7).must_be_instance_of String
650
+ end
651
+
652
+ assert_triggered "msg.\n#{exp}" do
653
+ _(6 * 7).must_be_instance_of String, "msg"
654
+ end
655
+ end
656
+
657
+ it "needs to verify using any (negative) predicate" do
658
+ @assertion_count -= 1 # doesn"t take a message
659
+
660
+ assert_success _("blah").wont_be(:empty?)
661
+
662
+ assert_triggered "Expected \"\" to not be empty?." do
663
+ _("").wont_be :empty?
664
+ end
665
+ end
666
+
667
+ it "needs to verify using any binary operator" do
668
+ @assertion_count -= 1 # no msg
669
+
670
+ assert_success _(41).must_be(:<, 42)
671
+
672
+ assert_triggered "Expected 42 to be < 41." do
673
+ _(42).must_be :<, 41
674
+ end
675
+ end
676
+
677
+ it "needs to verify using any predicate" do
678
+ @assertion_count -= 1 # no msg
679
+
680
+ assert_success _("").must_be(:empty?)
681
+
682
+ assert_triggered "Expected \"blah\" to be empty?." do
683
+ _("blah").must_be :empty?
684
+ end
685
+ end
686
+
687
+ it "needs to verify using respond_to" do
688
+ assert_success _(42).must_respond_to(:+)
689
+
690
+ assert_triggered "Expected 42 (Integer) to respond to #clear." do
691
+ _(42).must_respond_to :clear
692
+ end
693
+
694
+ assert_triggered "msg.\nExpected 42 (Integer) to respond to #clear." do
695
+ _(42).must_respond_to :clear, "msg"
696
+ end
697
+ end
698
+ end
699
+
700
+ describe Minitest::Spec, :let do
701
+ def _count
702
+ $let_count ||= 0
703
+ end
704
+
705
+ let :count do
706
+ $let_count += 1
707
+ $let_count
708
+ end
709
+
710
+ it "is evaluated once per example" do
711
+ exp = _count + 1
712
+
713
+ _(count).must_equal exp
714
+ _(count).must_equal exp
715
+
716
+ _(_count).must_equal exp
717
+ end
718
+
719
+ it "is REALLY evaluated once per example" do
720
+ exp = _count + 1
721
+
722
+ _(count).must_equal exp
723
+ _(count).must_equal exp
724
+
725
+ _(_count).must_equal exp
726
+ end
727
+
728
+ it 'raises an error if the name begins with "test"' do
729
+ expect { self.class.let(:test_value) { true } }.must_raise ArgumentError
730
+ end
731
+
732
+ it "raises an error if the name shadows a normal instance method" do
733
+ expect { self.class.let(:message) { true } }.must_raise ArgumentError
734
+ end
735
+
736
+ it "doesn't raise an error if it is just another let" do
737
+ v = proc do
738
+ describe :outer do
739
+ let :bar
740
+ describe :inner do
741
+ let :bar
742
+ end
743
+ end
744
+ :good
745
+ end.call
746
+ _(v).must_equal :good
747
+ end
748
+
749
+ it "procs come after dont_flip" do
750
+ p = proc {}
751
+ assert_respond_to p, :call
752
+ _(p).must_respond_to :call
753
+ end
754
+ end
755
+
756
+ describe Minitest::Spec, :subject do
757
+ attr_reader :subject_evaluation_count
758
+
759
+ subject do
760
+ @subject_evaluation_count ||= 0
761
+ @subject_evaluation_count += 1
762
+ @subject_evaluation_count
763
+ end
764
+
765
+ it "is evaluated once per example" do
766
+ _(subject).must_equal 1
767
+ _(subject).must_equal 1
768
+ _(subject_evaluation_count).must_equal 1
769
+ end
770
+ end
771
+
772
+ class TestMetaStatic < Minitest::Test
773
+ def assert_method_count expected, klass
774
+ assert_equal expected, klass.public_instance_methods.grep(/^test_/).count
775
+ end
776
+
777
+ def test_children
778
+ Minitest::Spec.children.clear # prevents parallel run
779
+
780
+ y = z = nil
781
+ x = describe "top-level thingy" do
782
+ y = describe "first thingy" do end
783
+
784
+ it "top-level-it" do end
785
+
786
+ z = describe "second thingy" do end
787
+ end
788
+
789
+ assert_equal [x], Minitest::Spec.children
790
+ assert_equal [y, z], x.children
791
+ assert_equal [], y.children
792
+ assert_equal [], z.children
793
+ end
794
+
795
+ def test_it_wont_remove_existing_child_test_methods
796
+ Minitest::Spec.children.clear # prevents parallel run
797
+
798
+ inner = nil
799
+ outer = describe "outer" do
800
+ inner = describe "inner" do
801
+ it do
802
+ assert true
803
+ end
804
+ end
805
+ it do
806
+ assert true
807
+ end
808
+ end
809
+
810
+ assert_method_count 1, outer
811
+ assert_method_count 1, inner
812
+ end
813
+
814
+ def test_it_wont_add_test_methods_to_children
815
+ Minitest::Spec.children.clear # prevents parallel run
816
+
817
+ inner = nil
818
+ outer = describe "outer" do
819
+ inner = describe "inner" do end
820
+ it do
821
+ assert true
822
+ end
823
+ end
824
+
825
+ assert_method_count 1, outer
826
+ assert_method_count 0, inner
827
+ end
828
+ end
829
+
830
+ class TestMeta < MetaMetaMetaTestCase
831
+ # do not call parallelize_me! here because specs use register_spec_type globally
832
+
833
+ def assert_defined_methods expected, klass
834
+ assert_equal expected, klass.instance_methods(false).sort.map(&:to_s)
835
+ end
836
+
837
+ def util_structure
838
+ y = z = nil
839
+ before_list = []
840
+ after_list = []
841
+ x = describe "top-level thingy" do
842
+ before { before_list << 1 }
843
+ after { after_list << 1 }
844
+
845
+ it "top-level-it" do end
846
+
847
+ y = describe "inner thingy" do
848
+ before { before_list << 2 }
849
+ after { after_list << 2 }
850
+ it "inner-it" do end
851
+
852
+ z = describe "very inner thingy" do
853
+ before { before_list << 3 }
854
+ after { after_list << 3 }
855
+ it "inner-it" do end
856
+
857
+ it { } # ignore me
858
+ specify { } # anonymous it
859
+ end
860
+ end
861
+ end
862
+
863
+ return x, y, z, before_list, after_list
864
+ end
865
+
866
+ def test_register_spec_type
867
+ original_types = Minitest::Spec::TYPES.dup
868
+
869
+ assert_includes Minitest::Spec::TYPES, [//, Minitest::Spec]
870
+
871
+ Minitest::Spec.register_spec_type(/woot/, TestMeta)
872
+
873
+ p = lambda do |_| true end
874
+ Minitest::Spec.register_spec_type TestMeta, &p
875
+
876
+ keys = Minitest::Spec::TYPES.map(&:first)
877
+
878
+ assert_includes keys, /woot/
879
+ assert_includes keys, p
880
+ ensure
881
+ Minitest::Spec::TYPES.replace original_types
882
+ end
883
+
884
+ def test_spec_type
885
+ original_types = Minitest::Spec::TYPES.dup
886
+
887
+ Minitest::Spec.register_spec_type(/A$/, MiniSpecA)
888
+ Minitest::Spec.register_spec_type MiniSpecB do |desc|
889
+ desc.superclass == ExampleA
890
+ end
891
+ Minitest::Spec.register_spec_type MiniSpecC do |_desc, *addl|
892
+ addl.include? :woot
893
+ end
894
+
895
+ assert_equal MiniSpecA, Minitest::Spec.spec_type(ExampleA)
896
+ assert_equal MiniSpecB, Minitest::Spec.spec_type(ExampleB)
897
+ assert_equal MiniSpecC, Minitest::Spec.spec_type(ExampleB, :woot)
898
+ ensure
899
+ Minitest::Spec::TYPES.replace original_types
900
+ end
901
+
902
+ def test_bug_dsl_expectations
903
+ spec_class = Class.new MiniSpecB do
904
+ it "should work" do
905
+ _(0).must_equal 0
906
+ end
907
+ end
908
+
909
+ test_name = spec_class.instance_methods.sort.grep(/test_/).first
910
+
911
+ spec = spec_class.new test_name
912
+
913
+ result = spec.run
914
+
915
+ assert spec.passed?
916
+ assert result.passed?
917
+ assert_equal 1, result.assertions
918
+ end
919
+
920
+ def test_name
921
+ spec_a = describe ExampleA do; end
922
+ spec_b = describe ExampleB, :random_method do; end
923
+ spec_c = describe ExampleB, :random_method, :addl_context do; end
924
+
925
+ assert_equal "ExampleA", spec_a.name
926
+ assert_equal "ExampleB::random_method", spec_b.name
927
+ assert_equal "ExampleB::random_method::addl_context", spec_c.name
928
+ end
929
+
930
+ def test_inspect
931
+ spec_a = describe ExampleA do; end
932
+ spec_b = describe ExampleB, :random_method do; end
933
+ spec_c = describe ExampleB, :random_method, :addl_context do; end
934
+
935
+ assert_equal "ExampleA", spec_a.inspect
936
+ assert_equal "ExampleB::random_method", spec_b.inspect
937
+ assert_equal "ExampleB::random_method::addl_context", spec_c.inspect
938
+ end
939
+
940
+ def test_name2
941
+ assert_equal "NamedExampleA", NamedExampleA.name
942
+ assert_equal "NamedExampleB", NamedExampleB.name
943
+ assert_equal "NamedExampleC", NamedExampleC.name
944
+
945
+ spec_a = describe ExampleA do; end
946
+ spec_b = describe ExampleB, :random_method do; end
947
+
948
+ assert_equal "ExampleA", spec_a.name
949
+ assert_equal "ExampleB::random_method", spec_b.name
950
+ end
951
+
952
+ def test_name_inside_class
953
+ spec_a = nil
954
+ spec_b = nil
955
+ inside_class_example = Class.new Minitest::Spec
956
+ Object.const_set :InsideClassExample, inside_class_example
957
+ inside_class_example.class_eval do
958
+ spec_a = describe "a" do
959
+ spec_b = describe "b" do; end
960
+ end
961
+ end
962
+
963
+ assert_equal "InsideClassExample::a", spec_a.name
964
+ assert_equal "InsideClassExample::a::b", spec_b.name
965
+ ensure
966
+ Object.send :remove_const, :InsideClassExample
967
+ end
968
+
969
+ def test_structure
970
+ x, y, z, * = util_structure
971
+
972
+ assert_equal "top-level thingy", x.to_s
973
+ assert_equal "top-level thingy::inner thingy", y.to_s
974
+ assert_equal "top-level thingy::inner thingy::very inner thingy", z.to_s
975
+
976
+ assert_equal "top-level thingy", x.desc
977
+ assert_equal "inner thingy", y.desc
978
+ assert_equal "very inner thingy", z.desc
979
+
980
+ top_methods = %w[setup teardown test_0001_top-level-it]
981
+ inner_methods1 = %w[setup teardown test_0001_inner-it]
982
+ inner_methods2 = inner_methods1 +
983
+ %w[test_0002_anonymous test_0003_anonymous]
984
+
985
+ assert_defined_methods top_methods, x
986
+ assert_defined_methods inner_methods1, y
987
+ assert_defined_methods inner_methods2, z
988
+ end
989
+
990
+ def test_structure_postfix_it
991
+ z = nil
992
+ y = describe "outer" do
993
+ # NOT here, below the inner-describe!
994
+ # it "inner-it" do end
995
+
996
+ z = describe "inner" do
997
+ it "inner-it" do end
998
+ end
999
+
1000
+ # defined AFTER inner describe means we'll try to wipe out the inner-it
1001
+ it "inner-it" do end
1002
+ end
1003
+
1004
+ assert_defined_methods %w[test_0001_inner-it], y
1005
+ assert_defined_methods %w[test_0001_inner-it], z
1006
+ end
1007
+
1008
+ def test_setup_teardown_behavior
1009
+ _, _, z, before_list, after_list = util_structure
1010
+
1011
+ @tu = z
1012
+
1013
+ run_tu_with_fresh_reporter
1014
+
1015
+ size = z.runnable_methods.size
1016
+ assert_equal [1, 2, 3] * size, before_list
1017
+ assert_equal [3, 2, 1] * size, after_list
1018
+ end
1019
+
1020
+ def test_describe_first_structure
1021
+ x1 = x2 = y = z = nil
1022
+ x = describe "top-level thingy" do
1023
+ y = describe "first thingy" do end
1024
+
1025
+ x1 = it "top level it" do end
1026
+ x2 = it "не латинские &いった α, β, γ, δ, ε hello!!! world" do end
1027
+
1028
+ z = describe "second thingy" do end
1029
+ end
1030
+
1031
+ test_methods = [
1032
+ "test_0001_top level it",
1033
+ "test_0002_не латинские &いった α, β, γ, δ, ε hello!!! world",
1034
+ ].sort
1035
+
1036
+ assert_equal test_methods, [x1, x2]
1037
+ assert_defined_methods test_methods, x
1038
+ assert_defined_methods [], y
1039
+ assert_defined_methods [], z
1040
+ end
1041
+
1042
+ def test_structure_subclasses
1043
+ z = nil
1044
+ x = Class.new Minitest::Spec do
1045
+ def xyz; end
1046
+ end
1047
+ y = Class.new x do
1048
+ z = describe("inner") { }
1049
+ end
1050
+
1051
+ assert_respond_to x.new(nil), "xyz"
1052
+ assert_respond_to y.new(nil), "xyz"
1053
+ assert_respond_to z.new(nil), "xyz"
1054
+ end
1055
+ end
1056
+
1057
+ class TestSpecInTestCase < MetaMetaMetaTestCase
1058
+ def setup
1059
+ super
1060
+
1061
+ Thread.current[:current_spec] = self
1062
+ @tc = self
1063
+ @assertion_count = 2
1064
+ end
1065
+
1066
+ def assert_triggered expected, klass = Minitest::Assertion
1067
+ @assertion_count += 1
1068
+
1069
+ e = assert_raises klass do
1070
+ yield
1071
+ end
1072
+
1073
+ msg = e.message.sub(/(---Backtrace---).*/m, "\1")
1074
+ msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
1075
+
1076
+ assert_equal expected, msg
1077
+ end
1078
+
1079
+ def teardown
1080
+ msg = "expected #{@assertion_count} assertions, not #{@tc.assertions}"
1081
+ assert_equal @assertion_count, @tc.assertions, msg
1082
+ end
1083
+
1084
+ def test_expectation
1085
+ @tc.assert_equal true, _(1).must_equal(1)
1086
+ end
1087
+
1088
+ def test_expectation_triggered
1089
+ assert_triggered "Expected: 2\n Actual: 1" do
1090
+ _(1).must_equal 2
1091
+ end
1092
+ end
1093
+
1094
+ include Minitest::Spec::DSL::InstanceMethods
1095
+
1096
+ def test_expectation_with_a_message
1097
+ assert_triggered "woot.\nExpected: 2\n Actual: 1" do
1098
+ _(1).must_equal 2, "woot"
1099
+ end
1100
+ end
1101
+ end
1102
+
1103
+ class ValueMonadTest < Minitest::Test
1104
+ attr_accessor :struct
1105
+
1106
+ def setup
1107
+ @struct = { :_ => "a", :value => "b", :expect => "c" }
1108
+ def @struct.method_missing k # think openstruct
1109
+ self[k]
1110
+ end
1111
+ end
1112
+
1113
+ def test_value_monad_method
1114
+ assert_equal "a", struct._
1115
+ end
1116
+
1117
+ def test_value_monad_value_alias
1118
+ assert_equal "b", struct.value
1119
+ end
1120
+
1121
+ def test_value_monad_expect_alias
1122
+ assert_equal "c", struct.expect
1123
+ end
1124
+ end
1125
+
1126
+ describe Minitest::Spec, :infect_an_assertion do
1127
+ class << self
1128
+ attr_accessor :infect_mock
1129
+ end
1130
+
1131
+ def assert_infects exp, act, msg = nil, foo: nil, bar: nil
1132
+ self.class.infect_mock.assert_infects exp, act, msg, foo: foo, bar: bar
1133
+ end
1134
+
1135
+ infect_an_assertion :assert_infects, :must_infect
1136
+ infect_an_assertion :assert_infects, :must_infect_without_flipping, :dont_flip
1137
+
1138
+ it "infects assertions with kwargs" do
1139
+ mock = Minitest::Mock.new
1140
+ mock.expect :assert_infects, true, [:exp, :act, nil], foo: :foo, bar: :bar
1141
+
1142
+ self.class.infect_mock = mock
1143
+
1144
+ _(:act).must_infect :exp, foo: :foo, bar: :bar
1145
+
1146
+ assert_mock mock
1147
+ end
1148
+
1149
+ it "infects assertions with kwargs (dont_flip)" do
1150
+ mock = Minitest::Mock.new
1151
+ mock.expect :assert_infects, true, [:act, :exp, nil], foo: :foo, bar: :bar
1152
+
1153
+ self.class.infect_mock = mock
1154
+
1155
+ _(:act).must_infect_without_flipping :exp, foo: :foo, bar: :bar
1156
+
1157
+ assert_mock mock
1158
+ end
1159
+ end