opal-rspec 0.8.0.alpha3 → 1.0.0.alpha1
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 +4 -4
- data/.github/workflows/build.yml +7 -7
- data/.gitmodules +6 -0
- data/CHANGELOG.md +16 -1
- data/Gemfile +13 -0
- data/README.md +63 -59
- data/diff-lcs/spec/files_to_exclude.txt +1 -0
- data/diff-lcs/spec/requires.rb +4 -0
- data/diff-lcs/upstream/.autotest +5 -0
- data/diff-lcs/upstream/.fasterer.yml +3 -0
- data/{stubs/diff/lcs.rb → diff-lcs/upstream/.gemtest} +0 -0
- data/diff-lcs/upstream/.github/workflows/ci.yml +64 -0
- data/diff-lcs/upstream/.github/workflows/codeql-analysis.yml +70 -0
- data/diff-lcs/upstream/.gitignore +20 -0
- data/diff-lcs/upstream/.hoerc +52 -0
- data/diff-lcs/upstream/.rspec +1 -0
- data/diff-lcs/upstream/.standard.yml +6 -0
- data/diff-lcs/upstream/Code-of-Conduct.md +74 -0
- data/diff-lcs/upstream/Contributing.md +119 -0
- data/diff-lcs/upstream/Gemfile +28 -0
- data/diff-lcs/upstream/History.md +407 -0
- data/diff-lcs/upstream/License.md +41 -0
- data/diff-lcs/upstream/Manifest.txt +59 -0
- data/diff-lcs/upstream/README.rdoc +84 -0
- data/diff-lcs/upstream/Rakefile +127 -0
- data/diff-lcs/upstream/bin/htmldiff +35 -0
- data/diff-lcs/upstream/bin/ldiff +9 -0
- data/diff-lcs/upstream/diff-lcs.gemspec +48 -0
- data/diff-lcs/upstream/docs/COPYING.txt +339 -0
- data/diff-lcs/upstream/docs/artistic.txt +127 -0
- data/diff-lcs/upstream/lib/diff/lcs/array.rb +7 -0
- data/diff-lcs/upstream/lib/diff/lcs/backports.rb +9 -0
- data/diff-lcs/upstream/lib/diff/lcs/block.rb +37 -0
- data/diff-lcs/upstream/lib/diff/lcs/callbacks.rb +327 -0
- data/diff-lcs/upstream/lib/diff/lcs/change.rb +174 -0
- data/diff-lcs/upstream/lib/diff/lcs/htmldiff.rb +158 -0
- data/diff-lcs/upstream/lib/diff/lcs/hunk.rb +363 -0
- data/diff-lcs/upstream/lib/diff/lcs/internals.rb +308 -0
- data/diff-lcs/upstream/lib/diff/lcs/ldiff.rb +173 -0
- data/diff-lcs/upstream/lib/diff/lcs/string.rb +5 -0
- data/diff-lcs/upstream/lib/diff/lcs.rb +741 -0
- data/diff-lcs/upstream/lib/diff-lcs.rb +3 -0
- data/diff-lcs/upstream/spec/change_spec.rb +89 -0
- data/diff-lcs/upstream/spec/diff_spec.rb +51 -0
- data/diff-lcs/upstream/spec/fixtures/aX +1 -0
- data/diff-lcs/upstream/spec/fixtures/bXaX +1 -0
- data/diff-lcs/upstream/spec/fixtures/ds1.csv +50 -0
- data/diff-lcs/upstream/spec/fixtures/ds2.csv +51 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff +4 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-c +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-e +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-f +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-u +5 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-c +15 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-e +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-f +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-u +9 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2 +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
- data/diff-lcs/upstream/spec/fixtures/new-chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/new-chef2 +17 -0
- data/diff-lcs/upstream/spec/fixtures/old-chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/old-chef2 +14 -0
- data/diff-lcs/upstream/spec/hunk_spec.rb +83 -0
- data/diff-lcs/upstream/spec/issues_spec.rb +160 -0
- data/diff-lcs/upstream/spec/lcs_spec.rb +56 -0
- data/diff-lcs/upstream/spec/ldiff_spec.rb +89 -0
- data/diff-lcs/upstream/spec/patch_spec.rb +416 -0
- data/diff-lcs/upstream/spec/sdiff_spec.rb +216 -0
- data/diff-lcs/upstream/spec/spec_helper.rb +376 -0
- data/diff-lcs/upstream/spec/traverse_balanced_spec.rb +312 -0
- data/diff-lcs/upstream/spec/traverse_sequences_spec.rb +137 -0
- data/lib/opal/rspec/runner.rb +11 -0
- data/lib/opal/rspec/sprockets.rb +6 -0
- data/lib/opal/rspec/version.rb +1 -1
- data/lib/opal/rspec.rb +1 -2
- data/lib-opal/opal/rspec/async/configuration.rb +39 -0
- data/lib-opal/opal/rspec/async/example.rb +80 -168
- data/lib-opal/opal/rspec/async/example_group.rb +71 -81
- data/lib-opal/opal/rspec/async/hooks.rb +98 -8
- data/lib-opal/opal/rspec/async/memoized_helpers.rb +32 -0
- data/lib-opal/opal/rspec/async/reporter.rb +6 -3
- data/lib-opal/opal/rspec/async/runner.rb +33 -24
- data/lib-opal/opal/rspec/async.rb +4 -1
- data/lib-opal/opal/rspec/browser.rb +0 -8
- data/lib-opal/opal/rspec/browser_early.rb +5 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs/hunk.rb +164 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs/lcs.rb +112 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs.rb +2 -0
- data/lib-opal/opal/rspec/fixes/opal.rb +4 -17
- data/lib-opal/opal/rspec/fixes/rspec/core/example_status_persister.rb +11 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +3 -12
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/exception_presenter.rb +28 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/loader.rb +0 -32
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/snippet_extractor.rb +17 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/syntax_highlighter.rb +17 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters.rb +3 -4
- data/lib-opal/opal/rspec/fixes/rspec/core/metadata.rb +24 -8
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +3 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications.rb +0 -2
- data/lib-opal/opal/rspec/fixes/rspec/core.rb +1 -2
- data/lib-opal/opal/rspec/fixes/rspec/expectations.rb +0 -1
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/base_matcher.rb +26 -0
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in.rb +1 -3
- data/lib-opal/opal/rspec/fixes/rspec/matchers/expecteds_for_multiple_diffs.rb +13 -0
- data/lib-opal/opal/rspec/fixes/rspec/matchers.rb +1 -1
- data/lib-opal/opal/rspec/fixes/rspec/mocks/error_generator.rb +26 -10
- data/lib-opal/opal/rspec/fixes/rspec/mocks/proxy.rb +19 -0
- data/lib-opal/opal/rspec/fixes/rspec/mocks.rb +1 -3
- data/lib-opal/opal/rspec/fixes/rspec/support/differ.rb +29 -0
- data/lib-opal/opal/rspec/fixes/rspec/support/encoded_string.rb +9 -5
- data/lib-opal/opal/rspec/fixes/rspec/support/ruby_features.rb +22 -0
- data/lib-opal/opal/rspec/fixes/rspec/support/source.rb +15 -0
- data/lib-opal/opal/rspec/fixes/rspec/support.rb +3 -3
- data/lib-opal/opal/rspec/fixes/rspec.rb +0 -1
- data/lib-opal/opal/rspec/fixes.rb +1 -0
- data/lib-opal/opal/rspec/formatter/document_io.rb +1 -1
- data/lib-opal/opal/rspec/formatter/html_printer.rb +1 -1
- data/lib-opal/opal/rspec/pre_require_fixes.rb +1 -5
- data/lib-opal/opal/rspec/requires.rb +32 -19
- data/lib-opal/opal/rspec/sprockets_runner.rb.erb +1 -0
- data/lib-opal/opal/rspec.rb +3 -0
- data/opal-rspec.gemspec +1 -1
- data/rspec/upstream/.document +1 -1
- data/rspec/upstream/.github/FUNDING.yml +5 -0
- data/rspec/upstream/.gitignore +1 -0
- data/rspec/upstream/LICENSE.md +27 -0
- data/rspec/upstream/README.md +26 -26
- data/rspec/upstream/Rakefile +1 -1
- data/rspec/upstream/certs/rspec.pem +32 -20
- data/rspec/upstream/certs/samphippen.asc +18 -0
- data/rspec/upstream/code_of_conduct.md +59 -0
- data/rspec/upstream/lib/rspec/version.rb +1 -1
- data/rspec/upstream/rspec.gemspec +7 -2
- data/rspec-core/upstream/.document +1 -1
- data/rspec-core/upstream/.github/FUNDING.yml +5 -0
- data/rspec-core/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-core/upstream/.gitignore +2 -0
- data/rspec-core/upstream/.rspec +1 -0
- data/rspec-core/upstream/.rubocop.yml +64 -12
- data/rspec-core/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-core/upstream/.rubocop_todo.yml +1031 -0
- data/rspec-core/upstream/.yardopts +2 -1
- data/rspec-core/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-core/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-core/upstream/CONTRIBUTING.md +86 -0
- data/rspec-core/upstream/Changelog.md +721 -2
- data/rspec-core/upstream/DEV-README.md +2 -2
- data/rspec-core/upstream/DEVELOPMENT.md +131 -0
- data/rspec-core/upstream/Filtering.md +173 -0
- data/rspec-core/upstream/Gemfile +78 -9
- data/rspec-core/upstream/ISSUE_TEMPLATE.md +24 -0
- data/rspec-core/upstream/{License.txt → LICENSE.md} +6 -5
- data/rspec-core/upstream/README.md +165 -24
- data/rspec-core/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-core/upstream/Rakefile +1 -1
- data/rspec-core/upstream/benchmarks/allocations/1000_groups_1_example.rb +124 -0
- data/rspec-core/upstream/benchmarks/allocations/1_group_1000_examples.rb +63 -0
- data/rspec-core/upstream/benchmarks/allocations/helper.rb +30 -0
- data/rspec-core/upstream/benchmarks/allocations/running_1000_groups_1_example.rb +100 -0
- data/rspec-core/upstream/benchmarks/allocations/running_1_group_1000_examples.rb +60 -0
- data/rspec-core/upstream/benchmarks/capture_block_vs_yield.rb +208 -0
- data/rspec-core/upstream/benchmarks/flat_map_vs_inject.rb +55 -0
- data/rspec-core/upstream/benchmarks/hash_functions.rb +74 -0
- data/rspec-core/upstream/benchmarks/keys_each_vs_each_key.rb +43 -0
- data/rspec-core/upstream/benchmarks/module_inclusion_filtering.rb +89 -0
- data/rspec-core/upstream/benchmarks/precalculate_absolute_file_path_or_not.rb +29 -0
- data/rspec-core/upstream/benchmarks/shuffle_vs_sort_by_for_random_ordering.rb +131 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/helper.rb +122 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_config_hooks.rb +28 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_config_hooks_module_inclusions_and_shared_context_inclusions.rb +35 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_module_inclusions.rb +28 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_no_config_hooks_or_inclusions.rb +22 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_shared_context_inclusions.rb +28 -0
- data/rspec-core/upstream/benchmarks/threadsafe_let_block.rb +312 -0
- data/rspec-core/upstream/cucumber.yml +7 -2
- data/rspec-core/upstream/features/.nav +5 -1
- data/rspec-core/upstream/features/README.md +2 -2
- data/rspec-core/upstream/features/clear_examples.feature +106 -0
- data/rspec-core/upstream/features/command_line/bisect.feature +178 -0
- data/rspec-core/upstream/features/command_line/example_matches_name_option.feature +131 -0
- data/rspec-core/upstream/features/command_line/example_name_option.feature +2 -0
- data/rspec-core/upstream/features/command_line/fail_fast.feature +21 -4
- data/rspec-core/upstream/features/command_line/init.feature +2 -2
- data/rspec-core/upstream/features/command_line/line_number_appended_to_path.feature +2 -2
- data/rspec-core/upstream/features/command_line/only_failures.feature +113 -0
- data/rspec-core/upstream/features/command_line/order.md +8 -1
- data/rspec-core/upstream/features/command_line/pattern_option.feature +6 -3
- data/rspec-core/upstream/features/command_line/rake_task.feature +3 -3
- data/rspec-core/upstream/features/command_line/randomization.feature +5 -2
- data/rspec-core/upstream/features/command_line/ruby.feature +6 -2
- data/rspec-core/upstream/features/command_line/tag.feature +13 -11
- data/rspec-core/upstream/features/command_line/warnings_option.feature +20 -3
- data/rspec-core/upstream/features/configuration/backtrace_exclusion_patterns.feature +45 -29
- data/rspec-core/upstream/features/configuration/color.feature +22 -0
- data/rspec-core/upstream/features/configuration/custom_settings.feature +9 -13
- data/rspec-core/upstream/features/configuration/default_path.feature +1 -1
- data/rspec-core/upstream/features/configuration/enable_global_dsl.feature +15 -1
- data/rspec-core/upstream/features/configuration/error_exit_code.feature +52 -0
- data/rspec-core/upstream/features/configuration/fail_fast.feature +42 -12
- data/rspec-core/upstream/features/configuration/fail_if_no_examples.feature +31 -0
- data/rspec-core/upstream/features/configuration/failure_exit_code.feature +26 -0
- data/rspec-core/upstream/features/configuration/overriding_global_ordering.feature +1 -1
- data/rspec-core/upstream/features/configuration/pattern.feature +1 -1
- data/rspec-core/upstream/features/configuration/profile.feature +25 -0
- data/rspec-core/upstream/features/configuration/read_options_from_file.feature +25 -19
- data/rspec-core/upstream/features/configuration/run_all_when_everything_filtered.feature +4 -0
- data/rspec-core/upstream/features/core_standalone.feature +2 -0
- data/rspec-core/upstream/features/example_groups/basic_structure.feature +1 -0
- data/rspec-core/upstream/features/example_groups/shared_context.feature +55 -5
- data/rspec-core/upstream/features/example_groups/shared_examples.feature +59 -15
- data/rspec-core/upstream/features/expectation_framework_integration/aggregating_failures.feature +602 -0
- data/rspec-core/upstream/features/expectation_framework_integration/configure_expectation_framework.feature +13 -5
- data/rspec-core/upstream/features/filtering/filter_run_when_matching.feature +75 -0
- data/rspec-core/upstream/features/formatters/configurable_colors.feature +23 -4
- data/rspec-core/upstream/features/helper_methods/let.feature +3 -0
- data/rspec-core/upstream/features/helper_methods/modules.feature +6 -0
- data/rspec-core/upstream/features/hooks/around_hooks.feature +36 -6
- data/rspec-core/upstream/features/hooks/before_and_after_hooks.feature +47 -5
- data/rspec-core/upstream/features/hooks/filtering.feature +199 -4
- data/rspec-core/upstream/features/hooks/when_first_matching_example_defined.feature +70 -0
- data/rspec-core/upstream/features/metadata/current_scope.feature +87 -0
- data/rspec-core/upstream/features/metadata/described_class.feature +12 -5
- data/rspec-core/upstream/features/metadata/user_defined.feature +3 -3
- data/rspec-core/upstream/features/mock_framework_integration/use_any_framework.feature +1 -1
- data/rspec-core/upstream/features/mock_framework_integration/use_flexmock.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_mocha.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_rr.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_rspec.feature +6 -6
- data/rspec-core/upstream/features/pending_and_skipped_examples/pending_examples.feature +8 -7
- data/rspec-core/upstream/features/pending_and_skipped_examples/skipped_examples.feature +49 -22
- data/rspec-core/upstream/features/step_definitions/additional_cli_steps.rb +142 -12
- data/rspec-core/upstream/features/step_definitions/core_standalone_steps.rb +6 -2
- data/rspec-core/upstream/features/subject/implicit_subject.feature +3 -2
- data/rspec-core/upstream/features/subject/one_liner_syntax.feature +9 -5
- data/rspec-core/upstream/features/support/diff_lcs_versions.rb +17 -0
- data/rspec-core/upstream/features/support/env.rb +20 -7
- data/rspec-core/upstream/features/support/jruby.rb +8 -0
- data/rspec-core/upstream/features/support/require_expect_syntax_in_aruba_specs.rb +6 -3
- data/rspec-core/upstream/features/support/rubinius.rb +5 -1
- data/rspec-core/upstream/features/support/ruby_27_support.rb +7 -0
- data/rspec-core/upstream/features/support/send_sigint_during_bisect.rb +21 -0
- data/rspec-core/upstream/lib/rspec/autorun.rb +1 -0
- data/rspec-core/upstream/lib/rspec/core/backtrace_formatter.rb +3 -4
- data/rspec-core/upstream/lib/rspec/core/bisect/coordinator.rb +62 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/example_minimizer.rb +173 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/fork_runner.rb +138 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/server.rb +61 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/shell_command.rb +126 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/shell_runner.rb +73 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/utilities.rb +69 -0
- data/rspec-core/upstream/lib/rspec/core/configuration.rb +1157 -212
- data/rspec-core/upstream/lib/rspec/core/configuration_options.rb +82 -22
- data/rspec-core/upstream/lib/rspec/core/did_you_mean.rb +46 -0
- data/rspec-core/upstream/lib/rspec/core/drb.rb +10 -1
- data/rspec-core/upstream/lib/rspec/core/dsl.rb +10 -5
- data/rspec-core/upstream/lib/rspec/core/example.rb +271 -107
- data/rspec-core/upstream/lib/rspec/core/example_group.rb +426 -127
- data/rspec-core/upstream/lib/rspec/core/example_status_persister.rb +235 -0
- data/rspec-core/upstream/lib/rspec/core/filter_manager.rb +76 -104
- data/rspec-core/upstream/lib/rspec/core/flat_map.rb +6 -4
- data/rspec-core/upstream/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/base_formatter.rb +7 -4
- data/rspec-core/upstream/lib/rspec/core/formatters/base_text_formatter.rb +15 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/console_codes.rb +28 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/deprecation_formatter.rb +14 -13
- data/rspec-core/upstream/lib/rspec/core/formatters/documentation_formatter.rb +47 -13
- data/rspec-core/upstream/lib/rspec/core/formatters/exception_presenter.rb +525 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/helpers.rb +40 -9
- data/rspec-core/upstream/lib/rspec/core/formatters/html_formatter.rb +20 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/html_printer.rb +27 -18
- data/rspec-core/upstream/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/json_formatter.rb +15 -7
- data/rspec-core/upstream/lib/rspec/core/formatters/profile_formatter.rb +10 -7
- data/rspec-core/upstream/lib/rspec/core/formatters/progress_formatter.rb +1 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/protocol.rb +62 -43
- data/rspec-core/upstream/lib/rspec/core/formatters/snippet_extractor.rb +115 -85
- data/rspec-core/upstream/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/rspec-core/upstream/lib/rspec/core/formatters.rb +71 -32
- data/rspec-core/upstream/lib/rspec/core/hooks.rb +303 -248
- data/rspec-core/upstream/lib/rspec/core/invocations.rb +87 -0
- data/rspec-core/upstream/lib/rspec/core/memoized_helpers.rb +155 -47
- data/rspec-core/upstream/lib/rspec/core/metadata.rb +102 -41
- data/rspec-core/upstream/lib/rspec/core/metadata_filter.rb +209 -49
- data/rspec-core/upstream/lib/rspec/core/minitest_assertions_adapter.rb +5 -2
- data/rspec-core/upstream/lib/rspec/core/mocking_adapters/flexmock.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/mocking_adapters/mocha.rb +8 -8
- data/rspec-core/upstream/lib/rspec/core/notifications.rb +180 -201
- data/rspec-core/upstream/lib/rspec/core/option_parser.rb +159 -58
- data/rspec-core/upstream/lib/rspec/core/ordering.rb +40 -26
- data/rspec-core/upstream/lib/rspec/core/output_wrapper.rb +29 -0
- data/rspec-core/upstream/lib/rspec/core/pending.rb +19 -25
- data/rspec-core/upstream/lib/rspec/core/profiler.rb +34 -0
- data/rspec-core/upstream/lib/rspec/core/project_initializer/.rspec +0 -1
- data/rspec-core/upstream/lib/rspec/core/project_initializer/spec/spec_helper.rb +31 -22
- data/rspec-core/upstream/lib/rspec/core/project_initializer.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/rake_task.rb +73 -72
- data/rspec-core/upstream/lib/rspec/core/reporter.rb +134 -18
- data/rspec-core/upstream/lib/rspec/core/ruby_project.rb +13 -5
- data/rspec-core/upstream/lib/rspec/core/runner.rb +99 -45
- data/rspec-core/upstream/lib/rspec/core/sandbox.rb +37 -0
- data/rspec-core/upstream/lib/rspec/core/set.rb +54 -0
- data/rspec-core/upstream/lib/rspec/core/shared_example_group.rb +126 -37
- data/rspec-core/upstream/lib/rspec/core/shell_escape.rb +49 -0
- data/rspec-core/upstream/lib/rspec/core/test_unit_assertions_adapter.rb +3 -3
- data/rspec-core/upstream/lib/rspec/core/version.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/warnings.rb +2 -2
- data/rspec-core/upstream/lib/rspec/core/world.rb +164 -60
- data/rspec-core/upstream/lib/rspec/core.rb +64 -21
- data/rspec-core/upstream/maintenance-branch +1 -1
- data/rspec-core/upstream/rspec-core.gemspec +16 -11
- data/rspec-core/upstream/script/ci_functions.sh +73 -0
- data/rspec-core/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-core/upstream/script/cucumber.sh +8 -0
- data/rspec-core/upstream/script/custom_build_functions.sh +22 -0
- data/rspec-core/upstream/script/functions.sh +125 -89
- data/rspec-core/upstream/script/legacy_setup.sh +20 -0
- data/rspec-core/upstream/script/predicate_functions.sh +162 -0
- data/rspec-core/upstream/script/rspec_with_simplecov +6 -6
- data/rspec-core/upstream/script/run_build +14 -9
- data/rspec-core/upstream/script/run_rubocop +14 -0
- data/rspec-core/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/rspec-expectations/upstream/.document +1 -1
- data/rspec-expectations/upstream/.github/FUNDING.yml +5 -0
- data/rspec-expectations/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-expectations/upstream/.gitignore +2 -0
- data/rspec-expectations/upstream/.rubocop.yml +126 -2
- data/rspec-expectations/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-expectations/upstream/.rubocop_todo.yml +335 -0
- data/rspec-expectations/upstream/.yardopts +1 -1
- data/rspec-expectations/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-expectations/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-expectations/upstream/CONTRIBUTING.md +86 -0
- data/rspec-expectations/upstream/Changelog.md +454 -4
- data/rspec-expectations/upstream/DEV-README.md +3 -3
- data/rspec-expectations/upstream/DEVELOPMENT.md +131 -0
- data/rspec-expectations/upstream/Gemfile +77 -9
- data/rspec-expectations/upstream/ISSUE_TEMPLATE.md +24 -0
- data/{rspec-mocks/upstream/License.txt → rspec-expectations/upstream/LICENSE.md} +5 -4
- data/rspec-expectations/upstream/README.md +73 -31
- data/rspec-expectations/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-expectations/upstream/Rakefile +13 -10
- data/rspec-expectations/upstream/Should.md +13 -5
- data/rspec-expectations/upstream/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +1 -2
- data/rspec-expectations/upstream/benchmarks/caller_vs_raise_for_backtrace.rb +77 -0
- data/rspec-expectations/upstream/benchmarks/count_vs_select_size.rb +68 -0
- data/rspec-expectations/upstream/benchmarks/default_messages_as_methods_v_blocks.rb +1 -1
- data/rspec-expectations/upstream/benchmarks/gsub_vs_tr_single_character.rb +28 -0
- data/rspec-expectations/upstream/benchmarks/include_matcher.rb +249 -0
- data/rspec-expectations/upstream/benchmarks/include_v_superclass.rb +0 -1
- data/rspec-expectations/upstream/benchmarks/match_array/failing_with_duplicate_items.rb +1 -1
- data/rspec-expectations/upstream/benchmarks/output_stringio_vs_tempfile.rb +31 -0
- data/rspec-expectations/upstream/benchmarks/set_vs_array_include.rb +1 -3
- data/rspec-expectations/upstream/cucumber.yml +9 -4
- data/rspec-expectations/upstream/features/.nav +1 -0
- data/rspec-expectations/upstream/features/aggregating_failures.feature +56 -0
- data/rspec-expectations/upstream/features/built_in_matchers/README.md +3 -3
- data/rspec-expectations/upstream/features/built_in_matchers/all.feature +3 -2
- data/rspec-expectations/upstream/features/built_in_matchers/be_within.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/change.feature +8 -6
- data/rspec-expectations/upstream/features/built_in_matchers/comparisons.feature +33 -1
- data/rspec-expectations/upstream/features/built_in_matchers/contain_exactly.feature +1 -0
- data/rspec-expectations/upstream/features/built_in_matchers/cover.feature +3 -3
- data/rspec-expectations/upstream/features/built_in_matchers/exist.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/have_attributes.feature +1 -2
- data/rspec-expectations/upstream/features/built_in_matchers/include.feature +74 -17
- data/rspec-expectations/upstream/features/built_in_matchers/match.feature +2 -2
- data/rspec-expectations/upstream/features/built_in_matchers/output.feature +67 -4
- data/rspec-expectations/upstream/features/built_in_matchers/predicates.feature +56 -19
- data/rspec-expectations/upstream/features/built_in_matchers/raise_error.feature +16 -2
- data/rspec-expectations/upstream/features/built_in_matchers/respond_to.feature +191 -3
- data/rspec-expectations/upstream/features/built_in_matchers/satisfy.feature +17 -8
- data/rspec-expectations/upstream/features/built_in_matchers/throw_symbol.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/types.feature +34 -34
- data/rspec-expectations/upstream/features/built_in_matchers/yield.feature +2 -2
- data/rspec-expectations/upstream/features/composing_matchers.feature +4 -4
- data/rspec-expectations/upstream/features/custom_matchers/define_block_matcher.feature +78 -0
- data/rspec-expectations/upstream/features/custom_matchers/define_diffable_matcher.feature +115 -3
- data/rspec-expectations/upstream/features/custom_matchers/define_matcher.feature +173 -21
- data/rspec-expectations/upstream/features/custom_matchers/define_matcher_with_fluent_interface.feature +21 -2
- data/rspec-expectations/upstream/features/define_negated_matcher.feature +2 -1
- data/rspec-expectations/upstream/features/diffing.feature +29 -1
- data/rspec-expectations/upstream/features/implicit_docstrings.feature +8 -8
- data/rspec-expectations/upstream/features/step_definitions/additional_cli_steps.rb +11 -7
- data/rspec-expectations/upstream/features/support/diff_lcs_versions.rb +25 -0
- data/rspec-expectations/upstream/features/support/disallow_certain_apis.rb +3 -3
- data/rspec-expectations/upstream/features/support/env.rb +11 -11
- data/rspec-expectations/upstream/features/support/rubinius.rb +1 -1
- data/rspec-expectations/upstream/features/support/ruby_features.rb +39 -0
- data/rspec-expectations/upstream/features/syntax_configuration.feature +9 -9
- data/rspec-expectations/upstream/features/test_frameworks/minitest.feature +69 -2
- data/rspec-expectations/upstream/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/rspec-expectations/upstream/lib/rspec/expectations/configuration.rb +84 -1
- data/rspec-expectations/upstream/lib/rspec/expectations/expectation_target.rb +82 -38
- data/rspec-expectations/upstream/lib/rspec/expectations/fail_with.rb +11 -6
- data/rspec-expectations/upstream/lib/rspec/expectations/failure_aggregator.rb +212 -0
- data/rspec-expectations/upstream/lib/rspec/expectations/handler.rb +27 -12
- data/rspec-expectations/upstream/lib/rspec/expectations/minitest_integration.rb +43 -2
- data/rspec-expectations/upstream/lib/rspec/expectations/syntax.rb +5 -5
- data/rspec-expectations/upstream/lib/rspec/expectations/version.rb +1 -1
- data/rspec-expectations/upstream/lib/rspec/expectations.rb +15 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/all.rb +1 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/base_matcher.rb +77 -11
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be.rb +28 -114
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_between.rb +1 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_instance_of.rb +5 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_kind_of.rb +5 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_within.rb +4 -4
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/change.rb +168 -55
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/compound.rb +61 -29
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/contain_exactly.rb +73 -12
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/eq.rb +3 -38
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/eql.rb +2 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/equal.rb +3 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/exist.rb +7 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/has.rb +90 -24
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/have_attributes.rb +37 -7
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/include.rb +124 -23
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/match.rb +79 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/operators.rb +14 -5
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/output.rb +56 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/raise_error.rb +126 -29
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/respond_to.rb +118 -9
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/satisfy.rb +28 -7
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/{start_and_end_with.rb → start_or_end_with.rb} +20 -8
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/throw_symbol.rb +11 -5
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/yield.rb +110 -155
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in.rb +4 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/composable.rb +23 -35
- data/rspec-expectations/upstream/lib/rspec/matchers/dsl.rb +179 -26
- data/rspec-expectations/upstream/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/generated_descriptions.rb +1 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/matcher_delegator.rb +2 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/matcher_protocol.rb +72 -66
- data/rspec-expectations/upstream/lib/rspec/matchers.rb +227 -150
- data/rspec-expectations/upstream/maintenance-branch +1 -1
- data/rspec-expectations/upstream/rspec-expectations.gemspec +13 -8
- data/rspec-expectations/upstream/script/ci_functions.sh +73 -0
- data/rspec-expectations/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-expectations/upstream/script/cucumber.sh +8 -0
- data/rspec-expectations/upstream/script/functions.sh +125 -89
- data/rspec-expectations/upstream/script/legacy_setup.sh +20 -0
- data/rspec-expectations/upstream/script/predicate_functions.sh +162 -0
- data/rspec-expectations/upstream/script/run_build +14 -9
- data/rspec-expectations/upstream/script/run_rubocop +14 -0
- data/rspec-expectations/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/rspec-mocks/upstream/.document +1 -1
- data/rspec-mocks/upstream/.github/FUNDING.yml +5 -0
- data/rspec-mocks/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-mocks/upstream/.gitignore +2 -0
- data/rspec-mocks/upstream/.rubocop.yml +28 -9
- data/rspec-mocks/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-mocks/upstream/.rubocop_todo.yml +573 -0
- data/rspec-mocks/upstream/.yardopts +1 -1
- data/rspec-mocks/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-mocks/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-mocks/upstream/CONTRIBUTING.md +86 -0
- data/rspec-mocks/upstream/Changelog.md +398 -3
- data/rspec-mocks/upstream/DEV-README.md +3 -3
- data/rspec-mocks/upstream/DEVELOPMENT.md +131 -0
- data/rspec-mocks/upstream/Gemfile +77 -10
- data/rspec-mocks/upstream/ISSUE_TEMPLATE.md +24 -0
- data/{rspec-expectations/upstream/License.txt → rspec-mocks/upstream/LICENSE.md} +5 -4
- data/rspec-mocks/upstream/README.md +83 -17
- data/rspec-mocks/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-mocks/upstream/Rakefile +3 -3
- data/rspec-mocks/upstream/benchmarks/accessing_configuration_via_method_vs_cache.rb +52 -0
- data/rspec-mocks/upstream/benchmarks/allocations/1_object_1000_mocks.rb +76 -0
- data/rspec-mocks/upstream/benchmarks/allocations/helper.rb +17 -0
- data/rspec-mocks/upstream/benchmarks/each_value_v_values_each.rb +4 -5
- data/rspec-mocks/upstream/benchmarks/find_original_method_early.rb +1 -1
- data/rspec-mocks/upstream/benchmarks/method_defined_at_any_visibility.rb +3 -3
- data/rspec-mocks/upstream/benchmarks/thread_safety.rb +1 -1
- data/rspec-mocks/upstream/benchmarks/transfer_nested_constants.rb +1 -1
- data/rspec-mocks/upstream/cucumber.yml +8 -1
- data/rspec-mocks/upstream/features/.nav +2 -0
- data/rspec-mocks/upstream/features/basics/allowing_messages.feature +1 -1
- data/rspec-mocks/upstream/features/basics/expecting_messages.feature +40 -1
- data/rspec-mocks/upstream/features/basics/null_object_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/basics/partial_test_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/basics/scope.feature +5 -5
- data/rspec-mocks/upstream/features/basics/spies.feature +17 -30
- data/rspec-mocks/upstream/features/basics/test_doubles.feature +4 -4
- data/rspec-mocks/upstream/features/configuring_responses/README.md +2 -0
- data/rspec-mocks/upstream/features/configuring_responses/calling_the_original_implementation.feature +2 -2
- data/rspec-mocks/upstream/features/configuring_responses/mixed_responses.feature +25 -0
- data/rspec-mocks/upstream/features/configuring_responses/raising_an_error.feature +1 -0
- data/rspec-mocks/upstream/features/configuring_responses/wrapping_the_original_implementation.feature +3 -3
- data/rspec-mocks/upstream/features/configuring_responses/yielding.feature +2 -2
- data/rspec-mocks/upstream/features/mutating_constants/README.md +1 -1
- data/rspec-mocks/upstream/features/old_syntax/any_instance.feature +3 -3
- data/rspec-mocks/upstream/features/old_syntax/should_receive.feature +3 -1
- data/rspec-mocks/upstream/features/outside_rspec/any_test_framework.feature +116 -0
- data/rspec-mocks/upstream/features/outside_rspec/minitest.feature +202 -46
- data/rspec-mocks/upstream/features/outside_rspec/standalone.feature +5 -5
- data/rspec-mocks/upstream/features/setting_constraints/matching_arguments.feature +54 -27
- data/rspec-mocks/upstream/features/setting_constraints/message_order.feature +2 -2
- data/rspec-mocks/upstream/features/setting_constraints/receive_counts.feature +18 -0
- data/rspec-mocks/upstream/features/step_definitions/additional_cli_steps.rb +4 -4
- data/rspec-mocks/upstream/features/support/disallow_certain_apis.rb +3 -2
- data/rspec-mocks/upstream/features/support/env.rb +12 -12
- data/rspec-mocks/upstream/features/support/rubinius.rb +1 -1
- data/rspec-mocks/upstream/features/verifying_doubles/README.md +2 -2
- data/rspec-mocks/upstream/features/verifying_doubles/class_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/verifying_doubles/dynamic_classes.feature +41 -5
- data/rspec-mocks/upstream/features/verifying_doubles/instance_doubles.feature +5 -3
- data/rspec-mocks/upstream/features/working_with_legacy_code/any_instance.feature +8 -6
- data/rspec-mocks/upstream/features/working_with_legacy_code/message_chains.feature +16 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/chain.rb +3 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/expect_chain_chain.rb +1 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/expectation_chain.rb +7 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/message_chains.rb +1 -3
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/recorder.rb +42 -14
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/stub_chain.rb +13 -7
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/stub_chain_chain.rb +1 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance.rb +1 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/argument_list_matcher.rb +53 -10
- data/rspec-mocks/upstream/lib/rspec/mocks/argument_matchers.rb +66 -26
- data/rspec-mocks/upstream/lib/rspec/mocks/configuration.rb +59 -4
- data/rspec-mocks/upstream/lib/rspec/mocks/error_generator.rb +235 -108
- data/rspec-mocks/upstream/lib/rspec/mocks/example_methods.rb +82 -27
- data/rspec-mocks/upstream/lib/rspec/mocks/instance_method_stasher.rb +12 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/have_received.rb +30 -17
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive.rb +28 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive_message_chain.rb +17 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive_messages.rb +6 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/message_chain.rb +0 -4
- data/rspec-mocks/upstream/lib/rspec/mocks/message_expectation.rb +430 -304
- data/rspec-mocks/upstream/lib/rspec/mocks/method_double.rb +46 -15
- data/rspec-mocks/upstream/lib/rspec/mocks/method_reference.rb +78 -19
- data/rspec-mocks/upstream/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/mutate_const.rb +23 -8
- data/rspec-mocks/upstream/lib/rspec/mocks/object_reference.rb +81 -23
- data/rspec-mocks/upstream/lib/rspec/mocks/proxy.rb +135 -41
- data/rspec-mocks/upstream/lib/rspec/mocks/space.rb +33 -16
- data/rspec-mocks/upstream/lib/rspec/mocks/standalone.rb +1 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/syntax.rb +18 -22
- data/rspec-mocks/upstream/lib/rspec/mocks/targets.rb +51 -24
- data/rspec-mocks/upstream/lib/rspec/mocks/test_double.rb +42 -6
- data/rspec-mocks/upstream/lib/rspec/mocks/verifying_double.rb +15 -21
- data/rspec-mocks/upstream/lib/rspec/mocks/{verifying_message_expecation.rb → verifying_message_expectation.rb} +11 -18
- data/rspec-mocks/upstream/lib/rspec/mocks/verifying_proxy.rb +60 -11
- data/rspec-mocks/upstream/lib/rspec/mocks/version.rb +1 -1
- data/rspec-mocks/upstream/lib/rspec/mocks.rb +8 -1
- data/rspec-mocks/upstream/maintenance-branch +1 -1
- data/rspec-mocks/upstream/rspec-mocks.gemspec +14 -6
- data/rspec-mocks/upstream/script/ci_functions.sh +73 -0
- data/rspec-mocks/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-mocks/upstream/script/cucumber.sh +8 -0
- data/rspec-mocks/upstream/script/functions.sh +125 -89
- data/rspec-mocks/upstream/script/legacy_setup.sh +20 -0
- data/rspec-mocks/upstream/script/predicate_functions.sh +162 -0
- data/rspec-mocks/upstream/script/run_build +14 -9
- data/rspec-mocks/upstream/script/run_rubocop +14 -0
- data/rspec-mocks/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/{stubs/diff/lcs/assertions.rb → rspec-mocks/upstream/tmp/.gitkeep} +0 -0
- data/rspec-support/upstream/.github/FUNDING.yml +5 -0
- data/rspec-support/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-support/upstream/.gitignore +4 -0
- data/rspec-support/upstream/.rubocop.yml +33 -1
- data/rspec-support/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-support/upstream/.rubocop_todo.yml +424 -0
- data/rspec-support/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-support/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-support/upstream/CONTRIBUTING.md +86 -0
- data/rspec-support/upstream/Changelog.md +287 -0
- data/rspec-support/upstream/DEVELOPMENT.md +131 -0
- data/rspec-support/upstream/Gemfile +52 -4
- data/rspec-support/upstream/ISSUE_TEMPLATE.md +24 -0
- data/rspec-support/upstream/{LICENSE.txt → LICENSE.md} +3 -2
- data/rspec-support/upstream/README.md +29 -6
- data/rspec-support/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-support/upstream/Rakefile +9 -5
- data/rspec-support/upstream/benchmarks/caller_vs_caller_locations.rb +19 -0
- data/rspec-support/upstream/benchmarks/caller_vs_caller_locations_vs_raise.rb +153 -0
- data/rspec-support/upstream/benchmarks/class_exec_vs_klass_exec.rb +43 -0
- data/rspec-support/upstream/benchmarks/map_hash.rb +70 -0
- data/rspec-support/upstream/benchmarks/ripper.rb +44 -0
- data/rspec-support/upstream/benchmarks/skip_frames_for_caller_filter.rb +27 -0
- data/rspec-support/upstream/lib/rspec/support/caller_filter.rb +35 -15
- data/rspec-support/upstream/lib/rspec/support/comparable_version.rb +46 -0
- data/rspec-support/upstream/lib/rspec/support/differ.rb +35 -34
- data/rspec-support/upstream/lib/rspec/support/directory_maker.rb +3 -1
- data/rspec-support/upstream/lib/rspec/support/encoded_string.rb +103 -11
- data/rspec-support/upstream/lib/rspec/support/fuzzy_matcher.rb +5 -5
- data/rspec-support/upstream/lib/rspec/support/matcher_definition.rb +11 -0
- data/rspec-support/upstream/lib/rspec/support/method_signature_verifier.rb +192 -26
- data/rspec-support/upstream/lib/rspec/support/mutex.rb +73 -0
- data/rspec-support/upstream/lib/rspec/support/object_formatter.rb +275 -0
- data/rspec-support/upstream/lib/rspec/support/recursive_const_methods.rb +1 -1
- data/rspec-support/upstream/lib/rspec/support/reentrant_mutex.rb +78 -0
- data/rspec-support/upstream/lib/rspec/support/ruby_features.rb +168 -15
- data/rspec-support/upstream/lib/rspec/support/source/location.rb +21 -0
- data/rspec-support/upstream/lib/rspec/support/source/node.rb +110 -0
- data/rspec-support/upstream/lib/rspec/support/source/token.rb +94 -0
- data/rspec-support/upstream/lib/rspec/support/source.rb +85 -0
- data/rspec-support/upstream/lib/rspec/support/spec/deprecation_helpers.rb +17 -29
- data/rspec-support/upstream/lib/rspec/support/spec/diff_helpers.rb +31 -0
- data/rspec-support/upstream/lib/rspec/support/spec/in_sub_process.rb +41 -17
- data/rspec-support/upstream/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/rspec-support/upstream/lib/rspec/support/spec/shell_out.rb +39 -3
- data/rspec-support/upstream/lib/rspec/support/spec/stderr_splitter.rb +27 -4
- data/rspec-support/upstream/lib/rspec/support/spec/string_matcher.rb +45 -0
- data/rspec-support/upstream/lib/rspec/support/spec/with_isolated_directory.rb +5 -1
- data/rspec-support/upstream/lib/rspec/support/spec.rb +17 -7
- data/rspec-support/upstream/lib/rspec/support/version.rb +1 -1
- data/rspec-support/upstream/lib/rspec/support/warnings.rb +3 -3
- data/rspec-support/upstream/lib/rspec/support/with_keywords_when_needed.rb +33 -0
- data/rspec-support/upstream/lib/rspec/support.rb +81 -3
- data/rspec-support/upstream/maintenance-branch +1 -1
- data/rspec-support/upstream/rspec-support.gemspec +10 -4
- data/rspec-support/upstream/script/ci_functions.sh +73 -0
- data/rspec-support/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-support/upstream/script/cucumber.sh +8 -0
- data/rspec-support/upstream/script/functions.sh +125 -89
- data/rspec-support/upstream/script/legacy_setup.sh +20 -0
- data/rspec-support/upstream/script/predicate_functions.sh +162 -0
- data/rspec-support/upstream/script/run_build +14 -9
- data/rspec-support/upstream/script/run_rubocop +14 -0
- data/rspec-support/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/stubs/{diff/lcs/block.rb → coderay.rb} +0 -0
- data/stubs/{diff/lcs/callbacks.rb → drb/acl.rb} +0 -0
- data/stubs/{diff/lcs/change.rb → erb/version.rb} +0 -0
- data/stubs/{diff/lcs/hunk.rb → open3.rb} +0 -0
- data/stubs/{diff/lcs/internals.rb → psych.rb} +0 -0
- data/stubs/{optparse.rb → ripper.rb} +0 -0
- data/stubs/{prettyprint.rb → thread_order.rb} +0 -0
- data/tasks/testing.rake +7 -3
- metadata +270 -61
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/opal_0.11.gemfile +0 -14
- data/gemfiles/opal_master.gemfile +0 -14
- data/lib-opal/opal/rspec/async/core_ext.rb +0 -23
- data/lib-opal/opal/rspec/async/legacy.rb +0 -49
- data/lib-opal/opal/rspec/fixes/rspec/caller_filter.rb +0 -6
- data/lib-opal/opal/rspec/fixes/rspec/core/example.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +0 -11
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/core/warnings.rb +0 -27
- data/lib-opal/opal/rspec/fixes/rspec/expectations/fail_with.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/all.rb +0 -10
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/matchers/pretty.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/mocks/space.rb +0 -41
- data/lib-opal/opal/rspec/fixes/rspec/mocks/test_double.rb +0 -39
- data/lib-opal/opal/rspec/fixes/rspec/mocks/verifying_double.rb +0 -29
- data/lib-opal/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +0 -7
- data/lib-opal/opal/rspec/fixes/rspec/support/spec/stderr_splitter.rb +0 -13
- data/lib-opal/opal/rspec/fixes/rspec/support/spec.rb +0 -1
- data/lib-opal/opal/rspec/fixes/rspec/support/warnings.rb +0 -16
- data/rspec/upstream/License.txt +0 -24
- data/rspec-core/upstream/.travis.yml +0 -35
- data/rspec-core/upstream/benchmarks/sort_by_v_shuffle.rb +0 -83
- data/rspec-core/upstream/features/Upgrade.md +0 -352
- data/rspec-core/upstream/lib/rspec/core/backport_random.rb +0 -336
- data/rspec-expectations/upstream/.travis.yml +0 -35
- data/rspec-expectations/upstream/lib/rspec/matchers/pretty.rb +0 -77
- data/rspec-mocks/upstream/.travis.yml +0 -35
- data/rspec-support/upstream/.travis.yml +0 -35
- data/rspec-support/upstream/lib/rspec/support/os.rb +0 -18
- data/rspec-support/upstream/lib/rspec/support/spec/prevent_load_time_warnings.rb +0 -44
- data/rspec-support/upstream/lib/rspec/support/version_checker.rb +0 -53
- data/stubs/shellwords.rb +0 -0
- data/stubs/uri.rb +0 -0
- data/vendor/spec_runner.js +0 -64
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
|
2
2
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
|
3
|
-
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
|
4
|
-
# file to always be loaded, without a need to explicitly require it in any
|
|
3
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
|
4
|
+
# this file to always be loaded, without a need to explicitly require it in any
|
|
5
|
+
# files.
|
|
5
6
|
#
|
|
6
7
|
# Given that it is always loaded, you are encouraged to keep this file as
|
|
7
8
|
# light-weight as possible. Requiring heavyweight dependencies from this file
|
|
8
9
|
# will add to the boot time of your test suite on EVERY test run, even for an
|
|
9
10
|
# individual file that may not need all of that loaded. Instead, consider making
|
|
10
11
|
# a separate helper file that requires the additional dependencies and performs
|
|
11
|
-
# the additional setup, and require it from the spec files that actually need
|
|
12
|
+
# the additional setup, and require it from the spec files that actually need
|
|
13
|
+
# it.
|
|
12
14
|
#
|
|
13
|
-
#
|
|
14
|
-
# users commonly want.
|
|
15
|
-
#
|
|
16
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
|
15
|
+
# See https://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
|
17
16
|
RSpec.configure do |config|
|
|
18
17
|
# rspec-expectations config goes here. You can use an alternate
|
|
19
18
|
# assertion/expectation library such as wrong or the stdlib/minitest
|
|
@@ -22,10 +21,10 @@ RSpec.configure do |config|
|
|
|
22
21
|
# This option will default to `true` in RSpec 4. It makes the `description`
|
|
23
22
|
# and `failure_message` of custom matchers include text for helper methods
|
|
24
23
|
# defined using `chain`, e.g.:
|
|
25
|
-
#
|
|
26
|
-
#
|
|
24
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
|
25
|
+
# # => "be bigger than 2 and smaller than 4"
|
|
27
26
|
# ...rather than:
|
|
28
|
-
#
|
|
27
|
+
# # => "be bigger than 2"
|
|
29
28
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
30
29
|
end
|
|
31
30
|
|
|
@@ -38,21 +37,31 @@ RSpec.configure do |config|
|
|
|
38
37
|
mocks.verify_partial_doubles = true
|
|
39
38
|
end
|
|
40
39
|
|
|
40
|
+
# This option will default to `:apply_to_host_groups` in RSpec 4 (and will
|
|
41
|
+
# have no way to turn it off -- the option exists only for backwards
|
|
42
|
+
# compatibility in RSpec 3). It causes shared context metadata to be
|
|
43
|
+
# inherited by the metadata hash of host groups and examples, rather than
|
|
44
|
+
# triggering implicit auto-inclusion in groups with matching metadata.
|
|
45
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
|
46
|
+
|
|
41
47
|
# The settings below are suggested to provide a good initial experience
|
|
42
48
|
# with RSpec, but feel free to customize to your heart's content.
|
|
43
49
|
=begin
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
#
|
|
48
|
-
|
|
49
|
-
config.
|
|
50
|
+
# This allows you to limit a spec run to individual examples or groups
|
|
51
|
+
# you care about by tagging them with `:focus` metadata. When nothing
|
|
52
|
+
# is tagged with `:focus`, all examples get run. RSpec also provides
|
|
53
|
+
# aliases for `it`, `describe`, and `context` that include `:focus`
|
|
54
|
+
# metadata: `fit`, `fdescribe` and `fcontext`, respectively.
|
|
55
|
+
config.filter_run_when_matching :focus
|
|
56
|
+
|
|
57
|
+
# Allows RSpec to persist some state between runs in order to support
|
|
58
|
+
# the `--only-failures` and `--next-failure` CLI options. We recommend
|
|
59
|
+
# you configure your source control system to ignore this file.
|
|
60
|
+
config.example_status_persistence_file_path = "spec/examples.txt"
|
|
50
61
|
|
|
51
|
-
# Limits the available syntax to the non-monkey patched syntax that is
|
|
52
|
-
# For more details, see:
|
|
53
|
-
#
|
|
54
|
-
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
|
55
|
-
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
|
62
|
+
# Limits the available syntax to the non-monkey patched syntax that is
|
|
63
|
+
# recommended. For more details, see:
|
|
64
|
+
# https://relishapp.com/rspec/rspec-core/docs/configuration/zero-monkey-patching-mode
|
|
56
65
|
config.disable_monkey_patching!
|
|
57
66
|
|
|
58
67
|
# This setting enables warnings. It's recommended, but in some cases may
|
|
@@ -66,7 +75,7 @@ RSpec.configure do |config|
|
|
|
66
75
|
# Use the documentation formatter for detailed output,
|
|
67
76
|
# unless a formatter has already been configured
|
|
68
77
|
# (e.g. via a command-line flag).
|
|
69
|
-
config.default_formatter =
|
|
78
|
+
config.default_formatter = "doc"
|
|
70
79
|
end
|
|
71
80
|
|
|
72
81
|
# Print the 10 slowest examples and example groups at the
|
|
@@ -3,7 +3,7 @@ RSpec::Support.require_rspec_support "directory_maker"
|
|
|
3
3
|
module RSpec
|
|
4
4
|
module Core
|
|
5
5
|
# @private
|
|
6
|
-
# Generates conventional files for an
|
|
6
|
+
# Generates conventional files for an RSpec project.
|
|
7
7
|
class ProjectInitializer
|
|
8
8
|
attr_reader :destination, :stream, :template_path
|
|
9
9
|
|
|
@@ -1,71 +1,77 @@
|
|
|
1
1
|
require 'rake'
|
|
2
2
|
require 'rake/tasklib'
|
|
3
|
-
require '
|
|
3
|
+
require 'rspec/support'
|
|
4
|
+
|
|
5
|
+
RSpec::Support.require_rspec_support "ruby_features"
|
|
6
|
+
|
|
7
|
+
# :nocov:
|
|
8
|
+
unless RSpec::Support.respond_to?(:require_rspec_core)
|
|
9
|
+
RSpec::Support.define_optimized_require_for_rspec(:core) { |f| require_relative "../#{f}" }
|
|
10
|
+
end
|
|
11
|
+
# :nocov:
|
|
12
|
+
|
|
13
|
+
RSpec::Support.require_rspec_core "shell_escape"
|
|
4
14
|
|
|
5
15
|
module RSpec
|
|
6
16
|
module Core
|
|
7
|
-
#
|
|
17
|
+
# RSpec rake task
|
|
8
18
|
#
|
|
9
19
|
# @see Rakefile
|
|
10
20
|
class RakeTask < ::Rake::TaskLib
|
|
11
21
|
include ::Rake::DSL if defined?(::Rake::DSL)
|
|
22
|
+
include RSpec::Core::ShellEscape
|
|
12
23
|
|
|
13
|
-
# Default path to the
|
|
24
|
+
# Default path to the RSpec executable.
|
|
14
25
|
DEFAULT_RSPEC_PATH = File.expand_path('../../../../exe/rspec', __FILE__)
|
|
15
26
|
|
|
16
27
|
# Default pattern for spec files.
|
|
17
28
|
DEFAULT_PATTERN = 'spec/**{,/*/**}/*_spec.rb'
|
|
18
29
|
|
|
19
|
-
# Name of task.
|
|
20
|
-
#
|
|
21
|
-
# default:
|
|
22
|
-
# :spec
|
|
30
|
+
# Name of task. Defaults to `:spec`.
|
|
23
31
|
attr_accessor :name
|
|
24
32
|
|
|
25
33
|
# Files matching this pattern will be loaded.
|
|
26
|
-
#
|
|
27
|
-
# default:
|
|
28
|
-
# 'spec/**{,/*/**}/*_spec.rb'
|
|
34
|
+
# Defaults to `'spec/**{,/*/**}/*_spec.rb'`.
|
|
29
35
|
attr_accessor :pattern
|
|
30
36
|
|
|
31
37
|
# Files matching this pattern will be excluded.
|
|
32
|
-
#
|
|
33
|
-
# default:
|
|
34
|
-
# 'spec/**/*_spec.rb'
|
|
38
|
+
# Defaults to `nil`.
|
|
35
39
|
attr_accessor :exclude_pattern
|
|
36
40
|
|
|
37
|
-
# Whether or not to fail Rake when an error occurs (typically when
|
|
38
|
-
#
|
|
39
|
-
# default:
|
|
40
|
-
# true
|
|
41
|
+
# Whether or not to fail Rake when an error occurs (typically when
|
|
42
|
+
# examples fail). Defaults to `true`.
|
|
41
43
|
attr_accessor :fail_on_error
|
|
42
44
|
|
|
43
45
|
# A message to print to stderr when there are failures.
|
|
44
46
|
attr_accessor :failure_message
|
|
45
47
|
|
|
48
|
+
if RUBY_VERSION < "1.9.0" || Support::Ruby.jruby?
|
|
49
|
+
# Run RSpec with a clean (empty) environment is not supported
|
|
50
|
+
def with_clean_environment=(_value)
|
|
51
|
+
raise ArgumentError, "Running in a clean environment is not supported on Ruby versions before 1.9.0"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Run RSpec with a clean (empty) environment is not supported
|
|
55
|
+
def with_clean_environment
|
|
56
|
+
false
|
|
57
|
+
end
|
|
58
|
+
else
|
|
59
|
+
# Run RSpec with a clean (empty) environment.
|
|
60
|
+
attr_accessor :with_clean_environment
|
|
61
|
+
end
|
|
62
|
+
|
|
46
63
|
# Use verbose output. If this is set to true, the task will print the
|
|
47
|
-
# executed spec command to stdout.
|
|
48
|
-
#
|
|
49
|
-
# default:
|
|
50
|
-
# true
|
|
64
|
+
# executed spec command to stdout. Defaults to `true`.
|
|
51
65
|
attr_accessor :verbose
|
|
52
66
|
|
|
53
|
-
# Command line options to pass to ruby.
|
|
54
|
-
#
|
|
55
|
-
# default:
|
|
56
|
-
# nil
|
|
67
|
+
# Command line options to pass to ruby. Defaults to `nil`.
|
|
57
68
|
attr_accessor :ruby_opts
|
|
58
69
|
|
|
59
|
-
# Path to
|
|
60
|
-
#
|
|
61
|
-
# default:
|
|
62
|
-
# 'rspec'
|
|
70
|
+
# Path to RSpec. Defaults to the absolute path to the
|
|
71
|
+
# rspec binary from the loaded rspec-core gem.
|
|
63
72
|
attr_accessor :rspec_path
|
|
64
73
|
|
|
65
|
-
# Command line options to pass to
|
|
66
|
-
#
|
|
67
|
-
# default:
|
|
68
|
-
# nil
|
|
74
|
+
# Command line options to pass to RSpec. Defaults to `nil`.
|
|
69
75
|
attr_accessor :rspec_opts
|
|
70
76
|
|
|
71
77
|
def initialize(*args, &task_block)
|
|
@@ -83,25 +89,26 @@ module RSpec
|
|
|
83
89
|
# @private
|
|
84
90
|
def run_task(verbose)
|
|
85
91
|
command = spec_command
|
|
92
|
+
puts command if verbose
|
|
86
93
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
puts failure_message if failure_message
|
|
94
|
+
if with_clean_environment
|
|
95
|
+
return if system({}, command, :unsetenv_others => true)
|
|
96
|
+
else
|
|
97
|
+
return if system(command)
|
|
92
98
|
end
|
|
93
99
|
|
|
94
|
-
|
|
100
|
+
puts failure_message if failure_message
|
|
95
101
|
|
|
96
|
-
|
|
97
|
-
|
|
102
|
+
return unless fail_on_error
|
|
103
|
+
$stderr.puts "#{command} failed" if verbose
|
|
104
|
+
exit $?.exitstatus || 1
|
|
98
105
|
end
|
|
99
106
|
|
|
100
107
|
private
|
|
101
108
|
|
|
102
109
|
# @private
|
|
103
110
|
def define(args, &task_block)
|
|
104
|
-
desc "Run RSpec code examples" unless ::Rake.application.
|
|
111
|
+
desc "Run RSpec code examples" unless ::Rake.application.last_description
|
|
105
112
|
|
|
106
113
|
task name, *args do |_, task_args|
|
|
107
114
|
RakeFileUtils.__send__(:verbose, verbose) do
|
|
@@ -113,46 +120,40 @@ module RSpec
|
|
|
113
120
|
|
|
114
121
|
def file_inclusion_specification
|
|
115
122
|
if ENV['SPEC']
|
|
116
|
-
FileList[
|
|
123
|
+
FileList[ENV['SPEC']].sort
|
|
117
124
|
elsif String === pattern && !File.exist?(pattern)
|
|
125
|
+
return if [*rspec_opts].any? { |opt| opt =~ /--pattern/ }
|
|
118
126
|
"--pattern #{escape pattern}"
|
|
119
127
|
else
|
|
120
|
-
# Before RSpec 3.1, we used `FileList` to get the list of matched
|
|
121
|
-
# then pass that along to the `rspec` command. Starting
|
|
122
|
-
# pass along the pattern as-is to the `rspec`
|
|
128
|
+
# Before RSpec 3.1, we used `FileList` to get the list of matched
|
|
129
|
+
# files, and then pass that along to the `rspec` command. Starting
|
|
130
|
+
# with 3.1, we prefer to pass along the pattern as-is to the `rspec`
|
|
131
|
+
# command, for 3 reasons:
|
|
123
132
|
#
|
|
124
|
-
# * It's *much* less verbose to pass one `--pattern` option than a
|
|
125
|
-
#
|
|
126
|
-
# * It
|
|
127
|
-
#
|
|
128
|
-
#
|
|
133
|
+
# * It's *much* less verbose to pass one `--pattern` option than a
|
|
134
|
+
# long list of files.
|
|
135
|
+
# * It ensures `task.pattern` and `--pattern` have the same
|
|
136
|
+
# behavior.
|
|
137
|
+
# * It fixes a bug, where
|
|
138
|
+
# `task.pattern = pattern_that_matches_no_files` would run *all*
|
|
139
|
+
# files because it would cause no pattern or file args to get
|
|
140
|
+
# passed to `rspec`, which causes all files to get run.
|
|
129
141
|
#
|
|
130
|
-
# However, `FileList` is *far* more flexible than the `--pattern`
|
|
131
|
-
#
|
|
132
|
-
# as well as
|
|
142
|
+
# However, `FileList` is *far* more flexible than the `--pattern`
|
|
143
|
+
# option. Specifically, it supports individual files and directories,
|
|
144
|
+
# as well as arrays of files, directories and globs, as well as other
|
|
145
|
+
# `FileList` objects.
|
|
133
146
|
#
|
|
134
|
-
# For backwards compatibility, we have to fall back to using FileList
|
|
135
|
-
# a `pattern` option that will not work with
|
|
147
|
+
# For backwards compatibility, we have to fall back to using FileList
|
|
148
|
+
# if the user has passed a `pattern` option that will not work with
|
|
149
|
+
# `--pattern`.
|
|
136
150
|
#
|
|
137
|
-
# TODO: consider deprecating support for this and removing it in
|
|
151
|
+
# TODO: consider deprecating support for this and removing it in
|
|
152
|
+
# RSpec 4.
|
|
138
153
|
FileList[pattern].sort.map { |file| escape file }
|
|
139
154
|
end
|
|
140
155
|
end
|
|
141
156
|
|
|
142
|
-
# Manaully comparing because in 3.2 we have RSpec::Support::OS.windows?
|
|
143
|
-
# but in 3.1 we don't and requiring rspec/world would be weighty here.
|
|
144
|
-
if RbConfig::CONFIG['host_os'] =~ /cygwin|mswin|mingw|bccwin|wince|emx/
|
|
145
|
-
def escape(shell_command)
|
|
146
|
-
"'#{shell_command.gsub("'", "\'")}'"
|
|
147
|
-
end
|
|
148
|
-
else
|
|
149
|
-
require 'shellwords'
|
|
150
|
-
|
|
151
|
-
def escape(shell_command)
|
|
152
|
-
shell_command.shellescape
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
157
|
def file_exclusion_specification
|
|
157
158
|
" --exclude-pattern #{escape exclude_pattern}" if exclude_pattern
|
|
158
159
|
end
|
|
@@ -162,7 +163,7 @@ module RSpec
|
|
|
162
163
|
cmd_parts << RUBY
|
|
163
164
|
cmd_parts << ruby_opts
|
|
164
165
|
cmd_parts << rspec_load_path
|
|
165
|
-
cmd_parts << rspec_path
|
|
166
|
+
cmd_parts << escape(rspec_path)
|
|
166
167
|
cmd_parts << file_inclusion_specification
|
|
167
168
|
cmd_parts << file_exclusion_specification
|
|
168
169
|
cmd_parts << rspec_opts
|
|
@@ -2,6 +2,15 @@ module RSpec::Core
|
|
|
2
2
|
# A reporter will send notifications to listeners, usually formatters for the
|
|
3
3
|
# spec suite run.
|
|
4
4
|
class Reporter
|
|
5
|
+
# @private
|
|
6
|
+
RSPEC_NOTIFICATIONS = Set.new(
|
|
7
|
+
[
|
|
8
|
+
:close, :deprecation, :deprecation_summary, :dump_failures, :dump_pending,
|
|
9
|
+
:dump_profile, :dump_summary, :example_failed, :example_group_finished,
|
|
10
|
+
:example_group_started, :example_passed, :example_pending, :example_started,
|
|
11
|
+
:message, :seed, :start, :start_dump, :stop, :example_finished
|
|
12
|
+
])
|
|
13
|
+
|
|
5
14
|
def initialize(configuration)
|
|
6
15
|
@configuration = configuration
|
|
7
16
|
@listeners = Hash.new { |h, k| h[k] = Set.new }
|
|
@@ -9,16 +18,22 @@ module RSpec::Core
|
|
|
9
18
|
@failed_examples = []
|
|
10
19
|
@pending_examples = []
|
|
11
20
|
@duration = @start = @load_time = nil
|
|
21
|
+
@non_example_exception_count = 0
|
|
22
|
+
@setup_default = lambda {}
|
|
23
|
+
@setup = false
|
|
24
|
+
@profiler = nil
|
|
12
25
|
end
|
|
13
26
|
|
|
14
27
|
# @private
|
|
15
28
|
attr_reader :examples, :failed_examples, :pending_examples
|
|
16
29
|
|
|
17
|
-
# Registers a listener to a list of notifications. The reporter will send
|
|
18
|
-
# events to all registered listeners
|
|
30
|
+
# Registers a listener to a list of notifications. The reporter will send
|
|
31
|
+
# notification of events to all registered listeners.
|
|
19
32
|
#
|
|
20
|
-
# @param listener [Object] An obect that wishes to be notified of reporter
|
|
21
|
-
#
|
|
33
|
+
# @param listener [Object] An obect that wishes to be notified of reporter
|
|
34
|
+
# events
|
|
35
|
+
# @param notifications [Array] Array of symbols represents the events a
|
|
36
|
+
# listener wishes to subscribe too
|
|
22
37
|
def register_listener(listener, *notifications)
|
|
23
38
|
notifications.each do |notification|
|
|
24
39
|
@listeners[notification.to_sym] << listener
|
|
@@ -26,12 +41,18 @@ module RSpec::Core
|
|
|
26
41
|
true
|
|
27
42
|
end
|
|
28
43
|
|
|
44
|
+
# @private
|
|
45
|
+
def prepare_default(loader, output_stream, deprecation_stream)
|
|
46
|
+
@setup_default = lambda do
|
|
47
|
+
loader.setup_default output_stream, deprecation_stream
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
29
51
|
# @private
|
|
30
52
|
def registered_listeners(notification)
|
|
31
53
|
@listeners[notification].to_a
|
|
32
54
|
end
|
|
33
55
|
|
|
34
|
-
# @api
|
|
35
56
|
# @overload report(count, &block)
|
|
36
57
|
# @overload report(count, &block)
|
|
37
58
|
# @param expected_example_count [Integer] the number of examples being run
|
|
@@ -56,18 +77,42 @@ module RSpec::Core
|
|
|
56
77
|
end
|
|
57
78
|
end
|
|
58
79
|
|
|
80
|
+
# @param exit_code [Integer] the exit_code to be return by the reporter
|
|
81
|
+
#
|
|
82
|
+
# Reports a run that exited early without having run any examples.
|
|
83
|
+
#
|
|
84
|
+
def exit_early(exit_code)
|
|
85
|
+
report(0) { exit_code }
|
|
86
|
+
end
|
|
87
|
+
|
|
59
88
|
# @private
|
|
60
89
|
def start(expected_example_count, time=RSpec::Core::Time.now)
|
|
61
90
|
@start = time
|
|
62
91
|
@load_time = (@start - @configuration.start_time).to_f
|
|
92
|
+
notify :seed, Notifications::SeedNotification.new(@configuration.seed, seed_used?)
|
|
63
93
|
notify :start, Notifications::StartNotification.new(expected_example_count, @load_time)
|
|
64
94
|
end
|
|
65
95
|
|
|
66
|
-
# @
|
|
96
|
+
# @param message [#to_s] A message object to send to formatters
|
|
97
|
+
#
|
|
98
|
+
# Send a custom message to supporting formatters.
|
|
67
99
|
def message(message)
|
|
68
100
|
notify :message, Notifications::MessageNotification.new(message)
|
|
69
101
|
end
|
|
70
102
|
|
|
103
|
+
# @param event [Symbol] Name of the custom event to trigger on formatters
|
|
104
|
+
# @param options [Hash] Hash of arguments to provide via `CustomNotification`
|
|
105
|
+
#
|
|
106
|
+
# Publish a custom event to supporting registered formatters.
|
|
107
|
+
# @see RSpec::Core::Notifications::CustomNotification
|
|
108
|
+
def publish(event, options={})
|
|
109
|
+
if RSPEC_NOTIFICATIONS.include? event
|
|
110
|
+
raise "RSpec::Core::Reporter#publish is intended for sending custom " \
|
|
111
|
+
"events not internal RSpec ones, please rename your custom event."
|
|
112
|
+
end
|
|
113
|
+
notify event, Notifications::CustomNotification.for(options)
|
|
114
|
+
end
|
|
115
|
+
|
|
71
116
|
# @private
|
|
72
117
|
def example_group_started(group)
|
|
73
118
|
notify :example_group_started, Notifications::GroupNotification.new(group) unless group.descendant_filtered_examples.empty?
|
|
@@ -84,6 +129,11 @@ module RSpec::Core
|
|
|
84
129
|
notify :example_started, Notifications::ExampleNotification.for(example)
|
|
85
130
|
end
|
|
86
131
|
|
|
132
|
+
# @private
|
|
133
|
+
def example_finished(example)
|
|
134
|
+
notify :example_finished, Notifications::ExampleNotification.for(example)
|
|
135
|
+
end
|
|
136
|
+
|
|
87
137
|
# @private
|
|
88
138
|
def example_passed(example)
|
|
89
139
|
notify :example_passed, Notifications::ExampleNotification.for(example)
|
|
@@ -106,20 +156,44 @@ module RSpec::Core
|
|
|
106
156
|
notify :deprecation, Notifications::DeprecationNotification.from_hash(hash)
|
|
107
157
|
end
|
|
108
158
|
|
|
159
|
+
# @private
|
|
160
|
+
# Provides a way to notify of an exception that is not tied to any
|
|
161
|
+
# particular example (such as an exception encountered in a :suite hook).
|
|
162
|
+
# Exceptions will be formatted the same way they normally are.
|
|
163
|
+
def notify_non_example_exception(exception, context_description)
|
|
164
|
+
@configuration.world.non_example_failure = true
|
|
165
|
+
@non_example_exception_count += 1
|
|
166
|
+
|
|
167
|
+
example = Example.new(AnonymousExampleGroup, context_description, {})
|
|
168
|
+
presenter = Formatters::ExceptionPresenter.new(exception, example, :indentation => 0)
|
|
169
|
+
message presenter.fully_formatted(nil)
|
|
170
|
+
end
|
|
171
|
+
|
|
109
172
|
# @private
|
|
110
173
|
def finish
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
174
|
+
close_after do
|
|
175
|
+
stop
|
|
176
|
+
notify :start_dump, Notifications::NullNotification
|
|
177
|
+
notify :dump_pending, Notifications::ExamplesNotification.new(self)
|
|
178
|
+
notify :dump_failures, Notifications::ExamplesNotification.new(self)
|
|
179
|
+
notify :deprecation_summary, Notifications::NullNotification
|
|
180
|
+
unless mute_profile_output?
|
|
181
|
+
notify :dump_profile, Notifications::ProfileNotification.new(@duration, @examples,
|
|
182
|
+
@configuration.profile_examples,
|
|
183
|
+
@profiler.example_groups)
|
|
184
|
+
end
|
|
185
|
+
notify :dump_summary, Notifications::SummaryNotification.new(@duration, @examples, @failed_examples,
|
|
186
|
+
@pending_examples, @load_time,
|
|
187
|
+
@non_example_exception_count)
|
|
188
|
+
notify :seed, Notifications::SeedNotification.new(@configuration.seed, seed_used?)
|
|
119
189
|
end
|
|
120
|
-
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# @private
|
|
193
|
+
def close_after
|
|
194
|
+
yield
|
|
121
195
|
ensure
|
|
122
|
-
|
|
196
|
+
close
|
|
123
197
|
end
|
|
124
198
|
|
|
125
199
|
# @private
|
|
@@ -130,20 +204,62 @@ module RSpec::Core
|
|
|
130
204
|
|
|
131
205
|
# @private
|
|
132
206
|
def notify(event, notification)
|
|
207
|
+
ensure_listeners_ready
|
|
133
208
|
registered_listeners(event).each do |formatter|
|
|
134
209
|
formatter.__send__(event, notification)
|
|
135
210
|
end
|
|
136
211
|
end
|
|
137
212
|
|
|
213
|
+
# @private
|
|
214
|
+
def abort_with(msg, exit_status)
|
|
215
|
+
message(msg)
|
|
216
|
+
close
|
|
217
|
+
exit!(exit_status)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
# @private
|
|
221
|
+
def fail_fast_limit_met?
|
|
222
|
+
return false unless (fail_fast = @configuration.fail_fast)
|
|
223
|
+
|
|
224
|
+
if fail_fast == true
|
|
225
|
+
@failed_examples.any?
|
|
226
|
+
else
|
|
227
|
+
fail_fast <= @failed_examples.size
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
138
231
|
private
|
|
139
232
|
|
|
233
|
+
def ensure_listeners_ready
|
|
234
|
+
return if @setup
|
|
235
|
+
|
|
236
|
+
@setup_default.call
|
|
237
|
+
@profiler = Profiler.new
|
|
238
|
+
register_listener @profiler, *Profiler::NOTIFICATIONS
|
|
239
|
+
@setup = true
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
def close
|
|
243
|
+
notify :close, Notifications::NullNotification
|
|
244
|
+
end
|
|
245
|
+
|
|
140
246
|
def mute_profile_output?
|
|
141
|
-
# Don't print out profiled info if there are failures and `--fail-fast` is
|
|
142
|
-
|
|
247
|
+
# Don't print out profiled info if there are failures and `--fail-fast` is
|
|
248
|
+
# used, it just clutters the output.
|
|
249
|
+
!@configuration.profile_examples? || fail_fast_limit_met?
|
|
143
250
|
end
|
|
144
251
|
|
|
145
252
|
def seed_used?
|
|
146
253
|
@configuration.seed && @configuration.seed_used?
|
|
147
254
|
end
|
|
148
255
|
end
|
|
256
|
+
|
|
257
|
+
# @private
|
|
258
|
+
# # Used in place of a {Reporter} for situations where we don't want reporting output.
|
|
259
|
+
class NullReporter
|
|
260
|
+
def self.method_missing(*)
|
|
261
|
+
# ignore
|
|
262
|
+
end
|
|
263
|
+
private_class_method :method_missing
|
|
264
|
+
end
|
|
149
265
|
end
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
# This is borrowed (slightly modified) from Scott Taylor's
|
|
2
2
|
# project_path project:
|
|
3
3
|
# http://github.com/smtlaissezfaire/project_path
|
|
4
|
-
|
|
5
|
-
require 'pathname'
|
|
6
|
-
|
|
7
4
|
module RSpec
|
|
8
5
|
module Core
|
|
9
6
|
# @private
|
|
10
7
|
module RubyProject
|
|
11
8
|
def add_to_load_path(*dirs)
|
|
12
|
-
dirs.
|
|
9
|
+
dirs.each { |dir| add_dir_to_load_path(File.join(root, dir)) }
|
|
13
10
|
end
|
|
14
11
|
|
|
15
12
|
def add_dir_to_load_path(dir)
|
|
@@ -29,8 +26,19 @@ module RSpec
|
|
|
29
26
|
end
|
|
30
27
|
|
|
31
28
|
def ascend_until
|
|
32
|
-
|
|
29
|
+
fs = File::SEPARATOR
|
|
30
|
+
escaped_slash = "\\#{fs}"
|
|
31
|
+
special = "_RSPEC_ESCAPED_SLASH_"
|
|
32
|
+
project_path = File.expand_path(".")
|
|
33
|
+
parts = project_path.gsub(escaped_slash, special).squeeze(fs).split(fs).map do |x|
|
|
34
|
+
x.gsub(special, escaped_slash)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
until parts.empty?
|
|
38
|
+
path = parts.join(fs)
|
|
39
|
+
path = fs if path == ""
|
|
33
40
|
return path if yield(path)
|
|
41
|
+
parts.pop
|
|
34
42
|
end
|
|
35
43
|
end
|
|
36
44
|
|