[DRE-maint] Bug#928505: ruby-pygments.rb: FTBFS if system is fast enough
Santiago Vila
sanvila at debian.org
Mon May 6 11:56:41 BST 2019
Package: src:ruby-pygments.rb
Version: 1.2.0-3
Severity: serious
Tags: ftbfs patch
Dear maintainer:
After fixing #923986 we have now the opposite problem: There is a test
which expects a timeout!
This is how it fails now in some of my autobuilders:
--------------------------------------------------------------------------------
[...]
debian/rules build-indep
dh build-indep --buildsystem=ruby --with ruby
dh_update_autotools_config -i -O--buildsystem=ruby
dh_autoreconf -i -O--buildsystem=ruby
dh_auto_configure -i -O--buildsystem=ruby
dh_ruby --configure
debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_build
dh_ruby --build
dh_ruby --build
# build documention
rdoc lib
Parsing sources...
20% [ 1/ 5] lib/pygments.rb
40% [ 2/ 5] lib/pygments/lexer.rb
60% [ 3/ 5] lib/pygments/mentos.py
80% [ 4/ 5] lib/pygments/popen.rb
100% [ 5/ 5] lib/pygments/version.rb
Generating Darkfish format into /<<PKGBUILDDIR>>/doc...
Files: 5
Classes: 3 (2 undocumented)
Modules: 1 (0 undocumented)
Constants: 1 (1 undocumented)
Attributes: 0 (0 undocumented)
Methods: 27 (5 undocumented)
Total: 32 (8 undocumented)
75.00% documented
Elapsed: 0.1s
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_test -i -O--buildsystem=ruby
dh_ruby --test
create-stamp debian/debhelper-build-stamp
fakeroot debian/rules binary-indep
dh binary-indep --buildsystem=ruby --with ruby
dh_testroot -i -O--buildsystem=ruby
dh_prep -i -O--buildsystem=ruby
debian/rules override_dh_auto_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_install
dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-pygments.rb
dh_ruby --install
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install files │
└──────────────────────────────────────────────────────────────────────────────┘
install -d /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby
install -D -m644 /<<PKGBUILDDIR>>/lib/pygments.rb /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby/pygments.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/pygments/version.rb /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby/pygments/version.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/pygments/mentos.py /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby/pygments/mentos.py
install -D -m644 /<<PKGBUILDDIR>>/lib/pygments/lexer.rb /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby/pygments/lexer.rb
install -D -m644 /<<PKGBUILDDIR>>/lib/pygments/popen.rb /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby/pygments/popen.rb
dh_installchangelogs -pruby-pygments.rb /<<PKGBUILDDIR>>/CHANGELOG.md upstream
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install Rubygems integration metadata │
└──────────────────────────────────────────────────────────────────────────────┘
generating gemspec at /<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/share/rubygems-integration/all/specifications/pygments.rb-1.2.0.gemspec
/usr/bin/ruby2.5 /usr/bin/gem2deb-test-runner
┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby2.5 │
└──────────────────────────────────────────────────────────────────────────────┘
GEM_PATH=debian/ruby-pygments.rb/usr/share/rubygems-integration/all:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all ruby2.5 -e gem\ \"pygments.rb\"
┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby2.5 from debian/ruby-tests.rb │
└──────────────────────────────────────────────────────────────────────────────┘
RUBYLIB=/<<PKGBUILDDIR>>/debian/ruby-pygments.rb/usr/lib/ruby/vendor_ruby:. GEM_PATH=debian/ruby-pygments.rb/usr/share/rubygems-integration/all:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all ruby2.5 debian/ruby-tests.rb
Loaded suite /usr/lib/ruby/vendor_ruby/rake/rake_test_loader
Started
../<<PKGBUILDDIR>>/lib/pygments/popen.rb:156: warning: File.exists? is a deprecated name, use File.exist? instead
...........................F
===============================================================================
Failure: test_returns_nil_on_timeout(PygmentsHighlightTest)
/<<PKGBUILDDIR>>/test/test_pygments.rb:44:in `test_returns_nil_on_timeout'
41: def test_returns_nil_on_timeout
42: large_code = REDIS_CODE * 300
43: code = P.highlight(large_code) # a 30 mb highlight request will timeout
=> 44: assert_equal nil, code
45: end
46:
47: def test_highlight_works_with_null_bytes
<nil> expected but was
<"<div class=\"highlight\"><pre><span></span><span class=\"cm\">/*</span>\n" +
"<span class=\"cm\"> * Copyright (c) 2009-2010, Salvatore Sanfilippo <antirez at gmail dot com></span>\n" +
"<span class=\"cm\"> * All rights reserved.</span>\n" +
"<span class=\"cm\"> *</span>\n" +
"<span class=\"cm\"> * Redistribution and use in source and binary forms, with or without</span>\n" +
"<span class=\"cm\"> * modification, are permitted provided that the following conditions are met:</span>\n" +
[...]
" <span class=\"nf\">aeMain</span><span class=\"p\">(</span><span class=\"s s-Atom\">server</span><span class=\"p\">.</span><span class=\"s s-Atom\">el</span><span class=\"p\">);</span>\n" +
" <span class=\"nf\">aeDeleteEventLoop</span><span class=\"p\">(</span><span class=\"s s-Atom\">server</span><span class=\"p\">.</span><span class=\"s s-Atom\">el</span><span class=\"p\">);</span>\n" +
" <span class=\"s s-Atom\">return</span> <span class=\"mi\">0</span><span class=\"p\">;</span>\n" +
"<span class=\"p\">}</span>\n" +
"\n" +
"<span class=\"cm\">/* The End */</span>\n" +
"</pre></div>">
===============================================================================/<<PKGBUILDDIR>>/lib/pygments/popen.rb:156: warning: File.exists? is a deprecated name, use File.exist? instead
...................
Finished in 93.134140353 seconds.
-------------------------------------------------------------------------------
49 tests, 95 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
97.9592% passed
-------------------------------------------------------------------------------
0.53 tests/s, 1.02 assertions/s
rake aborted!
Command failed with status (1)
Tasks: TOP => default => test
(See full trace by running task with --trace)
ERROR: Test "ruby2.5" failed. Exiting.
dh_auto_install: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-pygments.rb returned exit code 1
make[1]: *** [debian/rules:22: override_dh_auto_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:10: binary-indep] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary-indep subprocess returned exit status 2
--------------------------------------------------------------------------------
I've put a bunch of failed build logs here:
https://people.debian.org/~sanvila/build-logs/ruby-pygments.rb/
We increased the timeout in debian/rules so that the unit test that
failed before did not timeout anymore, but if we also had to make this
new test to timeout deliberately, we would end up targeting a specific
CPU speed to build the package, which is precisely what we don't want
to do and the reason we increased the timeout in the first place.
I would just disable the test expecting a timeout, as in the patch below.
Sorry for not noticing this before.
Thanks.
--- a/test/test_pygments.rb
+++ b/test/test_pygments.rb
@@ -38,12 +38,6 @@ class PygmentsHighlightTest < Test::Unit::TestCase
assert_equal 458511, code.bytesize.to_i
end
- def test_returns_nil_on_timeout
- large_code = REDIS_CODE * 300
- code = P.highlight(large_code) # a 30 mb highlight request will timeout
- assert_equal nil, code
- end
-
def test_highlight_works_with_null_bytes
code = P.highlight("\0hello", :lexer => 'rb')
assert_match "hello", code
More information about the Pkg-ruby-extras-maintainers
mailing list