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,5 +1,7 @@
|
|
|
1
|
+
RSpec::Support.require_rspec_core "formatters/console_codes"
|
|
2
|
+
RSpec::Support.require_rspec_core "formatters/exception_presenter"
|
|
1
3
|
RSpec::Support.require_rspec_core "formatters/helpers"
|
|
2
|
-
RSpec::Support.
|
|
4
|
+
RSpec::Support.require_rspec_core "shell_escape"
|
|
3
5
|
|
|
4
6
|
module RSpec::Core
|
|
5
7
|
# Notifications are value objects passed to formatters to provide them
|
|
@@ -8,6 +10,7 @@ module RSpec::Core
|
|
|
8
10
|
# @private
|
|
9
11
|
module NullColorizer
|
|
10
12
|
module_function
|
|
13
|
+
|
|
11
14
|
def wrap(line, _code_or_symbol)
|
|
12
15
|
line
|
|
13
16
|
end
|
|
@@ -32,17 +35,26 @@ module RSpec::Core
|
|
|
32
35
|
# end
|
|
33
36
|
#
|
|
34
37
|
# @attr example [RSpec::Core::Example] the current example
|
|
35
|
-
ExampleNotification = Struct.new(:example)
|
|
38
|
+
ExampleNotification = Struct.new(:example)
|
|
39
|
+
class ExampleNotification
|
|
36
40
|
# @private
|
|
37
41
|
def self.for(example)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
execution_result = example.execution_result
|
|
43
|
+
|
|
44
|
+
return SkippedExampleNotification.new(example) if execution_result.example_skipped?
|
|
45
|
+
return new(example) unless execution_result.status == :pending || execution_result.status == :failed
|
|
46
|
+
|
|
47
|
+
klass = if execution_result.pending_fixed?
|
|
48
|
+
PendingExampleFixedNotification
|
|
49
|
+
elsif execution_result.status == :pending
|
|
50
|
+
PendingExampleFailedAsExpectedNotification
|
|
51
|
+
else
|
|
52
|
+
FailedExampleNotification
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
klass.new(example)
|
|
45
56
|
end
|
|
57
|
+
|
|
46
58
|
private_class_method :new
|
|
47
59
|
end
|
|
48
60
|
|
|
@@ -59,57 +71,59 @@ module RSpec::Core
|
|
|
59
71
|
@reporter = reporter
|
|
60
72
|
end
|
|
61
73
|
|
|
62
|
-
# @return [Array
|
|
74
|
+
# @return [Array<RSpec::Core::Example>] list of examples
|
|
63
75
|
def examples
|
|
64
76
|
@reporter.examples
|
|
65
77
|
end
|
|
66
78
|
|
|
67
|
-
# @return [Array
|
|
79
|
+
# @return [Array<RSpec::Core::Example>] list of failed examples
|
|
68
80
|
def failed_examples
|
|
69
81
|
@reporter.failed_examples
|
|
70
82
|
end
|
|
71
83
|
|
|
72
|
-
# @return [Array
|
|
84
|
+
# @return [Array<RSpec::Core::Example>] list of pending examples
|
|
73
85
|
def pending_examples
|
|
74
86
|
@reporter.pending_examples
|
|
75
87
|
end
|
|
76
88
|
|
|
77
|
-
# @return [Array
|
|
89
|
+
# @return [Array<RSpec::Core::Notifications::ExampleNotification>]
|
|
78
90
|
# returns examples as notifications
|
|
79
91
|
def notifications
|
|
80
92
|
@notifications ||= format_examples(examples)
|
|
81
93
|
end
|
|
82
94
|
|
|
83
|
-
# @return [Array
|
|
95
|
+
# @return [Array<RSpec::Core::Notifications::FailedExampleNotification>]
|
|
84
96
|
# returns failed examples as notifications
|
|
85
97
|
def failure_notifications
|
|
86
98
|
@failed_notifications ||= format_examples(failed_examples)
|
|
87
99
|
end
|
|
88
100
|
|
|
89
|
-
# @return [
|
|
90
|
-
#
|
|
101
|
+
# @return [Array<RSpec::Core::Notifications::SkippedExampleNotification,
|
|
102
|
+
# RSpec::Core::Notifications::PendingExampleFailedAsExpectedNotification>]
|
|
103
|
+
# returns pending examples as notifications
|
|
104
|
+
def pending_notifications
|
|
105
|
+
@pending_notifications ||= format_examples(pending_examples)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @return [String] The list of failed examples, fully formatted in the way
|
|
109
|
+
# that RSpec's built-in formatters emit.
|
|
91
110
|
def fully_formatted_failed_examples(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
92
111
|
formatted = "\nFailures:\n"
|
|
93
112
|
|
|
94
113
|
failure_notifications.each_with_index do |failure, index|
|
|
95
|
-
formatted
|
|
114
|
+
formatted += failure.fully_formatted(index.next, colorizer)
|
|
96
115
|
end
|
|
97
116
|
|
|
98
117
|
formatted
|
|
99
118
|
end
|
|
100
119
|
|
|
101
|
-
# @return [String] The list of pending examples, fully formatted in the
|
|
102
|
-
# RSpec's built-in formatters emit.
|
|
120
|
+
# @return [String] The list of pending examples, fully formatted in the
|
|
121
|
+
# way that RSpec's built-in formatters emit.
|
|
103
122
|
def fully_formatted_pending_examples(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
104
|
-
formatted = "\nPending
|
|
123
|
+
formatted = "\nPending: (Failures listed here are expected and do not affect your suite's status)\n".dup
|
|
105
124
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
formatted <<
|
|
110
|
-
" #{colorizer.wrap(example.full_description, :pending)}\n" \
|
|
111
|
-
" # #{colorizer.wrap(example.execution_result.pending_message, :detail)}\n" \
|
|
112
|
-
" # #{colorizer.wrap(formatted_caller, :detail)}\n"
|
|
125
|
+
pending_notifications.each_with_index do |notification, index|
|
|
126
|
+
formatted << notification.fully_formatted(index.next, colorizer)
|
|
113
127
|
end
|
|
114
128
|
|
|
115
129
|
formatted
|
|
@@ -125,7 +139,8 @@ module RSpec::Core
|
|
|
125
139
|
end
|
|
126
140
|
|
|
127
141
|
# The `FailedExampleNotification` extends `ExampleNotification` with
|
|
128
|
-
# things useful for
|
|
142
|
+
# things useful for examples that have failure info -- typically a
|
|
143
|
+
# failed or pending spec.
|
|
129
144
|
#
|
|
130
145
|
# @example
|
|
131
146
|
# def example_failed(notification)
|
|
@@ -141,183 +156,97 @@ module RSpec::Core
|
|
|
141
156
|
|
|
142
157
|
# @return [Exception] The example failure
|
|
143
158
|
def exception
|
|
144
|
-
|
|
159
|
+
@exception_presenter.exception
|
|
145
160
|
end
|
|
146
161
|
|
|
147
162
|
# @return [String] The example description
|
|
148
163
|
def description
|
|
149
|
-
|
|
164
|
+
@exception_presenter.description
|
|
150
165
|
end
|
|
151
166
|
|
|
152
167
|
# Returns the message generated for this failure line by line.
|
|
153
168
|
#
|
|
154
|
-
# @return [Array
|
|
169
|
+
# @return [Array<String>] The example failure message
|
|
155
170
|
def message_lines
|
|
156
|
-
|
|
171
|
+
@exception_presenter.message_lines
|
|
157
172
|
end
|
|
158
173
|
|
|
159
174
|
# Returns the message generated for this failure colorized line by line.
|
|
160
175
|
#
|
|
161
176
|
# @param colorizer [#wrap] An object to colorize the message_lines by
|
|
162
|
-
# @return [Array
|
|
177
|
+
# @return [Array<String>] The example failure message colorized
|
|
163
178
|
def colorized_message_lines(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
164
|
-
|
|
165
|
-
colorizer.wrap line, RSpec.configuration.failure_color
|
|
166
|
-
end
|
|
179
|
+
@exception_presenter.colorized_message_lines(colorizer)
|
|
167
180
|
end
|
|
168
181
|
|
|
169
182
|
# Returns the failures formatted backtrace.
|
|
170
183
|
#
|
|
171
|
-
# @return [Array
|
|
184
|
+
# @return [Array<String>] the examples backtrace lines
|
|
172
185
|
def formatted_backtrace
|
|
173
|
-
|
|
186
|
+
@exception_presenter.formatted_backtrace
|
|
174
187
|
end
|
|
175
188
|
|
|
176
189
|
# Returns the failures colorized formatted backtrace.
|
|
177
190
|
#
|
|
178
191
|
# @param colorizer [#wrap] An object to colorize the message_lines by
|
|
179
|
-
# @return [Array
|
|
192
|
+
# @return [Array<String>] the examples colorized backtrace lines
|
|
180
193
|
def colorized_formatted_backtrace(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
181
|
-
|
|
182
|
-
colorizer.wrap "# #{backtrace_info}", RSpec.configuration.detail_color
|
|
183
|
-
end
|
|
194
|
+
@exception_presenter.colorized_formatted_backtrace(colorizer)
|
|
184
195
|
end
|
|
185
196
|
|
|
186
197
|
# @return [String] The failure information fully formatted in the way that
|
|
187
198
|
# RSpec's built-in formatters emit.
|
|
188
199
|
def fully_formatted(failure_number, colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
colorized_message_lines(colorizer).each do |line|
|
|
192
|
-
formatted << RSpec::Support::EncodedString.new(" #{line}\n", encoding_of(formatted))
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
colorized_formatted_backtrace(colorizer).each do |line|
|
|
196
|
-
formatted << RSpec::Support::EncodedString.new(" #{line}\n", encoding_of(formatted))
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
formatted
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
private
|
|
203
|
-
|
|
204
|
-
if String.method_defined?(:encoding)
|
|
205
|
-
def encoding_of(string)
|
|
206
|
-
string.encoding
|
|
207
|
-
end
|
|
208
|
-
else
|
|
209
|
-
def encoding_of(_string)
|
|
210
|
-
end
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
def backtrace_formatter
|
|
214
|
-
RSpec.configuration.backtrace_formatter
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
def exception_class_name
|
|
218
|
-
name = exception.class.name.to_s
|
|
219
|
-
name = "(anonymous error class)" if name == ''
|
|
220
|
-
name
|
|
221
|
-
end
|
|
222
|
-
|
|
223
|
-
def failure_lines
|
|
224
|
-
@failure_lines ||=
|
|
225
|
-
begin
|
|
226
|
-
lines = ["Failure/Error: #{read_failed_line.strip}"]
|
|
227
|
-
lines << "#{exception_class_name}:" unless exception_class_name =~ /RSpec/
|
|
228
|
-
exception.message.to_s.split("\n").each do |line|
|
|
229
|
-
lines << " #{line}" if exception.message
|
|
230
|
-
end
|
|
231
|
-
lines
|
|
232
|
-
end
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
def add_shared_group_line(lines, colorizer)
|
|
236
|
-
unless shared_group_line == ""
|
|
237
|
-
lines << colorizer.wrap(shared_group_line, RSpec.configuration.default_color)
|
|
238
|
-
end
|
|
239
|
-
lines
|
|
200
|
+
@exception_presenter.fully_formatted(failure_number, colorizer)
|
|
240
201
|
end
|
|
241
202
|
|
|
242
|
-
|
|
243
|
-
|
|
203
|
+
# @return [Array<string>] The failure information fully formatted in the way that
|
|
204
|
+
# RSpec's built-in formatters emit, split by line.
|
|
205
|
+
def fully_formatted_lines(failure_number, colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
206
|
+
@exception_presenter.fully_formatted_lines(failure_number, colorizer)
|
|
244
207
|
end
|
|
245
208
|
|
|
246
|
-
|
|
247
|
-
@shared_group_line ||=
|
|
248
|
-
if shared_group
|
|
249
|
-
"Shared Example Group: \"#{shared_group.metadata[:shared_group_name]}\"" \
|
|
250
|
-
" called from #{backtrace_formatter.backtrace_line(shared_group.location)}"
|
|
251
|
-
else
|
|
252
|
-
""
|
|
253
|
-
end
|
|
254
|
-
end
|
|
209
|
+
private
|
|
255
210
|
|
|
256
|
-
def
|
|
257
|
-
|
|
211
|
+
def initialize(example, exception_presenter=Formatters::ExceptionPresenter::Factory.new(example).build)
|
|
212
|
+
@exception_presenter = exception_presenter
|
|
213
|
+
super(example)
|
|
258
214
|
end
|
|
215
|
+
end
|
|
259
216
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
unless matching_line
|
|
263
|
-
return "Unable to find matching line from backtrace"
|
|
264
|
-
end
|
|
265
|
-
|
|
266
|
-
file_path, line_number = matching_line.match(/(.+?):(\d+)(|:\d+)/)[1..2]
|
|
267
|
-
|
|
268
|
-
if File.exist?(file_path)
|
|
269
|
-
File.readlines(file_path)[line_number.to_i - 1] ||
|
|
270
|
-
"Unable to find matching line in #{file_path}"
|
|
271
|
-
else
|
|
272
|
-
"Unable to find #{file_path} to read failed line"
|
|
273
|
-
end
|
|
274
|
-
rescue SecurityError
|
|
275
|
-
"Unable to read failed line"
|
|
276
|
-
end
|
|
217
|
+
# @deprecated Use {FailedExampleNotification} instead.
|
|
218
|
+
class PendingExampleFixedNotification < FailedExampleNotification; end
|
|
277
219
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
exception.backtrace.find do |line|
|
|
281
|
-
match = line.match(/(.+?):(\d+)(|:\d+)/)
|
|
282
|
-
match && match[1].downcase == path.downcase
|
|
283
|
-
end
|
|
284
|
-
end
|
|
285
|
-
end
|
|
220
|
+
# @deprecated Use {FailedExampleNotification} instead.
|
|
221
|
+
class PendingExampleFailedAsExpectedNotification < FailedExampleNotification; end
|
|
286
222
|
|
|
287
|
-
# The `
|
|
288
|
-
# things useful for specs that
|
|
223
|
+
# The `SkippedExampleNotification` extends `ExampleNotification` with
|
|
224
|
+
# things useful for specs that are skipped.
|
|
289
225
|
#
|
|
290
226
|
# @attr [RSpec::Core::Example] example the current example
|
|
291
227
|
# @see ExampleNotification
|
|
292
|
-
class
|
|
228
|
+
class SkippedExampleNotification < ExampleNotification
|
|
293
229
|
public_class_method :new
|
|
294
230
|
|
|
295
|
-
#
|
|
296
|
-
#
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
"#{example.full_description} FIXED"
|
|
300
|
-
end
|
|
301
|
-
|
|
302
|
-
# Returns the message generated for this failure line by line.
|
|
303
|
-
#
|
|
304
|
-
# @return [Array(String)] The example failure message
|
|
305
|
-
def message_lines
|
|
306
|
-
["Expected pending '#{example.execution_result.pending_message}' to fail. No Error was raised."]
|
|
307
|
-
end
|
|
231
|
+
# @return [String] The pending detail fully formatted in the way that
|
|
232
|
+
# RSpec's built-in formatters emit.
|
|
233
|
+
def fully_formatted(pending_number, colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
234
|
+
formatted_caller = RSpec.configuration.backtrace_formatter.backtrace_line(example.location)
|
|
308
235
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
236
|
+
[
|
|
237
|
+
colorizer.wrap("\n #{pending_number}) #{example.full_description}", :pending),
|
|
238
|
+
"\n ",
|
|
239
|
+
Formatters::ExceptionPresenter::PENDING_DETAIL_FORMATTER.call(example, colorizer),
|
|
240
|
+
"\n",
|
|
241
|
+
colorizer.wrap(" # #{formatted_caller}\n", :detail)
|
|
242
|
+
].join("")
|
|
315
243
|
end
|
|
316
244
|
end
|
|
317
245
|
|
|
318
|
-
# The `GroupNotification` represents notifications sent by the reporter
|
|
319
|
-
# contain information about the currently running (or soon to be)
|
|
320
|
-
# It is used by formatters to access information about that
|
|
246
|
+
# The `GroupNotification` represents notifications sent by the reporter
|
|
247
|
+
# which contain information about the currently running (or soon to be)
|
|
248
|
+
# example group. It is used by formatters to access information about that
|
|
249
|
+
# group.
|
|
321
250
|
#
|
|
322
251
|
# @example
|
|
323
252
|
# def example_group_started(notification)
|
|
@@ -333,11 +262,12 @@ module RSpec::Core
|
|
|
333
262
|
MessageNotification = Struct.new(:message)
|
|
334
263
|
|
|
335
264
|
# The `SeedNotification` holds the seed used to randomize examples and
|
|
336
|
-
#
|
|
265
|
+
# whether that seed has been used or not.
|
|
337
266
|
#
|
|
338
267
|
# @attr seed [Fixnum] the seed used to randomize ordering
|
|
339
|
-
# @attr used [Boolean]
|
|
340
|
-
SeedNotification = Struct.new(:seed, :used)
|
|
268
|
+
# @attr used [Boolean] whether the seed has been used or not
|
|
269
|
+
SeedNotification = Struct.new(:seed, :used)
|
|
270
|
+
class SeedNotification
|
|
341
271
|
# @api
|
|
342
272
|
# @return [Boolean] has the seed been used?
|
|
343
273
|
def seed_used?
|
|
@@ -348,7 +278,7 @@ module RSpec::Core
|
|
|
348
278
|
# @return [String] The seed information fully formatted in the way that
|
|
349
279
|
# RSpec's built-in formatters emit.
|
|
350
280
|
def fully_formatted
|
|
351
|
-
"\nRandomized with seed #{seed}\n
|
|
281
|
+
"\nRandomized with seed #{seed}\n"
|
|
352
282
|
end
|
|
353
283
|
end
|
|
354
284
|
|
|
@@ -357,13 +287,18 @@ module RSpec::Core
|
|
|
357
287
|
# of the test run.
|
|
358
288
|
#
|
|
359
289
|
# @attr duration [Float] the time taken (in seconds) to run the suite
|
|
360
|
-
# @attr examples [Array
|
|
361
|
-
# @attr failed_examples [Array
|
|
362
|
-
# @attr pending_examples [Array
|
|
290
|
+
# @attr examples [Array<RSpec::Core::Example>] the examples run
|
|
291
|
+
# @attr failed_examples [Array<RSpec::Core::Example>] the failed examples
|
|
292
|
+
# @attr pending_examples [Array<RSpec::Core::Example>] the pending examples
|
|
363
293
|
# @attr load_time [Float] the number of seconds taken to boot RSpec
|
|
364
294
|
# and load the spec files
|
|
365
|
-
|
|
366
|
-
|
|
295
|
+
# @attr errors_outside_of_examples_count [Integer] the number of errors that
|
|
296
|
+
# have occurred processing
|
|
297
|
+
# the spec suite
|
|
298
|
+
SummaryNotification = Struct.new(:duration, :examples, :failed_examples,
|
|
299
|
+
:pending_examples, :load_time,
|
|
300
|
+
:errors_outside_of_examples_count)
|
|
301
|
+
class SummaryNotification
|
|
367
302
|
# @api
|
|
368
303
|
# @return [Fixnum] the number of examples run
|
|
369
304
|
def example_count
|
|
@@ -385,9 +320,16 @@ module RSpec::Core
|
|
|
385
320
|
# @api
|
|
386
321
|
# @return [String] A line summarising the result totals of the spec run.
|
|
387
322
|
def totals_line
|
|
388
|
-
summary = Formatters::Helpers.pluralize(example_count, "example")
|
|
389
|
-
|
|
390
|
-
summary
|
|
323
|
+
summary = Formatters::Helpers.pluralize(example_count, "example") +
|
|
324
|
+
", " + Formatters::Helpers.pluralize(failure_count, "failure")
|
|
325
|
+
summary += ", #{pending_count} pending" if pending_count > 0
|
|
326
|
+
if errors_outside_of_examples_count > 0
|
|
327
|
+
summary += (
|
|
328
|
+
", " +
|
|
329
|
+
Formatters::Helpers.pluralize(errors_outside_of_examples_count, "error") +
|
|
330
|
+
" occurred outside of examples"
|
|
331
|
+
)
|
|
332
|
+
end
|
|
391
333
|
summary
|
|
392
334
|
end
|
|
393
335
|
|
|
@@ -401,7 +343,7 @@ module RSpec::Core
|
|
|
401
343
|
# specific colors.
|
|
402
344
|
# @return [String] A colorized results line.
|
|
403
345
|
def colorized_totals_line(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
404
|
-
if failure_count > 0
|
|
346
|
+
if failure_count > 0 || errors_outside_of_examples_count > 0
|
|
405
347
|
colorizer.wrap(totals_line, RSpec.configuration.failure_color)
|
|
406
348
|
elsif pending_count > 0
|
|
407
349
|
colorizer.wrap(totals_line, RSpec.configuration.pending_color)
|
|
@@ -420,18 +362,19 @@ module RSpec::Core
|
|
|
420
362
|
def colorized_rerun_commands(colorizer=::RSpec::Core::Formatters::ConsoleCodes)
|
|
421
363
|
"\nFailed examples:\n\n" +
|
|
422
364
|
failed_examples.map do |example|
|
|
423
|
-
colorizer.wrap("rspec #{example
|
|
424
|
-
colorizer.wrap("# #{example.full_description}",
|
|
365
|
+
colorizer.wrap("rspec #{rerun_argument_for(example)}", RSpec.configuration.failure_color) + " " +
|
|
366
|
+
colorizer.wrap("# #{example.full_description}", RSpec.configuration.detail_color)
|
|
425
367
|
end.join("\n")
|
|
426
368
|
end
|
|
427
369
|
|
|
428
|
-
# @return [String] a formatted version of the time it took to run the
|
|
370
|
+
# @return [String] a formatted version of the time it took to run the
|
|
371
|
+
# suite
|
|
429
372
|
def formatted_duration
|
|
430
373
|
Formatters::Helpers.format_duration(duration)
|
|
431
374
|
end
|
|
432
375
|
|
|
433
|
-
# @return [String] a formatted version of the time it took to boot RSpec
|
|
434
|
-
# load the spec files
|
|
376
|
+
# @return [String] a formatted version of the time it took to boot RSpec
|
|
377
|
+
# and load the spec files
|
|
435
378
|
def formatted_load_time
|
|
436
379
|
Formatters::Helpers.format_duration(load_time)
|
|
437
380
|
end
|
|
@@ -444,23 +387,53 @@ module RSpec::Core
|
|
|
444
387
|
"#{colorized_totals_line(colorizer)}\n"
|
|
445
388
|
|
|
446
389
|
unless failed_examples.empty?
|
|
447
|
-
formatted
|
|
390
|
+
formatted += (colorized_rerun_commands(colorizer) + "\n")
|
|
448
391
|
end
|
|
449
392
|
|
|
450
393
|
formatted
|
|
451
394
|
end
|
|
395
|
+
|
|
396
|
+
private
|
|
397
|
+
|
|
398
|
+
include RSpec::Core::ShellEscape
|
|
399
|
+
|
|
400
|
+
def rerun_argument_for(example)
|
|
401
|
+
location = example.location_rerun_argument
|
|
402
|
+
return location unless duplicate_rerun_locations.include?(location)
|
|
403
|
+
conditionally_quote(example.id)
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
def duplicate_rerun_locations
|
|
407
|
+
@duplicate_rerun_locations ||= begin
|
|
408
|
+
locations = RSpec.world.all_examples.map(&:location_rerun_argument)
|
|
409
|
+
|
|
410
|
+
Set.new.tap do |s|
|
|
411
|
+
locations.group_by { |l| l }.each do |l, ls|
|
|
412
|
+
s << l if ls.count > 1
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
end
|
|
452
417
|
end
|
|
453
418
|
|
|
454
|
-
# The `ProfileNotification` holds information about the results of running
|
|
455
|
-
#
|
|
419
|
+
# The `ProfileNotification` holds information about the results of running a
|
|
420
|
+
# test suite when profiling is enabled. It is used by formatters to provide
|
|
456
421
|
# information at the end of the test run for profiling information.
|
|
457
422
|
#
|
|
458
423
|
# @attr duration [Float] the time taken (in seconds) to run the suite
|
|
459
|
-
# @attr examples [Array
|
|
424
|
+
# @attr examples [Array<RSpec::Core::Example>] the examples run
|
|
460
425
|
# @attr number_of_examples [Fixnum] the number of examples to profile
|
|
461
|
-
|
|
426
|
+
# @attr example_groups [Array<RSpec::Core::Profiler>] example groups run
|
|
427
|
+
class ProfileNotification
|
|
428
|
+
def initialize(duration, examples, number_of_examples, example_groups)
|
|
429
|
+
@duration = duration
|
|
430
|
+
@examples = examples
|
|
431
|
+
@number_of_examples = number_of_examples
|
|
432
|
+
@example_groups = example_groups
|
|
433
|
+
end
|
|
434
|
+
attr_reader :duration, :examples, :number_of_examples
|
|
462
435
|
|
|
463
|
-
# @return [Array
|
|
436
|
+
# @return [Array<RSpec::Core::Example>] the slowest examples
|
|
464
437
|
def slowest_examples
|
|
465
438
|
@slowest_examples ||=
|
|
466
439
|
examples.sort_by do |example|
|
|
@@ -485,7 +458,7 @@ module RSpec::Core
|
|
|
485
458
|
end
|
|
486
459
|
end
|
|
487
460
|
|
|
488
|
-
# @return [Array
|
|
461
|
+
# @return [Array<RSpec::Core::Example>] the slowest example groups
|
|
489
462
|
def slowest_groups
|
|
490
463
|
@slowest_groups ||= calculate_slowest_groups
|
|
491
464
|
end
|
|
@@ -493,38 +466,30 @@ module RSpec::Core
|
|
|
493
466
|
private
|
|
494
467
|
|
|
495
468
|
def calculate_slowest_groups
|
|
496
|
-
example_groups = {}
|
|
497
|
-
|
|
498
|
-
examples.each do |example|
|
|
499
|
-
location = example.example_group.parent_groups.last.metadata[:location]
|
|
500
|
-
|
|
501
|
-
location_hash = example_groups[location] ||= Hash.new(0)
|
|
502
|
-
location_hash[:total_time] += example.execution_result.run_time
|
|
503
|
-
location_hash[:count] += 1
|
|
504
|
-
next if location_hash.key?(:description)
|
|
505
|
-
location_hash[:description] = example.example_group.top_level_description
|
|
506
|
-
end
|
|
507
|
-
|
|
508
469
|
# stop if we've only one example group
|
|
509
|
-
return {} if example_groups.keys.length <= 1
|
|
470
|
+
return {} if @example_groups.keys.length <= 1
|
|
510
471
|
|
|
511
|
-
example_groups.each_value do |hash|
|
|
472
|
+
@example_groups.each_value do |hash|
|
|
512
473
|
hash[:average] = hash[:total_time].to_f / hash[:count]
|
|
513
474
|
end
|
|
514
475
|
|
|
515
|
-
example_groups.sort_by { |_, hash| -hash[:average] }.first(number_of_examples)
|
|
476
|
+
groups = @example_groups.sort_by { |_, hash| -hash[:average] }.first(number_of_examples)
|
|
477
|
+
groups.map { |group, data| [group.location, data] }
|
|
516
478
|
end
|
|
517
479
|
end
|
|
518
480
|
|
|
519
481
|
# The `DeprecationNotification` is issued by the reporter when a deprecated
|
|
520
|
-
# part of RSpec is encountered. It represents information about the
|
|
521
|
-
# call site.
|
|
482
|
+
# part of RSpec is encountered. It represents information about the
|
|
483
|
+
# deprecated call site.
|
|
522
484
|
#
|
|
523
485
|
# @attr message [String] A custom message about the deprecation
|
|
524
|
-
# @attr deprecated [String] A custom message about the deprecation (alias of
|
|
486
|
+
# @attr deprecated [String] A custom message about the deprecation (alias of
|
|
487
|
+
# message)
|
|
525
488
|
# @attr replacement [String] An optional replacement for the deprecation
|
|
526
|
-
# @attr call_site [String] An optional call site from which the deprecation
|
|
527
|
-
|
|
489
|
+
# @attr call_site [String] An optional call site from which the deprecation
|
|
490
|
+
# was issued
|
|
491
|
+
DeprecationNotification = Struct.new(:deprecated, :message, :replacement, :call_site)
|
|
492
|
+
class DeprecationNotification
|
|
528
493
|
private_class_method :new
|
|
529
494
|
|
|
530
495
|
# @api
|
|
@@ -538,5 +503,19 @@ module RSpec::Core
|
|
|
538
503
|
# currently require no information, but we may wish to extend in future.
|
|
539
504
|
class NullNotification
|
|
540
505
|
end
|
|
506
|
+
|
|
507
|
+
# `CustomNotification` is used when sending custom events to formatters /
|
|
508
|
+
# other registered listeners, it creates attributes based on supplied hash
|
|
509
|
+
# of options.
|
|
510
|
+
class CustomNotification < Struct
|
|
511
|
+
# @param options [Hash] A hash of method / value pairs to create on this notification
|
|
512
|
+
# @return [CustomNotification]
|
|
513
|
+
#
|
|
514
|
+
# Build a custom notification based on the supplied option key / values.
|
|
515
|
+
def self.for(options={})
|
|
516
|
+
return NullNotification if options.keys.empty?
|
|
517
|
+
new(*options.keys).new(*options.values)
|
|
518
|
+
end
|
|
519
|
+
end
|
|
541
520
|
end
|
|
542
521
|
end
|