[DRE-maint] Bug#968629: ruby-diff-lcs breaks ruby-rspec autopkgtest: loads of deltas

Paul Gevers elbrus at debian.org
Tue Aug 18 20:42:45 BST 2020


Source: ruby-diff-lcs, ruby-rspec
Control: found -1 ruby-diff-lcs/1.4.4-1
Control: found -1 ruby-rspec/3.9.0c1e0m1s2-1
Severity: serious
Tags: sid bullseye
X-Debbugs-CC: debian-ci at lists.debian.org
User: debian-ci at lists.debian.org
Usertags: breaks needs-update

Dear maintainer(s),

With a recent upload of ruby-diff-lcs the autopkgtest of ruby-rspec
fails in testing when that autopkgtest is run with the binary packages
of ruby-diff-lcs from unstable. It passes when run with only packages
from testing. In tabular form:

                       pass            fail
ruby-diff-lcs          from testing    1.4.4-1
ruby-rspec             from testing    3.9.0c1e0m1s2-1
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of ruby-diff-lcs to
testing [1]. Due to the nature of this issue, I filed this bug report
against both packages. Can you please investigate the situation and
reassign the bug to the right package?

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=ruby-diff-lcs

https://ci.debian.net/data/autopkgtest/testing/amd64/r/ruby-rspec/6662952/log.gz

autopkgtest [15:36:33]: test gem2deb-test-runner: [-----------------------

┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby2.7
      │
└──────────────────────────────────────────────────────────────────────────────┘

GEM_PATH= ruby2.7 -e gem\ \"rspec\"
GEM_PATH= ruby2.7 -e gem\ \"rspec-core\"
GEM_PATH= ruby2.7 -e gem\ \"rspec-expectations\"
GEM_PATH= ruby2.7 -e gem\ \"rspec-mocks\"
GEM_PATH= ruby2.7 -e gem\ \"rspec-support\"

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby2.7 from debian/ruby-tests.rb
      │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=. GEM_PATH= ruby2.7 debian/ruby-tests.rb
cd rspec-core
mv lib lib.off

∙∙∙∙∙∙∙∙∙∙∙∙∙∙
∙ rspec-core ∙
∙∙∙∙∙∙∙∙∙∙∙∙∙∙

/usr/bin/ruby2.7 -S rspec spec/integration/order_spec.rb
spec/integration/suite_hooks_errors_spec.rb
spec/integration/output_stream_spec.rb
spec/integration/filtering_spec.rb spec/integration/bisect_spec.rb
spec/integration/bisect_runners_spec.rb
spec/integration/fail_if_no_examples_spec.rb
spec/integration/spec_file_load_errors_spec.rb
spec/integration/persistence_failures_spec.rb
spec/integration/failed_line_detection_spec.rb
spec/rspec/core/suite_hooks_spec.rb
spec/rspec/core/metadata_filter_spec.rb
spec/rspec/core/hooks_filtering_spec.rb
spec/rspec/core/shared_example_group_spec.rb
spec/rspec/core/hooks_spec.rb spec/rspec/core/formatters/helpers_spec.rb
spec/rspec/core/formatters/failure_list_formatter_spec.rb
spec/rspec/core/formatters/profile_formatter_spec.rb
spec/rspec/core/formatters/syntax_highlighter_spec.rb
spec/rspec/core/formatters/console_codes_spec.rb
spec/rspec/core/formatters/html_snippet_extractor_spec.rb
spec/rspec/core/formatters/base_text_formatter_spec.rb
spec/rspec/core/formatters/progress_formatter_spec.rb
spec/rspec/core/formatters/snippet_extractor_spec.rb
spec/rspec/core/formatters/documentation_formatter_spec.rb
spec/rspec/core/formatters/fallback_message_formatter_spec.rb
spec/rspec/core/formatters/json_formatter_spec.rb
spec/rspec/core/formatters/deprecation_formatter_spec.rb
spec/rspec/core/formatters/html_formatter_spec.rb
spec/rspec/core/formatters/exception_presenter_spec.rb
spec/rspec/core/configuration/only_failures_support_spec.rb
spec/rspec/core/ruby_project_spec.rb spec/rspec/core/formatters_spec.rb
spec/rspec/core/drb_spec.rb spec/rspec/core/option_parser_spec.rb
spec/rspec/core/ordering_spec.rb spec/rspec/core/set_spec.rb
spec/rspec/core/project_initializer_spec.rb
spec/rspec/core/example_status_persister_spec.rb
spec/rspec/core/pending_spec.rb spec/rspec/core/rspec_matchers_spec.rb
spec/rspec/core/pending_example_spec.rb spec/rspec/core/example_spec.rb
spec/rspec/core/profiler_spec.rb spec/rspec/core/metadata_spec.rb
spec/rspec/core/filter_manager_spec.rb
spec/rspec/core/did_you_mean_spec.rb
spec/rspec/core/backtrace_formatter_spec.rb
spec/rspec/core/output_wrapper_spec.rb spec/rspec/core/reporter_spec.rb
spec/rspec/core/example_execution_result_spec.rb
spec/rspec/core/memoized_helpers_spec.rb
spec/rspec/core/invocations_spec.rb spec/rspec/core/dsl_spec.rb
spec/rspec/core/warnings_spec.rb
spec/rspec/core/aggregate_failures_spec.rb
spec/rspec/core/filterable_item_repository_spec.rb
spec/rspec/core/rake_task_spec.rb
spec/rspec/core/example_group_constants_spec.rb
spec/rspec/core/resources/a_spec.rb
spec/rspec/core/resources/acceptance/foo_spec.rb
spec/rspec/core/runner_spec.rb spec/rspec/core/world_spec.rb
spec/rspec/core/configuration_options_spec.rb
spec/rspec/core/shared_context_spec.rb
spec/rspec/core/bisect/server_spec.rb
spec/rspec/core/bisect/utilities_spec.rb
spec/rspec/core/bisect/shell_runner_spec.rb
spec/rspec/core/bisect/example_minimizer_spec.rb
spec/rspec/core/bisect/shell_command_spec.rb
spec/rspec/core/bisect/coordinator_spec.rb
spec/rspec/core/failed_example_notification_spec.rb
spec/rspec/core/example_group_spec.rb spec/rspec/core/notifications_spec.rb
Run options: exclude {:ruby=>#<Proc: ./spec/spec_helper.rb:99>}

Randomized with seed 28432
..........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.........................................................................................................................................................................................................................................................................................................................................................................................................................................................

Pending: (Failures listed here are expected and do not affect your
suite's status)

  1) RSpec::Core::Formatters::Helpers format duration with mathn loaded
returns 'x minutes xx.x seconds' formatted string
     # lib/mathn.rb is deprecated in Ruby 2.2
     # ./spec/rspec/core/formatters/helpers_spec.rb:64

  2) RSpec::Core::Formatters::HtmlFormatter produced HTML with mathn
loaded is identical to the one we designed manually
     # lib/mathn.rb is deprecated in Ruby 2.2
     # ./spec/rspec/core/formatters/html_formatter_spec.rb:68

  3) RSpec::Core::Metadata for an example points :example_group to the
same hash object as other examples in the same group
     # Cannot maintain this and provide full `:example_group` backwards
