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
|
@@ -31,7 +31,9 @@ module RSpec
|
|
|
31
31
|
@example_group_number += 1
|
|
32
32
|
|
|
33
33
|
@printer.print_example_group_end unless example_group_number == 1
|
|
34
|
-
@printer.print_example_group_start(example_group_number,
|
|
34
|
+
@printer.print_example_group_start(example_group_number,
|
|
35
|
+
notification.group.description,
|
|
36
|
+
notification.group.parent_groups.size)
|
|
35
37
|
@printer.flush
|
|
36
38
|
end
|
|
37
39
|
|
|
@@ -67,13 +69,13 @@ module RSpec
|
|
|
67
69
|
example = failure.example
|
|
68
70
|
|
|
69
71
|
exception = failure.exception
|
|
72
|
+
message_lines = failure.fully_formatted_lines(nil, RSpec::Core::Notifications::NullColorizer)
|
|
70
73
|
exception_details = if exception
|
|
71
74
|
{
|
|
72
|
-
|
|
73
|
-
:
|
|
75
|
+
# drop 2 removes the description (regardless of newlines) and leading blank line
|
|
76
|
+
:message => message_lines.drop(2).join("\n"),
|
|
77
|
+
:backtrace => failure.formatted_backtrace.join("\n"),
|
|
74
78
|
}
|
|
75
|
-
else
|
|
76
|
-
false
|
|
77
79
|
end
|
|
78
80
|
extra = extra_failure_content(failure)
|
|
79
81
|
|
|
@@ -83,8 +85,7 @@ module RSpec
|
|
|
83
85
|
example.execution_result.run_time,
|
|
84
86
|
@failed_examples.size,
|
|
85
87
|
exception_details,
|
|
86
|
-
(extra == "") ? false : extra
|
|
87
|
-
true
|
|
88
|
+
(extra == "") ? false : extra
|
|
88
89
|
)
|
|
89
90
|
@printer.flush
|
|
90
91
|
end
|
|
@@ -111,15 +112,16 @@ module RSpec
|
|
|
111
112
|
|
|
112
113
|
private
|
|
113
114
|
|
|
114
|
-
# If these methods are declared with attr_reader Ruby will issue a
|
|
115
|
+
# If these methods are declared with attr_reader Ruby will issue a
|
|
116
|
+
# warning because they are private.
|
|
115
117
|
# rubocop:disable Style/TrivialAccessors
|
|
116
118
|
|
|
117
|
-
# The number of the currently running example_group
|
|
119
|
+
# The number of the currently running example_group.
|
|
118
120
|
def example_group_number
|
|
119
121
|
@example_group_number
|
|
120
122
|
end
|
|
121
123
|
|
|
122
|
-
# The number of the currently running example (a global counter)
|
|
124
|
+
# The number of the currently running example (a global counter).
|
|
123
125
|
def example_number
|
|
124
126
|
@example_number
|
|
125
127
|
end
|
|
@@ -133,14 +135,16 @@ module RSpec
|
|
|
133
135
|
result
|
|
134
136
|
end
|
|
135
137
|
|
|
136
|
-
# Override this method if you wish to output extra HTML for a failed
|
|
137
|
-
# could output links to images or other files
|
|
138
|
-
#
|
|
138
|
+
# Override this method if you wish to output extra HTML for a failed
|
|
139
|
+
# spec. For example, you could output links to images or other files
|
|
140
|
+
# produced during the specs.
|
|
139
141
|
def extra_failure_content(failure)
|
|
140
|
-
RSpec::Support.require_rspec_core "formatters/
|
|
141
|
-
backtrace = failure.exception.backtrace.map
|
|
142
|
+
RSpec::Support.require_rspec_core "formatters/html_snippet_extractor"
|
|
143
|
+
backtrace = (failure.exception.backtrace || []).map do |line|
|
|
144
|
+
RSpec.configuration.backtrace_formatter.backtrace_line(line)
|
|
145
|
+
end
|
|
142
146
|
backtrace.compact!
|
|
143
|
-
@snippet_extractor ||=
|
|
147
|
+
@snippet_extractor ||= HtmlSnippetExtractor.new
|
|
144
148
|
" <pre class=\"ruby\"><code>#{@snippet_extractor.snippet(backtrace)}</code></pre>"
|
|
145
149
|
end
|
|
146
150
|
end
|
|
@@ -5,7 +5,7 @@ module RSpec
|
|
|
5
5
|
module Formatters
|
|
6
6
|
# @private
|
|
7
7
|
class HtmlPrinter
|
|
8
|
-
include ERB::Util #
|
|
8
|
+
include ERB::Util # For the #h method.
|
|
9
9
|
def initialize(output)
|
|
10
10
|
@output = output
|
|
11
11
|
end
|
|
@@ -28,12 +28,13 @@ module RSpec
|
|
|
28
28
|
|
|
29
29
|
def print_example_passed(description, run_time)
|
|
30
30
|
formatted_run_time = "%.5f" % run_time
|
|
31
|
-
@output.puts " <dd class=\"example passed\"
|
|
31
|
+
@output.puts " <dd class=\"example passed\">" \
|
|
32
|
+
"<span class=\"passed_spec_name\">#{h(description)}</span>" \
|
|
33
|
+
"<span class='duration'>#{formatted_run_time}s</span></dd>"
|
|
32
34
|
end
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# rubocop:enable Style/ParameterLists
|
|
36
|
+
def print_example_failed(pending_fixed, description, run_time, failure_id,
|
|
37
|
+
exception, extra_content)
|
|
37
38
|
formatted_run_time = "%.5f" % run_time
|
|
38
39
|
|
|
39
40
|
@output.puts " <dd class=\"example #{pending_fixed ? 'pending_fixed' : 'failed'}\">"
|
|
@@ -42,11 +43,7 @@ module RSpec
|
|
|
42
43
|
@output.puts " <div class=\"failure\" id=\"failure_#{failure_id}\">"
|
|
43
44
|
if exception
|
|
44
45
|
@output.puts " <div class=\"message\"><pre>#{h(exception[:message])}</pre></div>"
|
|
45
|
-
|
|
46
|
-
@output.puts " <div class=\"backtrace\"><pre>#{h exception[:backtrace]}</pre></div>"
|
|
47
|
-
else
|
|
48
|
-
@output.puts " <div class=\"backtrace\"><pre>#{exception[:backtrace]}</pre></div>"
|
|
49
|
-
end
|
|
46
|
+
@output.puts " <div class=\"backtrace\"><pre>#{h exception[:backtrace]}</pre></div>"
|
|
50
47
|
end
|
|
51
48
|
@output.puts extra_content if extra_content
|
|
52
49
|
@output.puts " </div>"
|
|
@@ -54,18 +51,25 @@ module RSpec
|
|
|
54
51
|
end
|
|
55
52
|
|
|
56
53
|
def print_example_pending(description, pending_message)
|
|
57
|
-
@output.puts " <dd class=\"example not_implemented\"
|
|
54
|
+
@output.puts " <dd class=\"example not_implemented\">" \
|
|
55
|
+
"<span class=\"not_implemented_spec_name\">#{h(description)} " \
|
|
56
|
+
"(PENDING: #{h(pending_message)})</span></dd>"
|
|
58
57
|
end
|
|
59
58
|
|
|
60
59
|
def print_summary(duration, example_count, failure_count, pending_count)
|
|
61
|
-
totals =
|
|
60
|
+
totals = String.new(
|
|
61
|
+
"#{example_count} example#{'s' unless example_count == 1}, "
|
|
62
|
+
)
|
|
62
63
|
totals << "#{failure_count} failure#{'s' unless failure_count == 1}"
|
|
63
64
|
totals << ", #{pending_count} pending" if pending_count > 0
|
|
64
65
|
|
|
65
66
|
formatted_duration = "%.5f" % duration
|
|
66
67
|
|
|
67
|
-
@output.puts "<script type=\"text/javascript\">
|
|
68
|
-
|
|
68
|
+
@output.puts "<script type=\"text/javascript\">" \
|
|
69
|
+
"document.getElementById('duration').innerHTML = \"Finished in " \
|
|
70
|
+
"<strong>#{formatted_duration} seconds</strong>\";</script>"
|
|
71
|
+
@output.puts "<script type=\"text/javascript\">" \
|
|
72
|
+
"document.getElementById('totals').innerHTML = \"#{totals}\";</script>"
|
|
69
73
|
@output.puts "</div>"
|
|
70
74
|
@output.puts "</div>"
|
|
71
75
|
@output.puts "</body>"
|
|
@@ -90,13 +94,17 @@ module RSpec
|
|
|
90
94
|
end
|
|
91
95
|
|
|
92
96
|
def make_example_group_header_red(group_id)
|
|
93
|
-
@output.puts " <script type=\"text/javascript\">
|
|
94
|
-
|
|
97
|
+
@output.puts " <script type=\"text/javascript\">" \
|
|
98
|
+
"makeRed('div_group_#{group_id}');</script>"
|
|
99
|
+
@output.puts " <script type=\"text/javascript\">" \
|
|
100
|
+
"makeRed('example_group_#{group_id}');</script>"
|
|
95
101
|
end
|
|
96
102
|
|
|
97
103
|
def make_example_group_header_yellow(group_id)
|
|
98
|
-
@output.puts " <script type=\"text/javascript\">
|
|
99
|
-
|
|
104
|
+
@output.puts " <script type=\"text/javascript\">" \
|
|
105
|
+
"makeYellow('div_group_#{group_id}');</script>"
|
|
106
|
+
@output.puts " <script type=\"text/javascript\">" \
|
|
107
|
+
"makeYellow('example_group_#{group_id}');</script>"
|
|
100
108
|
end
|
|
101
109
|
|
|
102
110
|
private
|
|
@@ -205,6 +213,7 @@ function assign_display_style_for_group(classname, display_flag, subgroup_flag)
|
|
|
205
213
|
}
|
|
206
214
|
}
|
|
207
215
|
EOF
|
|
216
|
+
# rubocop:enable Layout/LineLength
|
|
208
217
|
|
|
209
218
|
GLOBAL_STYLES = <<-EOF
|
|
210
219
|
#rspec-header {
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Core
|
|
3
|
+
module Formatters
|
|
4
|
+
# @api private
|
|
5
|
+
#
|
|
6
|
+
# Extracts code snippets by looking at the backtrace of the passed error
|
|
7
|
+
# and applies synax highlighting and line numbers using html.
|
|
8
|
+
class HtmlSnippetExtractor
|
|
9
|
+
# @private
|
|
10
|
+
module NullConverter
|
|
11
|
+
def self.convert(code)
|
|
12
|
+
%Q(#{code}\n<span class="comment"># Install the coderay gem to get syntax highlighting</span>)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @private
|
|
17
|
+
module CoderayConverter
|
|
18
|
+
def self.convert(code)
|
|
19
|
+
CodeRay.scan(code, :ruby).html(:line_numbers => false)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# rubocop:disable Style/ClassVars
|
|
24
|
+
# @private
|
|
25
|
+
@@converter = NullConverter
|
|
26
|
+
|
|
27
|
+
begin
|
|
28
|
+
require 'coderay'
|
|
29
|
+
RSpec::Support.require_rspec_core 'formatters/syntax_highlighter'
|
|
30
|
+
RSpec::Core::Formatters::SyntaxHighlighter.attempt_to_add_rspec_terms_to_coderay_keywords
|
|
31
|
+
@@converter = CoderayConverter
|
|
32
|
+
# rubocop:disable Lint/HandleExceptions
|
|
33
|
+
rescue LoadError
|
|
34
|
+
# it'll fall back to the NullConverter assigned above
|
|
35
|
+
# rubocop:enable Lint/HandleExceptions
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# rubocop:enable Style/ClassVars
|
|
39
|
+
|
|
40
|
+
# @api private
|
|
41
|
+
#
|
|
42
|
+
# Extract lines of code corresponding to a backtrace.
|
|
43
|
+
#
|
|
44
|
+
# @param backtrace [String] the backtrace from a test failure
|
|
45
|
+
# @return [String] highlighted code snippet indicating where the test
|
|
46
|
+
# failure occured
|
|
47
|
+
#
|
|
48
|
+
# @see #post_process
|
|
49
|
+
def snippet(backtrace)
|
|
50
|
+
raw_code, line = snippet_for(backtrace[0])
|
|
51
|
+
highlighted = @@converter.convert(raw_code)
|
|
52
|
+
post_process(highlighted, line)
|
|
53
|
+
end
|
|
54
|
+
# rubocop:enable Style/ClassVars
|
|
55
|
+
|
|
56
|
+
# @api private
|
|
57
|
+
#
|
|
58
|
+
# Create a snippet from a line of code.
|
|
59
|
+
#
|
|
60
|
+
# @param error_line [String] file name with line number (i.e.
|
|
61
|
+
# 'foo_spec.rb:12')
|
|
62
|
+
# @return [String] lines around the target line within the file
|
|
63
|
+
#
|
|
64
|
+
# @see #lines_around
|
|
65
|
+
def snippet_for(error_line)
|
|
66
|
+
if error_line =~ /(.*):(\d+)/
|
|
67
|
+
file = Regexp.last_match[1]
|
|
68
|
+
line = Regexp.last_match[2].to_i
|
|
69
|
+
[lines_around(file, line), line]
|
|
70
|
+
else
|
|
71
|
+
["# Couldn't get snippet for #{error_line}", 1]
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @api private
|
|
76
|
+
#
|
|
77
|
+
# Extract lines of code centered around a particular line within a
|
|
78
|
+
# source file.
|
|
79
|
+
#
|
|
80
|
+
# @param file [String] filename
|
|
81
|
+
# @param line [Fixnum] line number
|
|
82
|
+
# @return [String] lines around the target line within the file (2 above
|
|
83
|
+
# and 1 below).
|
|
84
|
+
def lines_around(file, line)
|
|
85
|
+
if File.file?(file)
|
|
86
|
+
lines = File.read(file).split("\n")
|
|
87
|
+
min = [0, line - 3].max
|
|
88
|
+
max = [line + 1, lines.length - 1].min
|
|
89
|
+
selected_lines = []
|
|
90
|
+
selected_lines.join("\n")
|
|
91
|
+
lines[min..max].join("\n")
|
|
92
|
+
else
|
|
93
|
+
"# Couldn't get snippet for #{file}"
|
|
94
|
+
end
|
|
95
|
+
rescue SecurityError
|
|
96
|
+
"# Couldn't get snippet for #{file}"
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# @api private
|
|
100
|
+
#
|
|
101
|
+
# Adds line numbers to all lines and highlights the line where the
|
|
102
|
+
# failure occurred using html `span` tags.
|
|
103
|
+
#
|
|
104
|
+
# @param highlighted [String] syntax-highlighted snippet surrounding the
|
|
105
|
+
# offending line of code
|
|
106
|
+
# @param offending_line [Fixnum] line where failure occured
|
|
107
|
+
# @return [String] completed snippet
|
|
108
|
+
def post_process(highlighted, offending_line)
|
|
109
|
+
new_lines = []
|
|
110
|
+
highlighted.split("\n").each_with_index do |line, i|
|
|
111
|
+
new_line = "<span class=\"linenum\">#{offending_line + i - 2}</span>#{line}"
|
|
112
|
+
new_line = "<span class=\"offending\">#{new_line}</span>" if i == 2
|
|
113
|
+
new_lines << new_line
|
|
114
|
+
end
|
|
115
|
+
new_lines.join("\n")
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -6,13 +6,15 @@ module RSpec
|
|
|
6
6
|
module Formatters
|
|
7
7
|
# @private
|
|
8
8
|
class JsonFormatter < BaseFormatter
|
|
9
|
-
Formatters.register self, :message, :dump_summary, :dump_profile, :stop, :close
|
|
9
|
+
Formatters.register self, :message, :dump_summary, :dump_profile, :stop, :seed, :close
|
|
10
10
|
|
|
11
11
|
attr_reader :output_hash
|
|
12
12
|
|
|
13
13
|
def initialize(output)
|
|
14
14
|
super
|
|
15
|
-
@output_hash = {
|
|
15
|
+
@output_hash = {
|
|
16
|
+
:version => RSpec::Core::Version::STRING
|
|
17
|
+
}
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
def message(notification)
|
|
@@ -24,7 +26,8 @@ module RSpec
|
|
|
24
26
|
:duration => summary.duration,
|
|
25
27
|
:example_count => summary.example_count,
|
|
26
28
|
:failure_count => summary.failure_count,
|
|
27
|
-
:pending_count => summary.pending_count
|
|
29
|
+
:pending_count => summary.pending_count,
|
|
30
|
+
:errors_outside_of_examples_count => summary.errors_outside_of_examples_count
|
|
28
31
|
}
|
|
29
32
|
@output_hash[:summary_line] = summary.totals_line
|
|
30
33
|
end
|
|
@@ -44,9 +47,13 @@ module RSpec
|
|
|
44
47
|
end
|
|
45
48
|
end
|
|
46
49
|
|
|
50
|
+
def seed(notification)
|
|
51
|
+
return unless notification.seed_used?
|
|
52
|
+
@output_hash[:seed] = notification.seed
|
|
53
|
+
end
|
|
54
|
+
|
|
47
55
|
def close(_notification)
|
|
48
56
|
output.write @output_hash.to_json
|
|
49
|
-
output.close if IO === output && output != $stdout
|
|
50
57
|
end
|
|
51
58
|
|
|
52
59
|
def dump_profile(profile)
|
|
@@ -58,8 +65,7 @@ module RSpec
|
|
|
58
65
|
# @api private
|
|
59
66
|
def dump_profile_slowest_examples(profile)
|
|
60
67
|
@output_hash[:profile] = {}
|
|
61
|
-
|
|
62
|
-
@output_hash[:profile][:examples] = sorted_examples.map do |example|
|
|
68
|
+
@output_hash[:profile][:examples] = profile.slowest_examples.map do |example|
|
|
63
69
|
format_example(example).tap do |hash|
|
|
64
70
|
hash[:run_time] = example.execution_result.run_time
|
|
65
71
|
end
|
|
@@ -80,12 +86,14 @@ module RSpec
|
|
|
80
86
|
|
|
81
87
|
def format_example(example)
|
|
82
88
|
{
|
|
89
|
+
:id => example.id,
|
|
83
90
|
:description => example.description,
|
|
84
91
|
:full_description => example.full_description,
|
|
85
92
|
:status => example.execution_result.status.to_s,
|
|
86
93
|
:file_path => example.metadata[:file_path],
|
|
87
94
|
:line_number => example.metadata[:line_number],
|
|
88
|
-
:run_time => example.execution_result.run_time
|
|
95
|
+
:run_time => example.execution_result.run_time,
|
|
96
|
+
:pending_message => example.execution_result.pending_message,
|
|
89
97
|
}
|
|
90
98
|
end
|
|
91
99
|
end
|
|
@@ -4,7 +4,7 @@ module RSpec
|
|
|
4
4
|
module Core
|
|
5
5
|
module Formatters
|
|
6
6
|
# @api private
|
|
7
|
-
# Formatter for providing profile output
|
|
7
|
+
# Formatter for providing profile output.
|
|
8
8
|
class ProfileFormatter
|
|
9
9
|
Formatters.register self, :dump_profile
|
|
10
10
|
|
|
@@ -15,14 +15,13 @@ module RSpec
|
|
|
15
15
|
# @private
|
|
16
16
|
attr_reader :output
|
|
17
17
|
|
|
18
|
-
# @method dump_profile
|
|
19
18
|
# @api public
|
|
20
19
|
#
|
|
21
20
|
# This method is invoked after the dumping the summary if profiling is
|
|
22
21
|
# enabled.
|
|
23
22
|
#
|
|
24
|
-
# @param profile [ProfileNotification] containing duration,
|
|
25
|
-
#
|
|
23
|
+
# @param profile [ProfileNotification] containing duration,
|
|
24
|
+
# slowest_examples and slowest_example_groups
|
|
26
25
|
def dump_profile(profile)
|
|
27
26
|
dump_profile_slowest_examples(profile)
|
|
28
27
|
dump_profile_slowest_example_groups(profile)
|
|
@@ -31,11 +30,14 @@ module RSpec
|
|
|
31
30
|
private
|
|
32
31
|
|
|
33
32
|
def dump_profile_slowest_examples(profile)
|
|
34
|
-
@output.puts "\nTop #{profile.slowest_examples.size} slowest
|
|
33
|
+
@output.puts "\nTop #{profile.slowest_examples.size} slowest " \
|
|
34
|
+
"examples (#{Helpers.format_seconds(profile.slow_duration)} " \
|
|
35
|
+
"seconds, #{profile.percentage}% of total time):\n"
|
|
35
36
|
|
|
36
37
|
profile.slowest_examples.each do |example|
|
|
37
38
|
@output.puts " #{example.full_description}"
|
|
38
|
-
@output.puts " #{bold(Helpers.format_seconds(example.execution_result.run_time))}
|
|
39
|
+
@output.puts " #{bold(Helpers.format_seconds(example.execution_result.run_time))} " \
|
|
40
|
+
"#{bold("seconds")} #{format_caller(example.location)}"
|
|
39
41
|
end
|
|
40
42
|
end
|
|
41
43
|
|
|
@@ -53,7 +55,8 @@ module RSpec
|
|
|
53
55
|
end
|
|
54
56
|
|
|
55
57
|
def format_caller(caller_info)
|
|
56
|
-
RSpec.configuration.backtrace_formatter.backtrace_line(
|
|
58
|
+
RSpec.configuration.backtrace_formatter.backtrace_line(
|
|
59
|
+
caller_info.to_s.split(':in `block').first)
|
|
57
60
|
end
|
|
58
61
|
|
|
59
62
|
def bold(text)
|
|
@@ -17,12 +17,12 @@ module RSpec
|
|
|
17
17
|
# @see RSpec::Core::Formatters::BaseTextFormatter
|
|
18
18
|
# @see RSpec::Core::Reporter
|
|
19
19
|
class Protocol
|
|
20
|
-
# @method initialize
|
|
20
|
+
# @method initialize(output)
|
|
21
21
|
# @api public
|
|
22
22
|
#
|
|
23
23
|
# @param output [IO] the formatter output
|
|
24
24
|
|
|
25
|
-
# @method start
|
|
25
|
+
# @method start(notification)
|
|
26
26
|
# @api public
|
|
27
27
|
# @group Suite Notifications
|
|
28
28
|
#
|
|
@@ -33,130 +33,149 @@ module RSpec
|
|
|
33
33
|
# This will only be invoked once, and the next one to be invoked
|
|
34
34
|
# is {#example_group_started}.
|
|
35
35
|
#
|
|
36
|
-
# @param notification [StartNotification]
|
|
36
|
+
# @param notification [Notifications::StartNotification]
|
|
37
37
|
|
|
38
|
-
# @method example_group_started
|
|
38
|
+
# @method example_group_started(notification)
|
|
39
39
|
# @api public
|
|
40
40
|
# @group Group Notifications
|
|
41
41
|
#
|
|
42
|
-
# This method is invoked at the beginning of the execution of each
|
|
42
|
+
# This method is invoked at the beginning of the execution of each
|
|
43
|
+
# example group.
|
|
43
44
|
#
|
|
44
45
|
# The next method to be invoked after this is {#example_passed},
|
|
45
46
|
# {#example_pending}, or {#example_group_finished}.
|
|
46
47
|
#
|
|
47
|
-
# @param notification [GroupNotification] containing example_group
|
|
48
|
+
# @param notification [Notifications::GroupNotification] containing example_group
|
|
49
|
+
# subclass of {ExampleGroup}
|
|
48
50
|
|
|
49
|
-
# @method example_group_finished
|
|
51
|
+
# @method example_group_finished(notification)
|
|
50
52
|
# @api public
|
|
51
53
|
# @group Group Notifications
|
|
52
54
|
#
|
|
53
55
|
# Invoked at the end of the execution of each example group.
|
|
54
56
|
#
|
|
55
|
-
# @param notification [GroupNotification] containing example_group
|
|
57
|
+
# @param notification [Notifications::GroupNotification] containing example_group
|
|
58
|
+
# subclass of {ExampleGroup}
|
|
56
59
|
|
|
57
|
-
# @method example_started
|
|
60
|
+
# @method example_started(notification)
|
|
58
61
|
# @api public
|
|
59
62
|
# @group Example Notifications
|
|
60
63
|
#
|
|
61
64
|
# Invoked at the beginning of the execution of each example.
|
|
62
65
|
#
|
|
63
|
-
# @param notification [ExampleNotification] containing example subclass
|
|
66
|
+
# @param notification [Notifications::ExampleNotification] containing example subclass
|
|
67
|
+
# of {Example}
|
|
64
68
|
|
|
65
|
-
# @method
|
|
69
|
+
# @method example_finished(notification)
|
|
70
|
+
# @api public
|
|
71
|
+
# @group Example Notifications
|
|
72
|
+
#
|
|
73
|
+
# Invoked at the end of the execution of each example.
|
|
74
|
+
#
|
|
75
|
+
# @param notification [Notifications::ExampleNotification] containing example subclass
|
|
76
|
+
# of {Example}
|
|
77
|
+
|
|
78
|
+
# @method example_passed(notification)
|
|
66
79
|
# @api public
|
|
67
80
|
# @group Example Notifications
|
|
68
81
|
#
|
|
69
82
|
# Invoked when an example passes.
|
|
70
83
|
#
|
|
71
|
-
# @param notification [ExampleNotification] containing example subclass
|
|
84
|
+
# @param notification [Notifications::ExampleNotification] containing example subclass
|
|
85
|
+
# of {Example}
|
|
72
86
|
|
|
73
|
-
# @method example_pending
|
|
87
|
+
# @method example_pending(notification)
|
|
74
88
|
# @api public
|
|
75
89
|
# @group Example Notifications
|
|
76
90
|
#
|
|
77
91
|
# Invoked when an example is pending.
|
|
78
92
|
#
|
|
79
|
-
# @param notification [ExampleNotification] containing example subclass
|
|
93
|
+
# @param notification [Notifications::ExampleNotification] containing example subclass
|
|
94
|
+
# of {Example}
|
|
80
95
|
|
|
81
|
-
# @method example_failed
|
|
96
|
+
# @method example_failed(notification)
|
|
82
97
|
# @api public
|
|
83
98
|
# @group Example Notifications
|
|
84
99
|
#
|
|
85
100
|
# Invoked when an example fails.
|
|
86
101
|
#
|
|
87
|
-
# @param notification [ExampleNotification] containing example subclass
|
|
102
|
+
# @param notification [Notifications::ExampleNotification] containing example subclass
|
|
103
|
+
# of {Example}
|
|
88
104
|
|
|
89
|
-
# @method message
|
|
105
|
+
# @method message(notification)
|
|
90
106
|
# @api public
|
|
91
107
|
# @group Suite Notifications
|
|
92
108
|
#
|
|
93
109
|
# Used by the reporter to send messages to the output stream.
|
|
94
110
|
#
|
|
95
|
-
# @param notification [MessageNotification] containing message
|
|
111
|
+
# @param notification [Notifications::MessageNotification] containing message
|
|
96
112
|
|
|
97
|
-
# @method stop
|
|
113
|
+
# @method stop(notification)
|
|
98
114
|
# @api public
|
|
99
115
|
# @group Suite Notifications
|
|
100
116
|
#
|
|
101
|
-
# Invoked after all examples have executed, before dumping post-run
|
|
117
|
+
# Invoked after all examples have executed, before dumping post-run
|
|
118
|
+
# reports.
|
|
102
119
|
#
|
|
103
|
-
# @param notification [NullNotification]
|
|
120
|
+
# @param notification [Notifications::NullNotification]
|
|
104
121
|
|
|
105
|
-
# @method start_dump
|
|
122
|
+
# @method start_dump(notification)
|
|
106
123
|
# @api public
|
|
107
124
|
# @group Suite Notifications
|
|
108
125
|
#
|
|
109
|
-
# This method is invoked after all of the examples have executed. The
|
|
110
|
-
# to be invoked after this one is {#dump_failures}
|
|
111
|
-
# (BaseTextFormatter then calls {#
|
|
126
|
+
# This method is invoked after all of the examples have executed. The
|
|
127
|
+
# next method to be invoked after this one is {#dump_failures}
|
|
128
|
+
# (BaseTextFormatter then calls {#dump_failures} once for each failed
|
|
129
|
+
# example).
|
|
112
130
|
#
|
|
113
|
-
# @param notification [NullNotification]
|
|
131
|
+
# @param notification [Notifications::NullNotification]
|
|
114
132
|
|
|
115
|
-
# @method dump_failures
|
|
133
|
+
# @method dump_failures(notification)
|
|
116
134
|
# @api public
|
|
117
135
|
# @group Suite Notifications
|
|
118
136
|
#
|
|
119
137
|
# Dumps detailed information about each example failure.
|
|
120
138
|
#
|
|
121
|
-
# @param notification [NullNotification]
|
|
139
|
+
# @param notification [Notifications::NullNotification]
|
|
122
140
|
|
|
123
|
-
# @method dump_summary
|
|
141
|
+
# @method dump_summary(summary)
|
|
124
142
|
# @api public
|
|
125
143
|
# @group Suite Notifications
|
|
126
144
|
#
|
|
127
|
-
# This method is invoked after the dumping of examples and failures.
|
|
128
|
-
# is assigned to a corresponding attribute.
|
|
145
|
+
# This method is invoked after the dumping of examples and failures.
|
|
146
|
+
# Each parameter is assigned to a corresponding attribute.
|
|
129
147
|
#
|
|
130
|
-
# @param summary [SummaryNotification] containing duration,
|
|
131
|
-
#
|
|
148
|
+
# @param summary [Notifications::SummaryNotification] containing duration,
|
|
149
|
+
# example_count, failure_count and pending_count
|
|
132
150
|
|
|
133
|
-
# @method dump_profile
|
|
151
|
+
# @method dump_profile(profile)
|
|
134
152
|
# @api public
|
|
135
153
|
# @group Suite Notifications
|
|
136
154
|
#
|
|
137
155
|
# This method is invoked after the dumping the summary if profiling is
|
|
138
156
|
# enabled.
|
|
139
157
|
#
|
|
140
|
-
# @param profile [ProfileNotification] containing duration,
|
|
141
|
-
#
|
|
158
|
+
# @param profile [Notifications::ProfileNotification] containing duration,
|
|
159
|
+
# slowest_examples and slowest_example_groups
|
|
142
160
|
|
|
143
|
-
# @method dump_pending
|
|
161
|
+
# @method dump_pending(notification)
|
|
144
162
|
# @api public
|
|
145
163
|
# @group Suite Notifications
|
|
146
164
|
#
|
|
147
|
-
# Outputs a report of pending examples.
|
|
165
|
+
# Outputs a report of pending examples. This gets invoked
|
|
148
166
|
# after the summary if option is set to do so.
|
|
149
167
|
#
|
|
150
|
-
# @param notification [NullNotification]
|
|
168
|
+
# @param notification [Notifications::NullNotification]
|
|
151
169
|
|
|
152
|
-
# @method close
|
|
170
|
+
# @method close(notification)
|
|
153
171
|
# @api public
|
|
154
172
|
# @group Suite Notifications
|
|
155
173
|
#
|
|
156
|
-
# Invoked at the
|
|
157
|
-
# up
|
|
174
|
+
# Invoked at the end of a suite run. Allows the formatter to do any
|
|
175
|
+
# tidying up, but be aware that formatter output streams may be used
|
|
176
|
+
# elsewhere so don't actually close them.
|
|
158
177
|
#
|
|
159
|
-
# @param notification [NullNotification]
|
|
178
|
+
# @param notification [Notifications::NullNotification]
|
|
160
179
|
end
|
|
161
180
|
end
|
|
162
181
|
end
|