[DRE-maint] Bug#968628: ruby-diff-lcs breaks cucumber autopkgtest: 578 examples, 7 failures

Paul Gevers elbrus at debian.org
Tue Aug 18 20:39:26 BST 2020


Source: ruby-diff-lcs, cucumber
Control: found -1 ruby-diff-lcs/1.4.4-1
Control: found -1 cucumber/2.4.0-3
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 cucumber 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
cucumber               from testing    2.4.0-3
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/c/cucumber/6722476/log.gz

RUBYLIB=. GEM_PATH= ruby2.7 -S rake -f debian/ruby-tests.rake
/usr/bin/ruby2.7
-I/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/exe/rspec
--pattern ./spec/\*\*/\*_spec.rb -r json
...................................................................................................................................................................................................................................................................................................................................................................................................................................................F.F...F...F..FFF...............................................................................................................................

Failures:

  1) Cucumber::MultilineArgument::DataTable diff! should detect a
complex diff
     Failure/Error: expect( t1.to_s(:indent => 12, :color => false) ).to
eq %{

       expected: "\n            |     1         | (-) 22         | (-)
333         |     4444         | (+) a    |\n  ...     |     4000      |
(-) ABC        | (-) DEF         |     50000        | (+) e    |\n
   "
            got: "\n            |     1         | (-) 22         | (-)
333         |     4444         | (+)  |\n      ...         |     4000
  | (-) ABC        | (-) DEF         |     50000        | (+)  |\n
   "

       (compared using ==)

       Diff:
       @@ -1,9 +1,7 @@

       -            |     1         | (-) 22         | (-) 333         |
    4444         | (+) a    |
       -            |     55555     | (-) 666666     | (-) 7777777     |
    88888888     | (+) bb   |
       -            | (-) 999999999 | (-) 0000000000 | (-) 01010101010 |
(-) 121212121212 | (+)      |
       -            | (+) 999999999 | (+)            | (+)             |
(+) xxxxxxxx     | (+) ccc  |
       -            | (+) 300       | (+)            | (+)             |
(+) 4000         | (+) dddd |
       -            |     4000      | (-) ABC        | (-) DEF         |
    50000        | (+) e    |
       +            |     1         | (-) 22         | (-) 333         |
    4444         | (+)  |
       +            |     55555     | (-) 666666     | (-) 7777777     |
    88888888     | (+)  |
       +            |     999999999 | (-) 0000000000 | (-) 01010101010 |
    121212121212 | (+)  |
       +            |     4000      | (-) ABC        | (-) DEF         |
    50000        | (+)  |

     # ./spec/cucumber/multiline_argument/data_table_spec.rb:310:in
`block (3 levels) in <module:MultilineArgument>'

  2) Cucumber::MultilineArgument::DataTable diff! should inspect missing
and surplus cells
     Failure/Error: expect( t1.to_s(:indent => 12, :color => false) ).to
eq %{

       expected: "\n            |     name  |     male       |
lastname |     swedish     |\n            | (-) asl..."false\" |\n
     | (+) aslak | (+) (i) true   | (+) hellesøy | (+) (i) false   |\n
       "
            got: "\n            |     name  |     male |     lastname |
   swedish |\n            |     aslak |     true |     hellesøy |
false   |\n          "

       (compared using ==)

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

       -            |     name  |     male       |     lastname |
swedish     |
       -            | (-) aslak | (-) (i) "true" | (-) hellesøy | (-)
(i) "false" |
       -            | (+) aslak | (+) (i) true   | (+) hellesøy | (+)
(i) false   |
       +            |     name  |     male |     lastname |     swedish |
       +            |     aslak |     true |     hellesøy |     false   |

     # ./spec/cucumber/multiline_argument/data_table_spec.rb:419:in
`block (3 levels) in <module:MultilineArgument>'

  3) Cucumber::MultilineArgument::DataTable diff! should detect
seemingly identical tables as different
     Failure/Error: expect( t1.to_s(:indent => 12, :color => false) ).to