compatibility (see GH #1490):(
     Failure/Error: expect(b[:description]).to eq("new description")

       expected: "new description"
            got: "group"

       (compared using ==)
     # ./spec/rspec/core/metadata_spec.rb:140:in `block (3 levels) in
<module:Core>'
     # ./spec/support/sandboxing.rb:16:in `block (3 levels) in <top
(required)>'
     # ./spec/support/sandboxing.rb:7:in `block (2 levels) in <top
(required)>'

Finished in 10.21 seconds (files took 0.76061 seconds to load)
1810 examples, 0 failures, 3 pending

Randomized with seed 28432

mv lib.off lib
cd -
cd rspec-expectations
mv lib lib.off

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
∙ rspec-expectations ∙
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

/usr/bin/ruby2.7 -S rspec spec/rspec/matchers/english_phrasing_spec.rb
spec/rspec/matchers/expecteds_for_multiple_diffs_spec.rb
spec/rspec/matchers/aliases_spec.rb spec/rspec/matchers/legacy_spec.rb
spec/rspec/matchers/composable_spec.rb
spec/rspec/matchers/define_negated_matcher_spec.rb
spec/rspec/matchers/dsl_spec.rb
spec/rspec/matchers/built_in/be_instance_of_spec.rb
spec/rspec/matchers/built_in/be_spec.rb
spec/rspec/matchers/built_in/throw_symbol_spec.rb
spec/rspec/matchers/built_in/start_and_end_with_spec.rb
spec/rspec/matchers/built_in/include_spec.rb
spec/rspec/matchers/built_in/be_kind_of_spec.rb
spec/rspec/matchers/built_in/satisfy_spec.rb
spec/rspec/matchers/built_in/all_spec.rb
spec/rspec/matchers/built_in/exist_spec.rb
spec/rspec/matchers/built_in/equal_spec.rb
spec/rspec/matchers/built_in/eq_spec.rb
spec/rspec/matchers/built_in/respond_to_spec.rb
spec/rspec/matchers/built_in/captures_spec.rb
spec/rspec/matchers/built_in/contain_exactly_spec.rb
spec/rspec/matchers/built_in/base_matcher_spec.rb
spec/rspec/matchers/built_in/have_attributes_spec.rb
spec/rspec/matchers/built_in/compound_spec.rb
spec/rspec/matchers/built_in/be_between_spec.rb
spec/rspec/matchers/built_in/raise_error_spec.rb
spec/rspec/matchers/built_in/match_spec.rb
spec/rspec/matchers/built_in/cover_spec.rb
spec/rspec/matchers/built_in/be_within_spec.rb
spec/rspec/matchers/built_in/output_spec.rb
spec/rspec/matchers/built_in/eql_spec.rb
spec/rspec/matchers/built_in/yield_spec.rb
spec/rspec/matchers/built_in/has_spec.rb
spec/rspec/matchers/built_in/change_spec.rb
spec/rspec/matchers/built_in/operators_spec.rb
spec/rspec/matchers/aliased_matcher_spec.rb
spec/rspec/matchers/description_generation_spec.rb
spec/rspec/matchers_spec.rb spec/rspec/expectations_spec.rb
spec/rspec/expectations/expectation_target_spec.rb
spec/rspec/expectations/handler_spec.rb
spec/rspec/expectations/minitest_integration_spec.rb
spec/rspec/expectations/fail_with_spec.rb
spec/rspec/expectations/extensions/kernel_spec.rb
spec/rspec/expectations/failure_aggregator_spec.rb
spec/rspec/expectations/block_snippet_extractor_spec.rb
spec/rspec/expectations/configuration_spec.rb
spec/rspec/expectations/syntax_spec.rb

Randomized with seed 14832
.....................................F.......................................................F...........................................................................................................................................................................................................................................................................................................................fatal:
not a git repository (or any of the parent directories): .git
......................................................................F..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F.......................................................................................................................................................................................................................................................................................................................................................F..........................*****......................F.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F.................F.........................................

Pending: (Failures listed here are expected and do not affect your
suite's status)

  1) #include matcher expect(...).to include(with_one_arg) for a target
that can pass for a hash behaves like a Hash target fails if target does
not include expected
     # around hook at ./spec/rspec/matchers/built_in/include_spec.rb:218
did not execute the example
     # ./spec/rspec/matchers/built_in/include_spec.rb:58

  2) #include matcher expect(...).to include(with_one_arg) for a target
that can pass for a hash behaves like a Hash target provides a valid diff
     # around hook at ./spec/rspec/matchers/built_in/include_spec.rb:218
did not execute the example
     # ./spec/rspec/matchers/built_in/include_spec.rb:77

  3) #include matcher expect(...).to include(with_one_arg) for a target
that can pass for a hash behaves like a Hash target fails if target
doesn't have a key and we expect nil
     # around hook at ./spec/rspec/matchers/built_in/include_spec.rb:218
did not execute the example
     # ./spec/rspec/matchers/built_in/include_spec.rb:65

  4) #include matcher expect(...).to include(with_one_arg) for a target
that can pass for a hash behaves like a Hash target works even when an
entry in the hash overrides #send
     # around hook at ./spec/rspec/matchers/built_in/include_spec.rb:218
did not execute the example
     # ./spec/rspec/matchers/built_in/include_spec.rb:71

  5) #include matcher expect(...).to include(with_one_arg) for a target
that can pass for a hash behaves like a Hash target passes if target has
the expected as a key
     # around hook at ./spec/rspec/matchers/built_in/include_spec.rb:218
did not execute the example
     # ./spec/rspec/matchers/built_in/include_spec.rb:54

Failures:

  1) RSpec::Expectations#fail_with with --color tells the differ to use
color
     Failure/Error:
       expect {
         RSpec::Expectations.fail_with "message", actual, expected
       }.to fail_with("message\nDiff:#{expected_diff}")

       expected RSpec::Expectations::ExpectationNotMetError with
"message\nDiff:\e[0m\n\e[0m\e[34m@@ -1,2 +1,2 @@\n\e[0m\e[31m-foo bang
baz\n\e[0m\e[32m+foo bar baz\n\e[0m", got
#<RSpec::Expectations::ExpectationNotMetError: message
       Diff:
       @@ -1 +1 @@
       -foo bang baz
       +foo bar baz
       > with backtrace:
         # ./spec/rspec/expectations/fail_with_spec.rb:68:in `block (3
levels) in <top (required)>'
         # ./spec/rspec/expectations/fail_with_spec.rb:67:in `block (2
levels) in <top (required)>'
     # ./spec/rspec/expectations/fail_with_spec.rb:67:in `block (2
levels) in <top (required)>'

  2) RSpec::Matchers::DSL::Matcher handles multiline string diffs
     Failure/Error: expect(diff).to eq "Diff:\n@@ -1,3 +1,3
@@\n-line1\n+LINE1\nline2\n"

       expected: "Diff:\n@@ -1,3 +1,3 @@\n-line1\n+LINE1\nline2\n"
            got: "Diff:\n@@ -1 +1 @@\n-line1\n+LINE1\n"

       (compared using ==)

       Diff:

       @@ -1,6 +1,5 @@
        Diff:
       -@@ -1,3 +1,3 @@
       +@@ -1 +1 @@
        -line1
        +LINE1
       -line2
     # ./spec/rspec/matchers/dsl_spec.rb:476:in `block (2 levels) in
<module:DSL>'

  3) RSpec::Expectations#fail_with with matchers uses matcher
descriptions in place of matchers in diffs
     Failure/Error:
       expect {
         RSpec::Expectations.fail_with "message", actual, expected
       }.to fail_with("message\nDiff:#{expected_diff}")

       expected RSpec::Expectations::ExpectationNotMetError with
"message\nDiff:\n@@ -1,2 +1,2 @@\n-[\"poo\", \"car\"]\n+[(a string
matching /foo/), (a string matching /bar/)]\n", got
#<RSpec::Expectations::ExpectationNotMetError: message
       Diff:
       @@ -1 +1 @@
       -["poo", "car"]
       +[(a string matching /foo/), (a string matching /bar/)]
       > with backtrace:
         # ./spec/rspec/expectations/fail_with_spec.rb:52:in `block (3
levels) in <top (required)>'
         # ./spec/rspec/expectations/fail_with_spec.rb:51:in `block (2
levels) in <top (required)>'
     # ./spec/rspec/expectations/fail_with_spec.rb:51:in `block (2
levels) in <top (required)>'

  4) expect(...).to match(expected) provides a diff on failure
     Failure/Error: expect { expect("foo").to match(/bar/) }.to
fail_with(failure_message_that_includes_diff)

       expected RSpec::Expectations::ExpectationNotMetError with message
matching /
       \s*Diff:
       \s*@@ -1,2 \+1,2 @@
       \s*-\/bar\/
       \s*\+"foo"/, got #<RSpec::Expectations::ExpectationNotMetError:
expected "foo" to match /bar/
       Diff:
       @@ -1 +1 @@
       -/bar/
       +"foo"
       > with backtrace:
         # ./spec/rspec/matchers/built_in/match_spec.rb:75:in `block (3
levels) in <top (required)>'
         # ./spec/rspec/matchers/built_in/match_spec.rb:75:in `block (2
levels) in <top (required)>'
     # ./spec/rspec/matchers/built_in/match_spec.rb:75:in `block (2
levels) in <top (required)>'

  5) #include matcher expect(...).to include(with_one_arg) for a hash
target behaves like a Hash target provides a valid diff
     Failure/Error:
       expect {
         expect(build_target(:foo => 1, :bar => 2)).to include(:foo =>
1, :bar => 3)
       }.to fail_including(failure_string)

       expected RSpec::Expectations::ExpectationNotMetError with a
string including "Diff:\n@@ -1,3 +1,3 @@\n-:bar => 3,\n+:bar => 2,\n
:foo => 1,", got #<RSpec::Expectations::ExpectationNotMetError: expected
{:bar => 2, :foo => 1} to include {:bar => 3}
       Diff:
       @@ -1 +1 @@
       -:bar => 3,
       +:bar => 2,
       > with backtrace:
         # ./spec/rspec/matchers/built_in/include_spec.rb:100:in `block
