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.
- checksums.yaml +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +175 -0
- data/ext/automerge_ext/automerge_ext.c +1805 -0
- data/ext/automerge_ext/extconf.rb +132 -0
- data/lib/automerge/version.rb +6 -0
- data/lib/automerge.rb +110 -0
- data/rust-toolchain.toml +4 -0
- data/vendor/automerge-rust/Cargo.lock +1909 -0
- data/vendor/automerge-rust/Cargo.toml +15 -0
- data/vendor/automerge-rust/automerge/Cargo.toml +78 -0
- data/vendor/automerge-rust/automerge/README.md +5 -0
- data/vendor/automerge-rust/automerge/benches/load_save.rs +102 -0
- data/vendor/automerge-rust/automerge/benches/map.rs +260 -0
- data/vendor/automerge-rust/automerge/benches/range.rs +37 -0
- data/vendor/automerge-rust/automerge/benches/sync.rs +95 -0
- data/vendor/automerge-rust/automerge/examples/README.md +7 -0
- data/vendor/automerge-rust/automerge/examples/quickstart.rs +57 -0
- data/vendor/automerge-rust/automerge/examples/watch.rs +94 -0
- data/vendor/automerge-rust/automerge/fuzz/Cargo.toml +29 -0
- data/vendor/automerge-rust/automerge/fuzz/fuzz_targets/load.rs +37 -0
- data/vendor/automerge-rust/automerge/src/autocommit.rs +1286 -0
- data/vendor/automerge-rust/automerge/src/automerge/current_state.rs +546 -0
- data/vendor/automerge-rust/automerge/src/automerge/tests.rs +2023 -0
- data/vendor/automerge-rust/automerge/src/automerge.rs +2071 -0
- data/vendor/automerge-rust/automerge/src/autoserde.rs +128 -0
- data/vendor/automerge-rust/automerge/src/change.rs +357 -0
- data/vendor/automerge-rust/automerge/src/change_graph.rs +1215 -0
- data/vendor/automerge-rust/automerge/src/change_queue.rs +46 -0
- data/vendor/automerge-rust/automerge/src/clock.rs +206 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/boolean.rs +83 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/delta.rs +148 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/group.rs +138 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/simple.rs +76 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic.rs +93 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/key.rs +272 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/obj_id.rs +202 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/opid_list.rs +329 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/raw.rs +38 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/rle.rs +216 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/value.rs +547 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range.rs +17 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/boolean.rs +197 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/col_error.rs +88 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/column_decoder.rs +133 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/decodable_impls.rs +175 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/delta.rs +96 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/encodable_impls.rs +200 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/leb128.rs +82 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/properties.rs +178 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/raw.rs +101 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/rle.rs +239 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding.rs +67 -0
- data/vendor/automerge-rust/automerge/src/columnar/splice_error.rs +47 -0
- data/vendor/automerge-rust/automerge/src/columnar.rs +14 -0
- data/vendor/automerge-rust/automerge/src/convert.rs +112 -0
- data/vendor/automerge-rust/automerge/src/cursor.rs +296 -0
- data/vendor/automerge-rust/automerge/src/decoding.rs +475 -0
- data/vendor/automerge-rust/automerge/src/error.rs +159 -0
- data/vendor/automerge-rust/automerge/src/exid.rs +238 -0
- data/vendor/automerge-rust/automerge/src/hydrate/list.rs +140 -0
- data/vendor/automerge-rust/automerge/src/hydrate/map.rs +132 -0
- data/vendor/automerge-rust/automerge/src/hydrate/tests.rs +40 -0
- data/vendor/automerge-rust/automerge/src/hydrate/text.rs +89 -0
- data/vendor/automerge-rust/automerge/src/hydrate.rs +368 -0
- data/vendor/automerge-rust/automerge/src/indexed_cache.rs +113 -0
- data/vendor/automerge-rust/automerge/src/iter/doc.rs +603 -0
- data/vendor/automerge-rust/automerge/src/iter/keys.rs +93 -0
- data/vendor/automerge-rust/automerge/src/iter/list_range.rs +433 -0
- data/vendor/automerge-rust/automerge/src/iter/map_range.rs +316 -0
- data/vendor/automerge-rust/automerge/src/iter/spans.rs +601 -0
- data/vendor/automerge-rust/automerge/src/iter/tools.rs +427 -0
- data/vendor/automerge-rust/automerge/src/iter/values.rs +36 -0
- data/vendor/automerge-rust/automerge/src/iter.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/mod.rs +364 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/actor_id.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/change_hash.rs +29 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/element_id.rs +27 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/mod.rs +31 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/object_id.rs +36 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op.rs +668 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op_type.rs +26 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/opid.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/scalar_value.rs +63 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/element_id.rs +66 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/key.rs +49 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/mod.rs +4 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/object_id.rs +74 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/opid.rs +68 -0
- data/vendor/automerge-rust/automerge/src/lib.rs +315 -0
- data/vendor/automerge-rust/automerge/src/marks.rs +478 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change/batch.rs +2002 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change/collector.rs +974 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change.rs +332 -0
- data/vendor/automerge-rust/automerge/src/op_set2/columns.rs +714 -0
- data/vendor/automerge-rust/automerge/src/op_set2/meta.rs +174 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op.rs +1363 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/elems.rs +43 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/found_op.rs +60 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/index.rs +197 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/insert.rs +179 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/mark_index.rs +292 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/marks.rs +86 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_iter.rs +1295 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_query.rs +82 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/top_op.rs +50 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/visible.rs +290 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set.rs +1793 -0
- data/vendor/automerge-rust/automerge/src/op_set2/parents.rs +133 -0
- data/vendor/automerge-rust/automerge/src/op_set2/skip_list.rs +714 -0
- data/vendor/automerge-rust/automerge/src/op_set2/types.rs +769 -0
- data/vendor/automerge-rust/automerge/src/op_set2.rs +18 -0
- data/vendor/automerge-rust/automerge/src/patches/patch.rs +95 -0
- data/vendor/automerge-rust/automerge/src/patches/patch_builder.rs +382 -0
- data/vendor/automerge-rust/automerge/src/patches/patch_log.rs +584 -0
- data/vendor/automerge-rust/automerge/src/patches.rs +7 -0
- data/vendor/automerge-rust/automerge/src/query/list_state.rs +230 -0
- data/vendor/automerge-rust/automerge/src/query/seek_mark.rs +142 -0
- data/vendor/automerge-rust/automerge/src/read.rs +326 -0
- data/vendor/automerge-rust/automerge/src/sequence_tree.rs +662 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/builder.rs +942 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/error.rs +42 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/meta.rs +23 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/storage.rs +146 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle.rs +210 -0
- data/vendor/automerge-rust/automerge/src/storage/change/change_actors.rs +311 -0
- data/vendor/automerge-rust/automerge/src/storage/change/change_op_columns.rs +621 -0
- data/vendor/automerge-rust/automerge/src/storage/change/compressed.rs +51 -0
- data/vendor/automerge-rust/automerge/src/storage/change/op_with_change_actors.rs +1 -0
- data/vendor/automerge-rust/automerge/src/storage/change.rs +523 -0
- data/vendor/automerge-rust/automerge/src/storage/chunk.rs +312 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column.rs +42 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column_builder.rs +199 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column_specification.rs +340 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/raw_column.rs +286 -0
- data/vendor/automerge-rust/automerge/src/storage/columns.rs +355 -0
- data/vendor/automerge-rust/automerge/src/storage/document/compression.rs +362 -0
- data/vendor/automerge-rust/automerge/src/storage/document.rs +411 -0
- data/vendor/automerge-rust/automerge/src/storage/load/change_collector.rs +15 -0
- data/vendor/automerge-rust/automerge/src/storage/load.rs +136 -0
- data/vendor/automerge-rust/automerge/src/storage/parse/leb128.rs +302 -0
- data/vendor/automerge-rust/automerge/src/storage/parse.rs +619 -0
- data/vendor/automerge-rust/automerge/src/storage/save/document.rs +27 -0
- data/vendor/automerge-rust/automerge/src/storage.rs +26 -0
- data/vendor/automerge-rust/automerge/src/sync/bloom.rs +161 -0
- data/vendor/automerge-rust/automerge/src/sync/message_builder.rs +118 -0
- data/vendor/automerge-rust/automerge/src/sync/state.rs +214 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/bloom.rs +162 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/mod.rs +625 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/state.rs +120 -0
- data/vendor/automerge-rust/automerge/src/sync.rs +2482 -0
- data/vendor/automerge-rust/automerge/src/text_diff/LICENSE +201 -0
- data/vendor/automerge-rust/automerge/src/text_diff/myers.rs +332 -0
- data/vendor/automerge-rust/automerge/src/text_diff/replace.rs +139 -0
- data/vendor/automerge-rust/automerge/src/text_diff/utils.rs +119 -0
- data/vendor/automerge-rust/automerge/src/text_diff.rs +515 -0
- data/vendor/automerge-rust/automerge/src/text_value.rs +276 -0
- data/vendor/automerge-rust/automerge/src/transaction/commit.rs +34 -0
- data/vendor/automerge-rust/automerge/src/transaction/inner.rs +1403 -0
- data/vendor/automerge-rust/automerge/src/transaction/manual_transaction.rs +147 -0
- data/vendor/automerge-rust/automerge/src/transaction/owned_transaction.rs +266 -0
- data/vendor/automerge-rust/automerge/src/transaction/result.rs +21 -0
- data/vendor/automerge-rust/automerge/src/transaction/transactable.rs +203 -0
- data/vendor/automerge-rust/automerge/src/transaction.rs +513 -0
- data/vendor/automerge-rust/automerge/src/types.rs +749 -0
- data/vendor/automerge-rust/automerge/src/validation.rs +29 -0
- data/vendor/automerge-rust/automerge/src/value.rs +763 -0
- data/vendor/automerge-rust/automerge/tests/batch_insert.rs +1034 -0
- data/vendor/automerge-rust/automerge/tests/block_tests.rs +887 -0
- data/vendor/automerge-rust/automerge/tests/convert_string_to_text.rs +72 -0
- data/vendor/automerge-rust/automerge/tests/diff_marks.rs +1508 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_change.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_doc.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_has_incorrect_meta.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_ok.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_overlong.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_compressed.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_out_of_order.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/action-is-48.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/incorrect_max_op.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/invalid_deflate_stream.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/missing_actor.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/overflow_in_length.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_deps.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_ops.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/test.rs +2668 -0
- data/vendor/automerge-rust/automerge/tests/test_mark_patches.rs +41 -0
- data/vendor/automerge-rust/automerge/tests/test_save_load_orphans.rs +84 -0
- data/vendor/automerge-rust/automerge/tests/text.rs +1098 -0
- data/vendor/automerge-rust/automerge/tests/text_encoding.rs +640 -0
- data/vendor/automerge-rust/automerge-c/CMakeLists.txt +439 -0
- data/vendor/automerge-rust/automerge-c/Cargo.toml +22 -0
- data/vendor/automerge-rust/automerge-c/README.md +233 -0
- data/vendor/automerge-rust/automerge-c/build.rs +21 -0
- data/vendor/automerge-rust/automerge-c/cbindgen.toml +48 -0
- data/vendor/automerge-rust/automerge-c/cmake/Cargo.toml.in +22 -0
- data/vendor/automerge-rust/automerge-c/cmake/automerge-c-config.cmake.in +99 -0
- data/vendor/automerge-rust/automerge-c/cmake/cbindgen.toml.in +48 -0
- data/vendor/automerge-rust/automerge-c/cmake/config.h.in +58 -0
- data/vendor/automerge-rust/automerge-c/cmake/enum-string-functions-gen.cmake +183 -0
- data/vendor/automerge-rust/automerge-c/cmake/file-regex-replace.cmake +33 -0
- data/vendor/automerge-rust/automerge-c/cmake/file-touch.cmake +35 -0
- data/vendor/automerge-rust/automerge-c/docs/CMakeLists.txt +39 -0
- data/vendor/automerge-rust/automerge-c/docs/img/brandmark.png +0 -0
- data/vendor/automerge-rust/automerge-c/examples/CMakeLists.txt +42 -0
- data/vendor/automerge-rust/automerge-c/examples/README.md +9 -0
- data/vendor/automerge-rust/automerge-c/examples/quickstart.c +131 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/result.h +30 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack.h +130 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack_callback_data.h +53 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/string.h +29 -0
- data/vendor/automerge-rust/automerge-c/src/actor_id.rs +193 -0
- data/vendor/automerge-rust/automerge-c/src/byte_span.rs +227 -0
- data/vendor/automerge-rust/automerge-c/src/change.rs +356 -0
- data/vendor/automerge-rust/automerge-c/src/cursor.rs +168 -0
- data/vendor/automerge-rust/automerge-c/src/doc/list.rs +636 -0
- data/vendor/automerge-rust/automerge-c/src/doc/map.rs +556 -0
- data/vendor/automerge-rust/automerge-c/src/doc/mark.rs +296 -0
- data/vendor/automerge-rust/automerge-c/src/doc/utils.rs +46 -0
- data/vendor/automerge-rust/automerge-c/src/doc.rs +1009 -0
- data/vendor/automerge-rust/automerge-c/src/index.rs +84 -0
- data/vendor/automerge-rust/automerge-c/src/item.rs +2177 -0
- data/vendor/automerge-rust/automerge-c/src/items.rs +401 -0
- data/vendor/automerge-rust/automerge-c/src/lib.rs +11 -0
- data/vendor/automerge-rust/automerge-c/src/obj.rs +216 -0
- data/vendor/automerge-rust/automerge-c/src/result.rs +653 -0
- data/vendor/automerge-rust/automerge-c/src/sync/have.rs +42 -0
- data/vendor/automerge-rust/automerge-c/src/sync/message.rs +146 -0
- data/vendor/automerge-rust/automerge-c/src/sync/state.rs +262 -0
- data/vendor/automerge-rust/automerge-c/src/sync.rs +7 -0
- data/vendor/automerge-rust/automerge-c/src/utils/result.c +33 -0
- data/vendor/automerge-rust/automerge-c/src/utils/stack.c +106 -0
- data/vendor/automerge-rust/automerge-c/src/utils/stack_callback_data.c +9 -0
- data/vendor/automerge-rust/automerge-c/src/utils/string.c +46 -0
- data/vendor/automerge-rust/automerge-c/test/CMakeLists.txt +67 -0
- data/vendor/automerge-rust/automerge-c/test/actor_id_tests.c +140 -0
- data/vendor/automerge-rust/automerge-c/test/base_state.c +17 -0
- data/vendor/automerge-rust/automerge-c/test/base_state.h +39 -0
- data/vendor/automerge-rust/automerge-c/test/byte_span_tests.c +119 -0
- data/vendor/automerge-rust/automerge-c/test/cmocka_utils.c +91 -0
- data/vendor/automerge-rust/automerge-c/test/cmocka_utils.h +42 -0
- data/vendor/automerge-rust/automerge-c/test/cursor_tests.c +263 -0
- data/vendor/automerge-rust/automerge-c/test/doc_state.c +27 -0
- data/vendor/automerge-rust/automerge-c/test/doc_state.h +17 -0
- data/vendor/automerge-rust/automerge-c/test/doc_tests.c +335 -0
- data/vendor/automerge-rust/automerge-c/test/enum_string_tests.c +148 -0
- data/vendor/automerge-rust/automerge-c/test/files/brave-ape-49.automerge +0 -0
- data/vendor/automerge-rust/automerge-c/test/item_tests.c +313 -0
- data/vendor/automerge-rust/automerge-c/test/list_tests.c +544 -0
- data/vendor/automerge-rust/automerge-c/test/macro_utils.c +38 -0
- data/vendor/automerge-rust/automerge-c/test/macro_utils.h +23 -0
- data/vendor/automerge-rust/automerge-c/test/main.c +33 -0
- data/vendor/automerge-rust/automerge-c/test/map_tests.c +1610 -0
- data/vendor/automerge-rust/automerge-c/test/mark_tests.c +124 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/basic_tests.c +1642 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/cursor_tests.c +108 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/suite.c +17 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/sync_tests.c +1280 -0
- data/vendor/automerge-rust/automerge-c/test/str_utils.c +15 -0
- data/vendor/automerge-rust/automerge-c/test/str_utils.h +17 -0
- data/vendor/automerge-rust/automerge-test/Cargo.toml +17 -0
- data/vendor/automerge-rust/automerge-test/README.md +3 -0
- data/vendor/automerge-rust/automerge-test/src/lib.rs +487 -0
- data/vendor/automerge-rust/hexane/CHANGELOG.md +34 -0
- data/vendor/automerge-rust/hexane/Cargo.toml +47 -0
- data/vendor/automerge-rust/hexane/README.md +292 -0
- data/vendor/automerge-rust/hexane/RESULTS.txt +20 -0
- data/vendor/automerge-rust/hexane/TODO +18 -0
- data/vendor/automerge-rust/hexane/benches/insert.rs +82 -0
- data/vendor/automerge-rust/hexane/benches/seek.rs +77 -0
- data/vendor/automerge-rust/hexane/benches/splice.rs +82 -0
- data/vendor/automerge-rust/hexane/src/aggregate.rs +288 -0
- data/vendor/automerge-rust/hexane/src/boolean.rs +478 -0
- data/vendor/automerge-rust/hexane/src/columndata.rs +2540 -0
- data/vendor/automerge-rust/hexane/src/cursor.rs +756 -0
- data/vendor/automerge-rust/hexane/src/delta.rs +793 -0
- data/vendor/automerge-rust/hexane/src/encoder.rs +639 -0
- data/vendor/automerge-rust/hexane/src/leb128.rs +82 -0
- data/vendor/automerge-rust/hexane/src/lib.rs +95 -0
- data/vendor/automerge-rust/hexane/src/pack.rs +325 -0
- data/vendor/automerge-rust/hexane/src/raw.rs +314 -0
- data/vendor/automerge-rust/hexane/src/rle.rs +928 -0
- data/vendor/automerge-rust/hexane/src/slab/tree.rs +1373 -0
- data/vendor/automerge-rust/hexane/src/slab/writer.rs +535 -0
- data/vendor/automerge-rust/hexane/src/slab.rs +224 -0
- data/vendor/automerge-rust/hexane/src/test.rs +108 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake-compiler +29 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake-compiler-dock +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/History.rdoc +1732 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Manifest.txt +32 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/README.rdoc +845 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Rakefile +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/design_rationale.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/hoe/minitest.rb +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/assertions.rb +850 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/autorun.rb +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/benchmark.rb +452 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/compress.rb +94 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/error_on_warning.rb +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/expectations.rb +321 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/hell.rb +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/manual_plugins.rb +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/mock.rb +327 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/parallel.rb +72 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride.rb +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride_plugin.rb +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/spec.rb +353 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test.rb +238 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test_task.rb +324 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/unit.rb +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest.rb +1250 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/metametameta.rb +150 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_assertions.rb +1677 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_mock.rb +1213 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_reporter.rb +437 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_spec.rb +1159 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test.rb +1374 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test_task.rb +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/History.rdoc +2454 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/command_line_usage.rdoc +171 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rakefile.rdoc +635 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/exe/rake +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/application.rb +847 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/backtrace.rb +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cpu_counter.rb +122 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/dsl_definition.rb +196 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_task.rb +58 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils_ext.rb +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/options.rb +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/packagetask.rb +222 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task.rb +434 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_arguments.rb +113 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_manager.rb +333 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/testtask.rb +192 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_pool.rb +157 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/win32.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake.rb +69 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/rake.gemspec +102 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Gemfile +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/History.md +695 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/README.md +476 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Rakefile +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/appveyor.yml +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/bin/rake-compiler +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/cucumber.yml +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/compile.feature +79 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-compile.feature +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package-multi.feature +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package.feature +14 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-compile.feature +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-no-native-compile.feature +33 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-package.feature +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/package.feature +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/compilation.rb +70 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/cross_compilation.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/execution.rb +52 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/folders.rb +32 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/gem.rb +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/java_compilation.rb +7 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/env.rb +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/file_template_helpers.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/generator_helpers.rb +123 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/platform_extension_helpers.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/baseextensiontask.rb +90 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/compiler_config.rb +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensioncompiler.rb +51 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensiontask.rb +589 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/javaextensiontask.rb +321 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bin/cross-ruby.rake +189 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bootstrap.rake +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/common.rake +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/cucumber.rake +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/gem.rake +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/rspec.rake +9 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CHANGELOG.md +446 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CONTRIBUTING.md +109 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.jruby +79 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.mri.erb +282 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Gemfile +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/README.md +447 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Rakefile +246 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/bin/rake-compiler-dock +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/buildkitd.toml +2 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/gem_helper.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_i686.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_musl_cross.sh +37 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_osxcross.sh +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_pkg_config.sh +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/parallel_docker_build.rb +169 -0
- 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
- 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
- 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
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/rcd-env.sh +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/runas +7 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sigfw.c +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_codesign +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_vbox +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sudoers +1 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/colors.rb +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/docker_check.rb +356 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/starter.rb +206 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/version.rb +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock.rb +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/Dockerfile +66 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/README.md +14 -0
- 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
- 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
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/rake-compiler-dock.gemspec +34 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.alpine +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.debian +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/fixtures/mig_test_rpc.defs +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Gemfile +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Rakefile +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/extconf.rb +111 -0
- 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
- 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
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/lib/rcd_test.rb +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/rcd_test.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/test/test_basic.rb +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_environment_variables.rb +108 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_mig.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_parallel_docker_build.rb +95 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_rubygems_plugins.rb +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_starter.rb +158 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_versions.rb +82 -0
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.27.0.gemspec +32 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.4.2.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-1.3.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-dock-1.12.0.gemspec +28 -0
- 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
|