eq %{

       expected: "\n            |     X       |     Y       |\n
  | (-) (i) \"2\" | (-) (i) \"1\" |\n            | (+) (i) 2   | (+) (i)
1   |\n          "
            got: "\n            |     X |     Y |\n            |     2 |
    1 |\n          "

       (compared using ==)

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

       -            |     X       |     Y       |
       -            | (-) (i) "2" | (-) (i) "1" |
       -            | (+) (i) 2   | (+) (i) 1   |
       +            |     X |     Y |
       +            |     2 |     1 |

     # ./spec/cucumber/multiline_argument/data_table_spec.rb:490:in
`block (3 levels) in <module:MultilineArgument>'

  4) Cucumber::MultilineArgument::DataTable diff! in case of duplicate
header values detects a diff in one cell
     Failure/Error: expect( t1.to_s(:indent => 12, :color => false) ).to
eq %{

       expected: "\n            |     a |     a    |     c |\n
 | (-) d | (-) e    | (-) f |\n            | (+) d | (+) oops | (+) f
|\n            |     g |     h    |     i |\n          "
            got: "\n            |     a |     a |     c |\n            |
    d |     e |     f |\n            |     g |     h |     i |\n          "

       (compared using ==)

       Diff:
       @@ -1,7 +1,6 @@

       -            |     a |     a    |     c |
       -            | (-) d | (-) e    | (-) f |
       -            | (+) d | (+) oops | (+) f |
       -            |     g |     h    |     i |
       +            |     a |     a |     c |
       +            |     d |     e |     f |
       +            |     g |     h |     i |

     # ./spec/cucumber/multiline_argument/data_table_spec.rb:361:in
`block (4 levels) in <module:MultilineArgument>'

  5) Cucumber::MultilineArgument::DataTable diff! raising should raise
on missing rows
     Failure/Error: expect { @t.dup.diff!(t, :missing_row => false)
}.not_to raise_error

       expected no Exception, got #<NoMethodError: undefined method
`action' for "-":String> with backtrace:
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:522:in
`block (5 levels) in <module:MultilineArgument>'
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:522:in
`block (4 levels) in <module:MultilineArgument>'
     # ./spec/cucumber/multiline_argument/data_table_spec.rb:522:in
`block (4 levels) in <module:MultilineArgument>'

  6) Cucumber::MultilineArgument::DataTable diff! raising should not
raise on surplus rows when surplus is at the end
     Failure/Error: expect { @t.dup.diff!(t, :surplus_row => false)
}.not_to raise_error

       expected no Exception, got #<NoMethodError: undefined method
`action' for "+":String> with backtrace:
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:532:in
`block (5 levels) in <module:MultilineArgument>'
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:532:in
`block (4 levels) in <module:MultilineArgument>'
     # ./spec/cucumber/multiline_argument/data_table_spec.rb:532:in
`block (4 levels) in <module:MultilineArgument>'

  7) Cucumber::MultilineArgument::DataTable diff! raising should not
raise on surplus rows when surplus is interleaved
     Failure/Error: expect { t1.dup.diff!(t2, :surplus_row => false)
}.not_to raise_error

       expected no Exception, got #<NoMethodError: undefined method
`action' for "+":String> with backtrace:
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:550:in
`block (5 levels) in <module:MultilineArgument>'
         # ./spec/cucumber/multiline_argument/data_table_spec.rb:550:in
`block (4 levels) in <module:MultilineArgument>'
     # ./spec/cucumber/multiline_argument/data_table_spec.rb:550:in
`block (4 levels) in <module:MultilineArgument>'

Finished in 1.53 seconds (files took 0.75317 seconds to load)
578 examples, 7 failures

Failed examples:

rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:294 #
Cucumber::MultilineArgument::DataTable diff! should detect a complex diff
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:408 #
Cucumber::MultilineArgument::DataTable diff! should inspect missing and
surplus cells
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:480 #
Cucumber::MultilineArgument::DataTable diff! should detect seemingly
identical tables as different
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:349 #
Cucumber::MultilineArgument::DataTable diff! in case of duplicate header
values detects a diff in one cell
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:517 #
Cucumber::MultilineArgument::DataTable diff! raising should raise on
missing rows
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:525 #
Cucumber::MultilineArgument::DataTable diff! raising should not raise on
surplus rows when surplus is at the end
rspec ./spec/cucumber/multiline_argument/data_table_spec.rb:535 #
Cucumber::MultilineArgument::DataTable diff! raising should not raise on
surplus rows when surplus is interleaved

/usr/bin/ruby2.7
-I/usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib
/usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/exe/rspec
--pattern ./spec/\*\*/\*_spec.rb -r json failed
mv .gem2deb.lib lib
autopkgtest [15:46:44]: 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/55a9f4dc/attachment-0001.sig>


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