(4 levels) in <top (required)>'
         # ./spec/rspec/matchers/built_in/include_spec.rb:99:in `block
(3 levels) in <top (required)>'
     Shared Example Group: "a Hash target" called from
./spec/rspec/matchers/built_in/include_spec.rb:196
     # ./spec/rspec/matchers/built_in/include_spec.rb:99:in `block (3
levels) in <top (required)>'

  6) #include matcher expect(...).to include(with, multiple, args) for
an array target correctly diffs lists of hashes
     Failure/Error:
       expect {
         expect([
           { :number => 1 },
           { :number => 2 },
           { :number => 3 }
         ]).to include(
           { :number => 1 },
           { :number => 0 },
           { :number => 3 }
         )

       expected RSpec::Expectations::ExpectationNotMetError with a
string including "Diff:\n@@ -1,2 +1,2 @@\n-[{:number => 1}, {:number =>
0}, {:number => 3}]\n+[{:number => 1}, {:number => 2}, {:number => 3}]",
got #<RSpec::Expectations::ExpectationNotMetError: expected [{:number =>
1}, {:number => 2}, {:number => ...@ -1 +1 @@
       -[{:number=>1}, {:number=>0}, {:number=>3}]
       +[{:number=>1}, {:number=>2}, {:number=>3}]
       > with backtrace:
         # ./spec/rspec/matchers/built_in/include_spec.rb:289:in `block
(5 levels) in <top (required)>'
         # ./spec/rspec/matchers/built_in/include_spec.rb:288:in `block
(4 levels) in <top (required)>'
     # ./spec/rspec/matchers/built_in/include_spec.rb:288:in `block (4
levels) in <top (required)>'

  7) #have_attributes matcher expect(...).to
have_attributes(with_one_attribute) diffs the attributes received with
those expected
     Failure/Error:
       expect {
         expect(person).to have_attributes(:name => wrong_name)
       }.to fail_including(expected_diff)

       expected RSpec::Expectations::ExpectationNotMetError with a
string including "@@ -1,2 +1,2 @@\n-:name => \"Wrong Name\",\n+:name =>
\"Correct name\",", got #<RSpec::Expectations::ExpectationNotMetError:
expected #<struct Person name="Correct name", age=33> ...utes {:name =>
"Correct name"}
       Diff:
       @@ -1 +1 @@
       -:name => "Wrong Name",
       +:name => "Correct name",
       > with backtrace:
         # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:61:in
`block (4 levels) in <top (required)>'
         # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:60:in
`block (3 levels) in <top (required)>'
     # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:60:in
`block (3 levels) in <top (required)>'

  8) #have_attributes matcher expect(...).to
have_attributes(with_multiple_attributes) diffs the attributes received
with those expected
     Failure/Error:
       expect {
         expect(person).to have_attributes(:name => correct_name, :age
=> wrong_age)
       }.to fail_including(expected_diff)

       expected RSpec::Expectations::ExpectationNotMetError with a
string including "@@ -1,3 +1,3 @@\n-:age => 11,\n+:age => 33,\n :name =>
\"Correct name\",", got #<RSpec::Expectations::ExpectationNotMetError:
expected #<struct Person name="Correct name", age=33> ...t had
attributes {:age => 33, :name => "Correct name"}
       Diff:
       @@ -1 +1 @@
       -:age => 11,
       +:age => 33,
       > with backtrace:
         # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:160:in
`block (4 levels) in <top (required)>'
         # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:159:in
`block (3 levels) in <top (required)>'
     # ./spec/rspec/matchers/built_in/have_attributes_spec.rb:159:in
`block (3 levels) in <top (required)>'

Finished in 2.18 seconds (files took 0.46385 seconds to load)
2262 examples, 8 failures, 5 pending

Failed examples:

rspec ./spec/rspec/expectations/fail_with_spec.rb:62 #
RSpec::Expectations#fail_with with --color tells the differ to use color
rspec ./spec/rspec/matchers/dsl_spec.rb:459 #
RSpec::Matchers::DSL::Matcher handles multiline string diffs
rspec ./spec/rspec/expectations/fail_with_spec.rb:39 #
RSpec::Expectations#fail_with with matchers uses matcher descriptions in
place of matchers in diffs
rspec ./spec/rspec/matchers/built_in/match_spec.rb:66 # expect(...).to
match(expected) provides a diff on failure
rspec ./spec/rspec/matchers/built_in/include_spec.rb[1:2:7:1:5] #
#include matcher expect(...).to include(with_one_arg) for a hash target
behaves like a Hash target provides a valid diff
rspec ./spec/rspec/matchers/built_in/include_spec.rb:285 # #include
matcher expect(...).to include(with, multiple, args) for an array target
correctly diffs lists of hashes
rspec ./spec/rspec/matchers/built_in/have_attributes_spec.rb:51 #
#have_attributes matcher expect(...).to
have_attributes(with_one_attribute) diffs the attributes received with
those expected
rspec ./spec/rspec/matchers/built_in/have_attributes_spec.rb:149 #
#have_attributes matcher expect(...).to
have_attributes(with_multiple_attributes) diffs the attributes received
with those expected

Randomized with seed 14832

mv lib.off lib
cd -
cd rspec-mocks
mv lib lib.off

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
∙ rspec-mocks ∙
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

/usr/bin/ruby2.7 -S rspec
spec/rspec/mocks/hash_including_matcher_spec.rb
spec/rspec/mocks/stash_spec.rb spec/rspec/mocks/mutate_const_spec.rb
spec/rspec/mocks/stubbed_message_expectations_spec.rb
spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb
spec/rspec/mocks/multiple_return_value_spec.rb
spec/rspec/mocks/reraising_eager_raises_spec.rb
spec/rspec/mocks/matchers/have_received_spec.rb
spec/rspec/mocks/matchers/receive_messages_spec.rb
spec/rspec/mocks/matchers/receive_message_chain_spec.rb
spec/rspec/mocks/matchers/receive_spec.rb spec/rspec/mocks/space_spec.rb
spec/rspec/mocks/to_ary_spec.rb spec/rspec/mocks/standalone_spec.rb
spec/rspec/mocks/failure_notification_spec.rb
spec/rspec/mocks/order_group_spec.rb
spec/rspec/mocks/test_double_spec.rb
spec/rspec/mocks/mock_expectation_error_spec.rb
spec/rspec/mocks/nil_expectation_warning_spec.rb
spec/rspec/mocks/partial_double_spec.rb
spec/rspec/mocks/at_least_spec.rb
spec/rspec/mocks/argument_matchers_spec.rb
spec/rspec/mocks/any_instance/message_chains_spec.rb
spec/rspec/mocks/double_spec.rb spec/rspec/mocks/mock_ordering_spec.rb
spec/rspec/mocks/twice_counts_spec.rb
spec/rspec/mocks/null_object_double_spec.rb
spec/rspec/mocks/combining_implementation_instructions_spec.rb
spec/rspec/mocks/message_expectation_string_representation_spec.rb
spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb
spec/rspec/mocks/modifying_invoked_expectations_spec.rb
spec/rspec/mocks/marshal_extension_spec.rb
spec/rspec/mocks/expiration_spec.rb spec/rspec/mocks/and_return_spec.rb
spec/rspec/mocks/and_wrap_original_spec.rb
spec/rspec/mocks/formatting_spec.rb
spec/rspec/mocks/precise_counts_spec.rb spec/rspec/mocks/at_most_spec.rb
spec/rspec/mocks/and_yield_spec.rb spec/rspec/mocks/stub_spec.rb
spec/rspec/mocks/configuration_spec.rb
spec/rspec/mocks/and_call_original_spec.rb
spec/rspec/mocks/error_generator_spec.rb
spec/rspec/mocks/thrice_counts_spec.rb
spec/rspec/mocks/before_all_spec.rb
spec/rspec/mocks/array_including_matcher_spec.rb
spec/rspec/mocks/once_counts_spec.rb spec/rspec/mocks/stub_chain_spec.rb
spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb
spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb
spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb
spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb
spec/rspec/mocks/verifying_doubles/naming_spec.rb
spec/rspec/mocks/verifying_doubles/object_double_spec.rb
spec/rspec/mocks/verifying_doubles/construction_spec.rb
spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb
spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb
spec/rspec/mocks/any_instance_spec.rb spec/rspec/mocks/syntax_spec.rb
spec/rspec/mocks/stub_implementation_spec.rb
spec/rspec/mocks/example_methods_spec.rb
spec/rspec/mocks/should_syntax_spec.rb spec/rspec/mocks/spy_spec.rb
spec/rspec/mocks/diffing_spec.rb
spec/rspec/mocks/instance_method_stasher_spec.rb
spec/rspec/mocks/hash_excluding_matcher_spec.rb
spec/rspec/mocks/serialization_spec.rb spec/rspec/mocks/methods_spec.rb
spec/rspec/mocks/block_return_value_spec.rb spec/rspec/mocks_spec.rb
Run options: exclude {:ordered_and_vague_counts_unsupported=>true}

