ysbaddaden/prax.cr

Tests are failing and test runner hangs.

jacksonrayhamilton opened this issue · 1 comments

My Ruby version is 2.4.1. When I run make test, a bunch of tests fail, and the test runner hangs.

~/projects/prax.cr (master) λ make test
mkdir -p bin
/usr/bin/crystal build /home/jackson/projects/prax.cr/src/prax.cr -o bin/prax-binary
bundle exec rake test
/home/jackson/.rbenv/versions/2.4.1/bin/ruby -I"lib:test" -I"/home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rake-10.4.2/lib" "/home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rake-10.4.2/lib/rake/rake_test_loader.rb" "test/failures_test.rb" "test/keepalive_test.rb" "test/port_forwarding_test.rb" "test/praxrc_test.rb" "test/proxy_test.rb" "test/public_file_test.rb" 
Run options: --seed 16225

# Running:

EES.SEEE.E..S....E

Fabulous run in 28.314632s, 0.6357 runs/s, 0.8123 assertions/s.

  1) Error:
PraxrcTest#test_praxrc_loaded:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1317:in `request_get'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:487:in `block in get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:485:in `get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:462:in `get'
    /home/jackson/projects/prax.cr/test/praxrc_test.rb:5:in `test_praxrc_loaded'


  2) Error:
ProxyTest#test_proxies_to_rack_applications:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1317:in `request_get'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:487:in `block in get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:485:in `get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:462:in `get'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:6:in `test_proxies_to_rack_applications'


  3) Error:
ProxyTest#test_alters_request_headers_and_sets_proxy_headers:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1317:in `request_get'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:487:in `block in get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:485:in `get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:462:in `get'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:39:in `test_alters_request_headers_and_sets_proxy_headers'


  4) Error:
ProxyTest#test_supports_xip_io:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1317:in `request_get'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:487:in `block in get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:485:in `get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:462:in `get'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:22:in `test_supports_xip_io'


  5) Error:
ProxyTest#test_augments_proxy_headers:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1165:in `get'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:53:in `block in test_augments_proxy_headers'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:52:in `test_augments_proxy_headers'


  6) Error:
ProxyTest#test_returns_multiple_set_cookie_headers:
Timeout::Error: execution expired
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `wait_readable'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:40:in `read_status_line'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http/response.rb:29:in `read_new'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1446:in `block in transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `catch'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1443:in `transport_request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1416:in `request'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:1317:in `request_get'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:487:in `block in get_response'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:877:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:608:in `start'
    /home/jackson/.rbenv/versions/2.4.1/lib/ruby/2.4.0/net/http.rb:485:in `get_response'
    /home/jackson/projects/prax.cr/test/proxy_test.rb:30:in `test_returns_multiple_set_cookie_headers'


  7) Error:
FailuresTest#test_host_header_is_missing_but_found_in_uri:
Timeout::Error: execution expired
    /home/jackson/projects/prax.cr/test/failures_test.rb:27:in `gets'
    /home/jackson/projects/prax.cr/test/failures_test.rb:27:in `block in test_host_header_is_missing_but_found_in_uri'
    /home/jackson/projects/prax.cr/test/failures_test.rb:23:in `open'
    /home/jackson/projects/prax.cr/test/failures_test.rb:23:in `test_host_header_is_missing_but_found_in_uri'

18 runs, 23 assertions, 0 failures, 7 errors, 3 skips

You have skipped tests. Run with --verbose for details.
^Crake aborted!
Interrupt: 
/home/jackson/.rbenv/versions/2.4.1/bin/bundle:22:in `load'
/home/jackson/.rbenv/versions/2.4.1/bin/bundle:22:in `<main>'
Tasks: TOP => test
(See full trace by running task with --trace)
/home/jackson/projects/prax.cr/test/test_helper.rb:18:in `wait': Interrupt
	from /home/jackson/projects/prax.cr/test/test_helper.rb:18:in `block in <top (required)>'
	from /home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.5.1/lib/minitest.rb:52:in `reverse_each'
	from /home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.5.1/lib/minitest.rb:52:in `block (2 levels) in autorun'
Makefile:78: recipe for target 'test' failed
make: *** [test] Error 1

But if I go back a few commits, they are succeeding:

~/projects/prax.cr (master) λ git checkout d88141a
~/projects/prax.cr ((v0.7.0)) λ make test
mkdir -p bin
/usr/bin/crystal build /home/jackson/projects/prax.cr/src/prax.cr -o bin/prax-binary
bundle exec rake test
/home/jackson/.rbenv/versions/2.4.1/bin/ruby -w -I"lib:test" -I"/home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rake-12.0.0/lib" "/home/jackson/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rake-12.0.0/lib/rake/rake_test_loader.rb" "test/failures_test.rb" "test/keepalive_test.rb" "test/port_forwarding_test.rb" "test/praxrc_test.rb" "test/proxy_test.rb" "test/public_file_test.rb" 
Run options: --seed 1715

# Running:

....S..S..S.......

Fabulous run in 2.511875s, 7.1660 runs/s, 17.9149 assertions/s.

18 runs, 45 assertions, 0 failures, 0 errors, 3 skips

You have skipped tests. Run with --verbose for details.

Maybe 4d0929e has broken the tests for newer Rubies?

Are there any specific versions of Ruby you have trouble with if we run bundle update again?