Randomized with seed 15277
............................................................................................................................................................................................................................................................................................................................................................................................*..................F....................*.....................................................................................FFF.F.....F..................................................................................................................................................................*...........................................................................................................................................................................................................................................*...................*................................................fatal:
not a git repository (or any of the parent directories): .git
............................................................................................................................................................................................................................................................................................................................................................................................................................................**............................................................................................................................................................................................................................................................................................

Pending: (Failures listed here are expected and do not affect your
suite's status)

  1) RSpec::Mocks::Double#and_yield with eval context as block argument
and yielded arguments that are optional yields the default argument when
the argument is not given
     # Not sure how to achieve this yet. See rspec/rspec-mocks#714 and
rspec/rspec-support#85.
     Got 2 failures:

     1.1) Failure/Error: eval("object.a_message { |receiver=default_arg|
receiver.bar }")
            #<Object:0x0000562dd512c5b0> yielded || to block with arity of 1
          # (eval):1:in `block (6 levels) in <top (required)>'
          # ./spec/rspec/mocks/and_yield_spec.rb:111:in `eval'
          # ./spec/rspec/mocks/and_yield_spec.rb:111:in `block (6
levels) in <top (required)>'

     1.2) Failure/Error: expect(default_arg).to receive(:bar)

            (#<Object:0x0000562dd512c5d8>).bar(*(any args))
                expected: 1 time with any arguments
                received: 0 times with any arguments
          # ./spec/rspec/mocks/and_yield_spec.rb:109:in `block (6
levels) in <top (required)>'

  2) Reraising eager raises during the verify step when an expectation
is called out of order reraises during verification
     # Says bar was called 0 times when it was, see: http://git.io/pjTq
     Failure/Error: expect { verify_all }.to fail_with(/received :bar
out of order/)
       expected RSpec::Mocks::MockExpectationError with message matching
/received :bar out of order/ but nothing was raised
     # ./spec/rspec/mocks/reraising_eager_raises_spec.rb:105:in `block
(4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/reraising_eager_raises_spec.rb:100:in `block
(3 levels) in <top (required)>'

  3) RSpec::Mocks::Matchers::Receive expect_any_instance_of(...).to
receive behaves like an expect syntax expectation reports the line
number of expectation of unreceived message
     # No reason given
     Failure/Error:
       expect {
         verify_all
       }.to raise_error { |e|
         expect(e.backtrace.first).to
match(/#{File.basename(__FILE__)}:#{expected_error_line}/)
       }

       expected
"/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in
`block in <module:Support>'" to match /receive_spec.rb:165/
       Diff:
       @@ -1 +1 @@
       -/receive_spec.rb:165/

+"/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in
`block in <module:Support>'"
     Shared Example Group: "an expect syntax expectation" called from
./spec/rspec/mocks/matchers/receive_spec.rb:464
     # ./spec/rspec/mocks/matchers/receive_spec.rb:167:in `block (3
levels) in <module:Mocks>'

  4) receive_message_chain with only the expect syntax enabled works
with and_call_original
     # See
https://github.com/rspec/rspec-mocks/pull/467#issuecomment-28631621
     Got 2 failures:

     4.1) Failure/Error: expect(list).to receive_message_chain(:to_a,
:length).and_call_original
            #<Double (anonymous)> is a pure test double.
`and_call_original` is only available on a partial double.
          #
./spec/rspec/mocks/matchers/receive_message_chain_spec.rb:69:in `block
(3 levels) in <module:Matchers>'

     4.2) Failure/Error: expect(list).to receive_message_chain(:to_a,
:length).and_call_original

            ([1, 2, 3]).to_a(*(any args))
                expected: 1 time with any arguments
                received: 0 times with any arguments
          #
./spec/rspec/mocks/matchers/receive_message_chain_spec.rb:69:in `block
(3 levels) in <module:Matchers>'

  5) receive_message_chain with only the expect syntax enabled fails
with and_call_original when the entire chain is not called
     # See
https://github.com/rspec/rspec-mocks/pull/467#issuecomment-28631621
     Got 2 failures:

     5.1) Failure/Error: expect(list).to receive_message_chain(:to_a,
:length).and_call_original
            #<Double (anonymous)> is a pure test double.
`and_call_original` is only available on a partial double.
          #
./spec/rspec/mocks/matchers/receive_message_chain_spec.rb:75:in `block
(3 levels) in <module:Matchers>'

     5.2) Failure/Error: expect(list).to receive_message_chain(:to_a,
:length).and_call_original

            ([1, 2, 3]).to_a(*(any args))
                expected: 1 time with any arguments
                received: 0 times with any arguments
          #
./spec/rspec/mocks/matchers/receive_message_chain_spec.rb:75:in `block
(3 levels) in <module:Matchers>'

  6) #any_instance invocation order when setting a message expectation
raises an error if 'with' follows 'and_return'
     # see Github issue #42
     Got 2 failures:

     6.1) Failure/Error: expect { expect_any_instance_of(klass).to
receive(:foo).and_return(1).with("1") }.to raise_error(NoMethodError)
            expected NoMethodError but nothing was raised
          # ./spec/rspec/mocks/any_instance_spec.rb:80:in `block (4
levels) in <module:Mocks>'

     6.2) Failure/Error: DEFAULT_FAILURE_NOTIFIER = lambda { |failure,
_opts| raise failure }
            Exactly one instance should have received the following
message(s) but didn't: foo
          #
/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in
`block in <module:Support>'
          #
/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:106:in
`notify_failure'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb:327:in
`notify'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb:311:in
`__raise'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/error_generator.rb:7:in
`raise_second_instance_received_message_error'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/recorder.rb:100:in
`verify'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`block in verify_all'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`each_value'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`verify_all'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks.rb:45:in
`verify'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/rspec.rb:23:in
`verify_mocks_for_rspec'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:517:in
`verify_mocks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:511:in
`run_after_example'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:276:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in
`block in with_around_and_singleton_context_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in
`block in with_around_example_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:610:in
`run_around_example_hooks_for'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in
`with_around_example_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in
`with_around_and_singleton_context_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in
`block in run_examples'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in
`run_examples'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`block (3 levels) in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`block (2 levels) in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in
`with_suite_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in
`block in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in
`report'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in
`run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in
`invoke'
          # /usr/bin/rspec:4:in `<main>'
          #
          #   Showing full backtrace because every line was filtered out.
          #   See docs for
RSpec::Configuration#backtrace_exclusion_patterns and
          #   RSpec::Configuration#backtrace_inclusion_patterns for more
information.

  7) #any_instance invocation order when setting a message expectation
raises an error if 'with' follows 'and_raise'
     # see Github issue #42
     Got 2 failures:

     7.1) Failure/Error: expect { expect_any_instance_of(klass).to
receive(:foo).and_raise(1).with("1") }.to raise_error(NoMethodError)
            expected NoMethodError but nothing was raised
          # ./spec/rspec/mocks/any_instance_spec.rb:85:in `block (4
levels) in <module:Mocks>'

     7.2) Failure/Error: DEFAULT_FAILURE_NOTIFIER = lambda { |failure,
_opts| raise failure }
            Exactly one instance should have received the following
message(s) but didn't: foo
          #
/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in
`block in <module:Support>'
          #
/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:106:in
`notify_failure'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb:327:in
`notify'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/error_generator.rb:311:in
`__raise'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/error_generator.rb:7:in
`raise_second_instance_received_message_error'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/any_instance/recorder.rb:100:in
`verify'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`block in verify_all'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`each_value'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks/space.rb:75:in
`verify_all'
          #
/usr/share/rubygems-integration/all/gems/rspec-mocks-3.9.1/lib/rspec/mocks.rb:45:in
`verify'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/mocking_adapters/rspec.rb:23:in
`verify_mocks_for_rspec'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:517:in
`verify_mocks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:511:in
`run_after_example'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:276:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in
`block in with_around_and_singleton_context_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in
`block in with_around_example_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:610:in
`run_around_example_hooks_for'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in
`with_around_example_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in
`with_around_and_singleton_context_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in
`block in run_examples'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in
`run_examples'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`block in run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`block (3 levels) in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`map'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in
`block (2 levels) in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in
`with_suite_hooks'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in
`block in run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in
`report'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in
`run_specs'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in
`run'
          #
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in
`invoke'
          # /usr/bin/rspec:4:in `<main>'
          #
          #   Showing full backtrace because every line was filtered out.
          #   See docs for
RSpec::Configuration#backtrace_exclusion_patterns and
          #   RSpec::Configuration#backtrace_inclusion_patterns for more
information.

Failures:

  1) Test doubles format well in failure messages formats the doubles
when they appear in data structures and diffs
     Failure/Error:
       expect {
         expect([foo]).to include(bar)
       }.to fail_with(<<-EOS.gsub(/^\s+\|/, ''))
         |expected [#<Double "Foo">] to include #<Double "Bar">
         |Diff:
         |@@ -1,2 +1,2 @@
         |-[#<Double "Bar">]
         |+[#<Double "Foo">]
       EOS

       expected RSpec::Expectations::ExpectationNotMetError with
"expected [#<Double \"Foo\">] to include #<Double \"Bar\">\nDiff:\n@@
-1,2 +1,2 @@\n-[#<Double \"Bar\">]\n+[#<Double \"Foo\">]\n", got
#<RSpec::Expectations::ExpectationNotMetError: expected [#<Double
"Foo">] to include #<Double "Bar">
       Diff:
       @@ -1 +1 @@
       -[#<Double "Bar">]
       +[#<Double "Foo">]
       > with backtrace:
         # ./spec/rspec/mocks/formatting_spec.rb:100:in `block (3
levels) in <top (required)>'
         # ./spec/rspec/mocks/formatting_spec.rb:99:in `block (2 levels)
in <top (required)>'
     # ./spec/rspec/mocks/formatting_spec.rb:99:in `block (2 levels) in
<top (required)>'

  2) Diffs printed when arguments don't match with a matcher object that
does not define #description for a matcher object that does not
implement #description
     Failure/Error:
       expect {
         d.foo([:a, :b])
       }.to fail_with("#<Double \"double\"> received :foo with
unexpected arguments\n" \
         "  expected: (#{collab_inspect})\n" \
         "       got: ([:a, :b])\nDiff:\n@@ -1,2 +1,2
@@\n-[#{collab_pp}]\n+[[:a, :b]]\n")

       expected RSpec::Mocks::MockExpectationError with "#<Double
\"double\"> received :foo with unexpected arguments\n  expected:
(#<MyCollab>)\n       got: ([:a, :b])\nDiff:\n@@ -1,2 +1,2
@@\n-[#<MyCollab>]\n+[[:a, :b]]\n", got
#<RSpec::Mocks::MockExpectationError: #<Double "double"> received :foo
with unexpected arguments
         expected: (#<MyCollab>)
              got: ([:a, :b])
       Diff:
       @@ -1 +1 @@
       -[#<MyCollab>]
       +[[:a, :b]]
       > with backtrace:
         # ./spec/rspec/mocks/diffing_spec.rb:164:in `block (6 levels)
in <top (required)>'
         # ./spec/rspec/mocks/diffing_spec.rb:163:in `block (5 levels)
in <top (required)>'
         # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
         # ./spec/rspec/mocks/diffing_spec.rb:146:in `block (4 levels)
in <top (required)>'
     # ./spec/rspec/mocks/diffing_spec.rb:163:in `block (5 levels) in
<top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/diffing_spec.rb:146:in `block (4 levels) in
<top (required)>'

  3) Diffs printed when arguments don't match with a matcher object that
defines #description uses the object's description
     Failure/Error:
       expect {
         d.foo([:a, :b])
       }.to fail_with("#<Double \"double\"> received :foo with
unexpected arguments\n" \
         "  expected: (#{collab_description})\n" \
         "       got: ([:a, :b])\nDiff:\n@@ -1,2 +1,2
@@\n-[\"#{collab_description}\"]\n+[[:a, :b]]\n")

       expected RSpec::Mocks::MockExpectationError with "#<Double
\"double\"> received :foo with unexpected arguments\n  expected:
(fake_matcher_description)\n       got: ([:a, :b])\nDiff:\n@@ -1,2 +1,2
@@\n-[\"fake_matcher_description\"]\n+[[:a, :b]]\n", got
#<RSpec::Mocks::MockExpectationError: #<Double "double"> received :foo
with unexpected arguments
         ex...er_description)
              got: ([:a, :b])
       Diff:
       @@ -1 +1 @@
       -["fake_matcher_description"]
       +[[:a, :b]]
       > with backtrace:
         # ./spec/rspec/mocks/diffing_spec.rb:136:in `block (6 levels)
in <top (required)>'
         # ./spec/rspec/mocks/diffing_spec.rb:135:in `block (5 levels)
in <top (required)>'
         # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
         # ./spec/rspec/mocks/diffing_spec.rb:129:in `block (4 levels)
in <top (required)>'
     # ./spec/rspec/mocks/diffing_spec.rb:135:in `block (5 levels) in
<top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/diffing_spec.rb:129:in `block (4 levels) in
<top (required)>'

  4) Diffs printed when arguments don't match with a non matcher object
prints a diff with hash args
     Failure/Error:
       expect {
         d.foo(:bad => :hash)
       }.to fail_with(/\A#<Double "double"> received :foo with
unexpected arguments\n  expected: \(#{hash_regex_inspect
expected_hash}\)\n       got: \(#{hash_regex_inspect
actual_hash}\)\nDiff:\n@@ \-1\,2 \+1\,2 @@\n\-\[#{hash_regex_inspect
expected_hash}\]\n\+\[#{hash_regex_inspect actual_hash}\]\n\z/)

       expected RSpec::Mocks::MockExpectationError with message matching
/\A#<Double "double"> received :foo with unexpected arguments\n
expected: \(\{:baz=>:quz,\ :foo=>:ba...:hash\}\)\nDiff:\n@@ \-1\,2
\+1\,2 @@\n\-\[\{:baz=>:quz,\
:foo=>:bar\}\]\n\+\[\{:bad=>:hash\}\]\n\z/, got
#<RSpec::Mocks::MockExpectationError: #<Double "double"> received :foo
with unexpected arguments
         ex...>:bar})
              got: ({:bad=>:hash})
       Diff:
       @@ -1 +1 @@
       -[{:baz=>:quz, :foo=>:bar}]
       +[{:bad=>:hash}]
       > with backtrace:
         # ./spec/rspec/mocks/diffing_spec.rb:70:in `block (5 levels) in
<top (required)>'
         # ./spec/rspec/mocks/diffing_spec.rb:69:in `block (4 levels) in
<top (required)>'
         # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
         # ./spec/rspec/mocks/diffing_spec.rb:67:in `block (3 levels) in
<top (required)>'
     # ./spec/rspec/mocks/diffing_spec.rb:69:in `block (4 levels) in
<top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/diffing_spec.rb:67:in `block (3 levels) in
<top (required)>'

  5) Diffs printed when arguments don't match with a non matcher object
prints a diff with array args
     Failure/Error:
       expect {
         d.foo([])
       }.to fail_with("#<Double \"double\"> received :foo with
unexpected arguments\n  expected: ([:a, :b, :c])\n       got:
([])\nDiff:\n@@ -1,2 +1,2 @@\n-[[:a, :b, :c]]\n+[[]]\n")

       expected RSpec::Mocks::MockExpectationError with "#<Double
\"double\"> received :foo with unexpected arguments\n  expected: ([:a,
:b, :c])\n       got: ([])\nDiff:\n@@ -1,2 +1,2 @@\n-[[:a, :b,
:c]]\n+[[]]\n", got #<RSpec::Mocks::MockExpectationError: #<Double
"double"> received :foo with unexpected arguments
         expected: ([:a, :b, :c])
              got: ([])
       Diff:
       @@ -1 +1 @@
       -[[:a, :b, :c]]
       +[[]]
       > with backtrace:
         # ./spec/rspec/mocks/diffing_spec.rb:103:in `block (5 levels)
in <top (required)>'
         # ./spec/rspec/mocks/diffing_spec.rb:102:in `block (4 levels)
in <top (required)>'
         # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
         # ./spec/rspec/mocks/diffing_spec.rb:100:in `block (3 levels)
in <top (required)>'
     # ./spec/rspec/mocks/diffing_spec.rb:102:in `block (4 levels) in
<top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/diffing_spec.rb:100:in `block (3 levels) in
<top (required)>'

  6) Diffs printed when arguments don't match with a non matcher object
that defines #description does not use the object's description for a
non-matcher object that implements #description
     Failure/Error:
       expect {
         d.foo([])
       }.to fail_with("#<Double \"double\"> received :foo with
unexpected arguments\n" \
         "  expected: (#{collab_inspect})\n" \
         "       got: ([])\nDiff:\n@@ -1,2 +1,2
@@\n-[#{collab_inspect}]\n+[[]]\n")

       expected RSpec::Mocks::MockExpectationError with "#<Double
\"double\"> received :foo with unexpected arguments\n  expected:
(#<Double :collab>)\n       got: ([])\nDiff:\n@@ -1,2 +1,2
@@\n-[#<Double :collab>]\n+[[]]\n", got
#<RSpec::Mocks::MockExpectationError: #<Double "double"> received :foo
with unexpected arguments
         expected: (#<Double :collab>)
              got: ([])
       Diff:
       @@ -1 +1 @@
       -[#<Double :collab>]
       +[[]]
       > with backtrace:
         # ./spec/rspec/mocks/diffing_spec.rb:117:in `block (6 levels)
in <top (required)>'
         # ./spec/rspec/mocks/diffing_spec.rb:116:in `block (5 levels)
in <top (required)>'
         # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
         # ./spec/rspec/mocks/diffing_spec.rb:110:in `block (4 levels)
in <top (required)>'
     # ./spec/rspec/mocks/diffing_spec.rb:116:in `block (5 levels) in
<top (required)>'
     # ./spec/spec_helper.rb:45:in `with_unfulfilled_double'
     # ./spec/rspec/mocks/diffing_spec.rb:110:in `block (4 levels) in
<top (required)>'

Finished in 1.15 seconds (files took 0.44479 seconds to load)
1698 examples, 6 failures, 7 pending

Failed examples:

rspec ./spec/rspec/mocks/formatting_spec.rb:93 # Test doubles format
well in failure messages formats the doubles when they appear in data
structures and diffs
rspec ./spec/rspec/mocks/diffing_spec.rb:145 # Diffs printed when
arguments don't match with a matcher object that does not define
#description for a matcher object that does not implement #description
rspec ./spec/rspec/mocks/diffing_spec.rb:128 # Diffs printed when
arguments don't match with a matcher object that defines #description
uses the object's description
rspec ./spec/rspec/mocks/diffing_spec.rb:66 # Diffs printed when
arguments don't match with a non matcher object prints a diff with hash args
rspec ./spec/rspec/mocks/diffing_spec.rb:99 # Diffs printed when
arguments don't match with a non matcher object prints a diff with array
args
rspec ./spec/rspec/mocks/diffing_spec.rb:109 # Diffs printed when
arguments don't match with a non matcher object that defines
#description does not use the object's description for a non-matcher
object that implements #description

Randomized with seed 15277

mv lib.off lib
cd -
cd rspec-support
mv lib lib.off

∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
∙ rspec-support ∙
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙

/usr/bin/ruby2.7 -S rspec spec/rspec/support_spec.rb
spec/rspec/support/source/node_spec.rb
spec/rspec/support/source/token_spec.rb
spec/rspec/support/object_formatter_spec.rb
spec/rspec/support/matcher_definition_spec.rb
spec/rspec/support/spec/shell_out_spec.rb
spec/rspec/support/spec/stderr_splitter_spec.rb
spec/rspec/support/spec/with_isolated_std_err_spec.rb
spec/rspec/support/spec/in_sub_process_spec.rb
spec/rspec/support/encoded_string_spec.rb
spec/rspec/support/directory_maker_spec.rb
spec/rspec/support/reentrant_mutex_spec.rb
spec/rspec/support/recursive_const_methods_spec.rb
spec/rspec/support/ruby_features_spec.rb
spec/rspec/support/comparable_version_spec.rb
spec/rspec/support/warnings_spec.rb spec/rspec/support/differ_spec.rb
spec/rspec/support/fuzzy_matcher_spec.rb
spec/rspec/support/source_spec.rb
spec/rspec/support/method_signature_verifier_spec.rb

Randomized with seed 10545
..F.FF.....F.F.F....F.F.F..FFFF.FF..................................................................................................*...................................................fatal:
not a git repository (or any of the parent directories): .git
....................................................................................................................................................................................................................................................................................................................................................

Pending: (Failures listed here are expected and do not affect your
suite's status)

  1) RSpec::Support::ShellOut can shell out to ruby with the current
load path
     # Need to investigate why this is failing -- see
https://travis-ci.org/rspec/rspec-core/jobs/60327106 and
https://travis-ci.org/rspec/rspec-support/jobs/60296920 for examples
     # ./spec/rspec/support/spec/shell_out_spec.rb:22

Failures:

  1) RSpec::Support::Differ#diff outputs unified diff message of two
hashes with object keys
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-[\"a\", \"c\"] => \"b\",\n+[\"d\", \"c\"] =>
\"b\",\n" (UTF-8) to be identical to
       "\n@@ -1,2 +1,2 @@\n-[\"a\", \"c\"] => \"b\",\n+[\"d\", \"c\"] =>
\"b\",\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 91, 34,
97, 34, 44, 32, 34, 99, 34, 93, 32, 61, 62, 32, 34, 98, 34, 44, 10, 43,
91, 34, 100, 34, 44, 32, 34, 99, 34, 93, 32, 61, 62, 32, 34, 98, 34, 44, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 91, 34, 97, 34, 44, 32, 34, 99, 34, 93, 32, 61, 62, 32, 34, 98,
34, 44, 10, 43, 91, 34, 100, 34, 44, 32, 34, 99, 34, 93, 32, 61, 62, 32,
34, 98, 34, 44, 10]
     # ./spec/rspec/support/differ_spec.rb:293:in `block (3 levels) in
<module:Support>'

  2) RSpec::Support::Differ#diff outputs unified diff message of two
hashes with encoding different to key encoding
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-:a => \"a\",\n+\"한글\" => \"한글2\",\n" (UTF-8) to
be identical to
       "\n@@ -1,2 +1,2 @@\n-:a => \"a\",\n+\"한글\" => \"한글2\",\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 58, 97,
32, 61, 62, 32, 34, 97, 34, 44, 10, 43, 34, 237, 149, 156, 234, 184,
128, 34, 32, 61, 62, 32, 34, 237, 149, 156, 234, 184, 128, 50, 34, 44, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 58, 97, 32, 61, 62, 32, 34, 97, 34, 44, 10, 43, 34, 237, 149,
156, 234, 184, 128, 34, 32, 61, 62, 32, 34, 237, 149, 156, 234, 184,
128, 50, 34, 44, 10]
     # ./spec/rspec/support/differ_spec.rb:282:in `block (3 levels) in
<module:Support>'

  3) RSpec::Support::Differ#diff outputs a unified diff message for an
array which flatten recurses
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-[]\n+[<BrokenObject>]\n" (UTF-8) to be identical to
       "\n@@ -1,2 +1,2 @@\n-[]\n+[<BrokenObject>]\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 91, 93,
10, 43, 91, 60, 66, 114, 111, 107, 101, 110, 79, 98, 106, 101, 99, 116,
62, 93, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 91, 93, 10, 43, 91, 60, 66, 114, 111, 107, 101, 110, 79, 98,
106, 101, 99, 116, 62, 93, 10]
     # ./spec/rspec/support/differ_spec.rb:209:in `block (3 levels) in
<module:Support>'

  4) RSpec::Support::Differ#diff handles differently encoded strings
that are compatible
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-abc\n+강인철\n" (UTF-8) to be identical to
       "\n@@ -1,2 +1,2 @@\n-abc\n+강인철\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 97, 98,
99, 10, 43, 234, 176, 149, 236, 157, 184, 236, 178, 160, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 97, 98, 99, 10, 43, 234, 176, 149, 236, 157, 184, 236, 178, 160, 10]
     # ./spec/rspec/support/differ_spec.rb:111:in `block (3 levels) in
<module:Support>'

  5) RSpec::Support::Differ#diff outputs unified diff message of strings
in arrays
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-a\\r\\nc\n+a\\r\\nb\n" (UTF-8) to be identical to
       "\n@@ -1,2 +1,2 @@\n-a\\r\\nc\n+a\\r\\nb\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 97, 92,
114, 92, 110, 99, 10, 43, 97, 92, 114, 92, 110, 98, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 97, 92, 114, 92, 110, 99, 10, 43, 97, 92, 114, 92, 110, 98, 10]
     # ./spec/rspec/support/differ_spec.rb:220:in `block (3 levels) in
<module:Support>'

  6) RSpec::Support::Differ#diff uses the default external encoding when
the two strings have incompatible encodings
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-Tu avec carte {count} item has\n+Tu avec carté
{count} itém has\n" (UTF-8) to be identical to
       "\n@@ -1,2 +1,2 @@\n-Tu avec carte {count} item has\n+Tu avec
carté {count} itém has\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 84, 117,
32, 97, 118, 101, 99, 32, 99, 97, 114, 116, 101, 32, 123, 99, 111, 117,
110, 116, 125, 32, 105, 116, 101, 109, 32, 104, 97, 115, 10, 43, 84,
117, 32, 97, 118, 101, 99, 32, 99, 97, 114, 116, 195, 169, 32, 123, 99,
111, 117, 110, 116, 125, 32, 105, 116, 195, 169, 109, 32, 104, 97, 115, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 84, 117, 32, 97, 118, 101, 99, 32, 99, 97, 114, 116, 101, 32,
123, 99, 111, 117, 110, 116, 125, 32, 105, 116, 101, 109, 32, 104, 97,
115, 10, 43, 84, 117, 32, 97, 118, 101, 99, 32, 99, 97, 114, 116, 195,
169, 32, 123, 99, 111, 117, 110, 116, 125, 32, 105, 116, 195, 169, 109,
32, 104, 97, 115, 10]
     # ./spec/rspec/support/differ_spec.rb:120:in `block (3 levels) in
<module:Support>'

  7) RSpec::Support::Differ#diff includes object delegation information
in the diff output
     Failure/Error: expect(diff).to eq(expected_diff)

       expected: "\n@@ -1,2 +1,2
@@\n-[#<SimpleDelegator(#<Object:0x0000564e160b37f8>)>]\n+[#<Object:0x0000564e160b37f8>]\n"
            got: "\n@@ -1 +1
@@\n-[#<SimpleDelegator(#<Object:0x0000564e160b37f8>)>]\n+[#<Object:0x0000564e160b37f8>]\n"

       (compared using ==)

       Diff:
       @@ -1,5 +1,5 @@

       -@@ -1,2 +1,2 @@
       +@@ -1 +1 @@
        -[#<SimpleDelegator(#<Object:0x0000564e160b37f8>)>]
        +[#<Object:0x0000564e160b37f8>]
     # ./spec/rspec/support/differ_spec.rb:444:in `block (4 levels) in
<module:Support>'
     # ./spec/rspec/support/differ_spec.rb:429:in `block (3 levels) in
<module:Support>'

  8) RSpec::Support::Differ#diff outputs unified diff message of two
hashes with differing encoding
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-\"a\" => \"a\",\n+\"ö\" => \"ö\",\n" (UTF-8) to
be identical to
       "\n@@ -1,2 +1,2 @@\n-\"a\" => \"a\",\n+\"ö\" => \"ö\",\n" (UTF-8)
       The exact bytes are printed below for more detail:
       [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 34, 97,
34, 32, 61, 62, 32, 34, 97, 34, 44, 10, 43, 34, 195, 182, 34, 32, 61,
62, 32, 34, 195, 182, 34, 44, 10]
       [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 34, 97, 34, 32, 61, 62, 32, 34, 97, 34, 44, 10, 43, 34, 195,
182, 34, 32, 61, 62, 32, 34, 195, 182, 34, 44, 10]
     # ./spec/rspec/support/differ_spec.rb:271:in `block (3 levels) in
<module:Support>'

  9) RSpec::Support::Differ#diff copes with encoded strings
     Failure/Error: expect(diff).to be_diffed_as(expected_diff)

       expected
       "\n@@ -1 +1 @@\n-Tu avec carte {count} item has\n+Tu avec
cart\u00E9 {count} it\u00E9m has\n" (UTF-16LE) to be identical to
       "\n@@ -1,2 +1,2 @@\n-Tu avec carte {count} item has\n+Tu avec
cart\u00E9 {count} it\u00E9m has\n" (UTF-16LE)
       The exact bytes are printed below for more detail:
       [10, 0, 64, 0, 64, 0, 32, 0, 45, 0, 49, 0, 32, 0, 43, 0, 49, 0,
32, 0, 64, 0, 64, 0, 10, 0, 45, 0, 84, 0, 117, 0, 32, 0, 97, 0, 118, 0,
101, 0, 99, 0, 32, 0, 99, 0, 97, 0, 114, 0, 116, 0, 101, 0, 32, 0, 123,
0, 99, 0, 111, 0, 117, 0, 110, 0, 116, 0, 125, 0, 32, 0, 105, 0, 116, 0,
101, 0, 109, 0, 32, 0, 104, 0, 97, 0, 115, 0, 10, 0, 43, 0, 84, 0, 117,
0, 32, 0, 97, 0, 118, 0, 101, 0, 99, 0, 32, 0, 99, 0, 97, 0, 114, 0,
116, 0, 233, 0, 32, 0, 123, 0, 99, 0, 111, 0, 117, 0, 110, 0, 116, 0,
125, 0, 32, 0, 105, 0, 116, 0, 233, 0, 109, 0, 32, 0, 104, 0, 97, 0,
115, 0, 10, 0]
       [10, 0, 64, 0, 64, 0, 32, 0, 45, 0, 49, 0, 44, 0, 50, 0, 32, 0,
43, 0, 49, 0, 44, 0, 50, 0, 32, 0, 64, 0, 64, 0, 10, 0, 45, 0, 84, 0,
117, 0, 32, 0, 97, 0, 118, 0, 101, 0, 99, 0, 32, 0, 99, 0, 97, 0, 114,
0, 116, 0, 101, 0, 32, 0, 123, 0, 99, 0, 111, 0, 117, 0, 110, 0, 116, 0,
125, 0, 32, 0, 105, 0, 116, 0, 101, 0, 109, 0, 32, 0, 104, 0, 97, 0,
115, 0, 10, 0, 43, 0, 84, 0, 117, 0, 32, 0, 97, 0, 118, 0, 101, 0, 99,
0, 32, 0, 99, 0, 97, 0, 114, 0, 116, 0, 233, 0, 32, 0, 123, 0, 99, 0,
111, 0, 117, 0, 110, 0, 116, 0, 125, 0, 32, 0, 105, 0, 116, 0, 233, 0,
109, 0, 32, 0, 104, 0, 97, 0, 115, 0, 10, 0]
     # ./spec/rspec/support/differ_spec.rb:103:in `block (3 levels) in
<module:Support>'

  10) RSpec::Support::Differ#diff with :object_preparer option set uses
the output of object_preparer for diffing
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\n@@ -1 +1 @@\n-\"oop\"\n+\"oof\"\n" (UTF-8) to be identical to
        "\n@@ -1,2 +1,2 @@\n-\"oop\"\n+\"oof\"\n" (UTF-8)
        The exact bytes are printed below for more detail:
        [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 34,
111, 111, 112, 34, 10, 43, 34, 111, 111, 102, 34, 10]
        [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 34, 111, 111, 112, 34, 10, 43, 34, 111, 111, 102, 34, 10]
      # ./spec/rspec/support/differ_spec.rb:466:in `block (4 levels) in
<module:Support>'

  11) RSpec::Support::Differ#diff with :color option set outputs colored
diffs
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\e[0m\n\e[0m\e[34m@@ -1 +1 @@\n\e[0m\e[31m-foo bang
baz\n\e[0m\e[32m+foo bar baz\n\e[0m" (UTF-8) to be identical to
        "\e[0m\n\e[0m\e[34m@@ -1,2 +1,2 @@\n\e[0m\e[31m-foo bang
baz\n\e[0m\e[32m+foo bar baz\n\e[0m" (UTF-8)
        The exact bytes are printed below for more detail:
        [27, 91, 48, 109, 10, 27, 91, 48, 109, 27, 91, 51, 52, 109, 64,
64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 27, 91, 48, 109, 27, 91, 51,
49, 109, 45, 102, 111, 111, 32, 98, 97, 110, 103, 32, 98, 97, 122, 10,
27, 91, 48, 109, 27, 91, 51, 50, 109, 43, 102, 111, 111, 32, 98, 97,
114, 32, 98, 97, 122, 10, 27, 91, 48, 109]
        [27, 91, 48, 109, 10, 27, 91, 48, 109, 27, 91, 51, 52, 109, 64,
64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64, 10, 27, 91, 48,
109, 27, 91, 51, 49, 109, 45, 102, 111, 111, 32, 98, 97, 110, 103, 32,
98, 97, 122, 10, 27, 91, 48, 109, 27, 91, 51, 50, 109, 43, 102, 111,
111, 32, 98, 97, 114, 32, 98, 97, 122, 10, 27, 91, 48, 109]
      # ./spec/rspec/support/differ_spec.rb:479:in `block (4 levels) in
<module:Support>'

  12) RSpec::Support::Differ#diff when special-case objects are inside
hashes outputs unified diff message of two hashes with hashes inside them
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\n@@ -1 +1 @@\n-\"b\" => {\"key_1\"=>1969-12-31
19:01:40.000101000 +0000},\n+\"c\" => {\"key_1\"=>1969-12-31
19:01:40.000101000 +0000},\n" (UTF-8) to be identical to
        "\n@@ -1,2 +1,2 @@\n-\"b\" => {\"key_1\"=>1969-12-31
19:01:40.000101000 +0000},\n+\"c\" => {\"key_1\"=>1969-12-31
19:01:40.000101000 +0000},\n" (UTF-8)
        The exact bytes are printed below for more detail:
        [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 34, 98,
34, 32, 61, 62, 32, 123, 34, 107, 101, 121, 95, 49, 34, 61, 62, 49, 57,
54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49, 58, 52, 48, 46,
48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48, 48, 125, 44, 10,
43, 34, 99, 34, 32, 61, 62, 32, 123, 34, 107, 101, 121, 95, 49, 34, 61,
62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49, 58,
52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48, 48,
125, 44, 10]
        [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 34, 98, 34, 32, 61, 62, 32, 123, 34, 107, 101, 121, 95, 49, 34,
61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49,
58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48,
48, 125, 44, 10, 43, 34, 99, 34, 32, 61, 62, 32, 123, 34, 107, 101, 121,
95, 49, 34, 61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57,
58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43,
48, 48, 48, 48, 125, 44, 10]
      # ./spec/rspec/support/differ_spec.rb:321:in `block (4 levels) in
<module:Support>'

  13) RSpec::Support::Differ#diff when special-case objects are inside
hashes outputs unified diff message of two hashes with Time object keys
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\n@@ -1 +1 @@\n-1969-12-31 19:01:40.000101000 +0000 =>
\"b\",\n+1969-12-31 19:01:40.000101000 +0000 => \"c\",\n" (UTF-8) to be
identical to
        "\n@@ -1,2 +1,2 @@\n-1969-12-31 19:01:40.000101000 +0000 =>
\"b\",\n+1969-12-31 19:01:40.000101000 +0000 => \"c\",\n" (UTF-8)
        The exact bytes are printed below for more detail:
        [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 49, 57,
54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49, 58, 52, 48, 46,
48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48, 48, 32, 61, 62,
32, 34, 98, 34, 44, 10, 43, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32,
49, 57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48,
32, 43, 48, 48, 48, 48, 32, 61, 62, 32, 34, 99, 34, 44, 10]
        [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49,
58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48,
48, 32, 61, 62, 32, 34, 98, 34, 44, 10, 43, 49, 57, 54, 57, 45, 49, 50,
45, 51, 49, 32, 49, 57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48,
49, 48, 48, 48, 32, 43, 48, 48, 48, 48, 32, 61, 62, 32, 34, 99, 34, 44, 10]
      # ./spec/rspec/support/differ_spec.rb:308:in `block (4 levels) in
<module:Support>'

  14) RSpec::Support::Differ#diff when special-case objects are inside
arrays outputs unified diff message of two arrays with Time object keys
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\n@@ -1 +1 @@\n-[1969-12-31 19:01:40.000101000 +0000,
\"b\"]\n+[1969-12-31 19:01:40.000101000 +0000, \"c\"]\n" (UTF-8) to be
identical to
        "\n@@ -1,2 +1,2 @@\n-[1969-12-31 19:01:40.000101000 +0000,
\"b\"]\n+[1969-12-31 19:01:40.000101000 +0000, \"c\"]\n" (UTF-8)
        The exact bytes are printed below for more detail:
        [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 91, 49,
57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48, 49, 58, 52, 48,
46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48, 48, 48, 44, 32,
34, 98, 34, 93, 10, 43, 91, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32,
49, 57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48,
32, 43, 48, 48, 48, 48, 44, 32, 34, 99, 34, 93, 10]
        [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 91, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58, 48,
49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48, 48,
48, 48, 44, 32, 34, 98, 34, 93, 10, 43, 91, 49, 57, 54, 57, 45, 49, 50,
45, 51, 49, 32, 49, 57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48,
49, 48, 48, 48, 32, 43, 48, 48, 48, 48, 44, 32, 34, 99, 34, 93, 10]
      # ./spec/rspec/support/differ_spec.rb:337:in `block (4 levels) in
<module:Support>'

  15) RSpec::Support::Differ#diff when special-case objects are inside
arrays outputs unified diff message of two arrays with hashes inside them
      Failure/Error: expect(diff).to be_diffed_as(expected_diff)

        expected
        "\n@@ -1 +1 @@\n-[{\"b\"=>1969-12-31 19:01:40.000101000 +0000},
\"c\"]\n+[{\"a\"=>1969-12-31 19:01:40.000101000 +0000}, \"c\"]\n"
(UTF-8) to be identical to
        "\n@@ -1,2 +1,2 @@\n-[{\"b\"=>1969-12-31 19:01:40.000101000
+0000}, \"c\"]\n+[{\"a\"=>1969-12-31 19:01:40.000101000 +0000},
\"c\"]\n" (UTF-8)
        The exact bytes are printed below for more detail:
        [10, 64, 64, 32, 45, 49, 32, 43, 49, 32, 64, 64, 10, 45, 91,
123, 34, 98, 34, 61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49,
57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32,
43, 48, 48, 48, 48, 125, 44, 32, 34, 99, 34, 93, 10, 43, 91, 123, 34,
97, 34, 61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49, 57, 58,
48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32, 43, 48,
48, 48, 48, 125, 44, 32, 34, 99, 34, 93, 10]
        [10, 64, 64, 32, 45, 49, 44, 50, 32, 43, 49, 44, 50, 32, 64, 64,
10, 45, 91, 123, 34, 98, 34, 61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51,
49, 32, 49, 57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48,
48, 48, 32, 43, 48, 48, 48, 48, 125, 44, 32, 34, 99, 34, 93, 10, 43, 91,
123, 34, 97, 34, 61, 62, 49, 57, 54, 57, 45, 49, 50, 45, 51, 49, 32, 49,
57, 58, 48, 49, 58, 52, 48, 46, 48, 48, 48, 49, 48, 49, 48, 48, 48, 32,
43, 48, 48, 48, 48, 125, 44, 32, 34, 99, 34, 93, 10]
      # ./spec/rspec/support/differ_spec.rb:350:in `block (4 levels) in
<module:Support>'

Finished in 0.7561 seconds (files took 0.22958 seconds to load)
524 examples, 15 failures, 1 pending

Failed examples:

rspec ./spec/rspec/support/differ_spec.rb:285 #
RSpec::Support::Differ#diff outputs unified diff message of two hashes
with object keys
rspec ./spec/rspec/support/differ_spec.rb:274 #
RSpec::Support::Differ#diff outputs unified diff message of two hashes
with encoding different to key encoding
rspec ./spec/rspec/support/differ_spec.rb:191 #
RSpec::Support::Differ#diff outputs a unified diff message for an array
which flatten recurses
rspec ./spec/rspec/support/differ_spec.rb:106 #
RSpec::Support::Differ#diff handles differently encoded strings that are
compatible
rspec ./spec/rspec/support/differ_spec.rb:212 #
RSpec::Support::Differ#diff outputs unified diff message of strings in
arrays
rspec ./spec/rspec/support/differ_spec.rb:114 #
RSpec::Support::Differ#diff uses the default external encoding when the
two strings have incompatible encodings
rspec ./spec/rspec/support/differ_spec.rb:428 #
RSpec::Support::Differ#diff includes object delegation information in
the diff output
rspec ./spec/rspec/support/differ_spec.rb:263 #
RSpec::Support::Differ#diff outputs unified diff message of two hashes
with differing encoding
rspec ./spec/rspec/support/differ_spec.rb:92 #
RSpec::Support::Differ#diff copes with encoded strings
rspec ./spec/rspec/support/differ_spec.rb:453 #
RSpec::Support::Differ#diff with :object_preparer option set uses the
output of object_preparer for diffing
rspec ./spec/rspec/support/differ_spec.rb:473 #
RSpec::Support::Differ#diff with :color option set outputs colored diffs
rspec ./spec/rspec/support/differ_spec.rb:311 #
RSpec::Support::Differ#diff when special-case objects are inside hashes
outputs unified diff message of two hashes with hashes inside them
rspec ./spec/rspec/support/differ_spec.rb:300 #
RSpec::Support::Differ#diff when special-case objects are inside hashes
outputs unified diff message of two hashes with Time object keys
rspec ./spec/rspec/support/differ_spec.rb:329 #
RSpec::Support::Differ#diff when special-case objects are inside arrays
outputs unified diff message of two arrays with Time object keys
rspec ./spec/rspec/support/differ_spec.rb:340 #
RSpec::Support::Differ#diff when special-case objects are inside arrays
outputs unified diff message of two arrays with hashes inside them

Randomized with seed 10545

mv lib.off lib
cd -
Failed: rspec-expectations, rspec-mocks, rspec-support
autopkgtest [15:36:52]: test gem2deb-test-runner: -----------------------]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-ruby-extras-maintainers/attachments/20200818/9c63c2d5/attachment-0001.sig>


More information about the Pkg-ruby-extras-maintainers mailing list