Skip to content

Commit bda2d90

Browse files
deivid-rodriguezhsbt
authored andcommitted
Rewrite specs to not start local dev servers
They cause flakies when different tests start them in parallel, and also make the specs more complicated.
1 parent 9598ed9 commit bda2d90

File tree

6 files changed

+9
-106
lines changed

6 files changed

+9
-106
lines changed

spec/bundler/install/gems/dependency_api_fallback_spec.rb

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,16 @@
33
RSpec.describe "gemcutter's dependency API" do
44
context "when Gemcutter API takes too long to respond" do
55
before do
6-
require_rack_test
7-
8-
port = find_unused_port
9-
@server_uri = "http://127.0.0.1:#{port}"
10-
11-
require_relative "../../support/artifice/endpoint_timeout"
12-
require_relative "../../support/silent_logger"
13-
14-
require "rackup/server"
15-
16-
@t = Thread.new do
17-
server = Rackup::Server.start(app: EndpointTimeout,
18-
Host: "0.0.0.0",
19-
Port: port,
20-
server: "webrick",
21-
AccessLog: [],
22-
Logger: Spec::SilentLogger.new)
23-
server.start
24-
end
25-
@t.run
26-
27-
wait_for_server("127.0.0.1", port)
286
bundle "config set timeout 1"
297
end
308

31-
after do
32-
Artifice.deactivate
33-
@t.kill
34-
@t.join
35-
end
36-
379
it "times out and falls back on the modern index" do
38-
install_gemfile <<-G, artifice: nil, env: { "BUNDLER_SPEC_GEM_REPO" => gem_repo1.to_s }
39-
source "#{@server_uri}"
10+
install_gemfile <<-G, artifice: "endpoint_timeout"
11+
source "https://gem.repo1"
4012
gem "myrack"
4113
G
4214

43-
expect(out).to include("Fetching source index from #{@server_uri}/")
15+
expect(out).to include("Fetching source index from https://gem.repo1/")
4416
expect(the_bundle).to include_gems "myrack 1.0.0"
4517
end
4618
end

spec/bundler/install/gems/gemfile_source_header_spec.rb

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,23 @@
22

33
RSpec.describe "fetching dependencies with a mirrored source" do
44
let(:mirror) { "https://server.example.org" }
5-
let(:original) { "http://127.0.0.1:#{@port}" }
65

76
before do
8-
setup_server
9-
bundle "config set --local mirror.#{mirror} #{original}"
10-
end
11-
12-
after do
13-
Artifice.deactivate
14-
@t.kill
15-
@t.join
16-
end
7+
build_repo2
178

18-
it "sets the 'X-Gemfile-Source' and 'User-Agent' headers and bundles successfully" do
199
gemfile <<-G
2010
source "#{mirror}"
2111
gem 'weakling'
2212
G
2313

24-
bundle :install, artifice: nil
14+
bundle "config set --local mirror.#{mirror} https://gem.repo2"
15+
end
16+
17+
it "sets the 'X-Gemfile-Source' and 'User-Agent' headers and bundles successfully" do
18+
bundle :install, artifice: "endpoint_mirror_source"
2519

2620
expect(out).to include("Installing weakling")
2721
expect(out).to include("Bundle complete")
2822
expect(the_bundle).to include_gems "weakling 0.0.3"
2923
end
30-
31-
private
32-
33-
def setup_server
34-
require_rack_test
35-
@port = find_unused_port
36-
@server_uri = "http://127.0.0.1:#{@port}"
37-
38-
require_relative "../../support/artifice/endpoint_mirror_source"
39-
require_relative "../../support/silent_logger"
40-
41-
require "rackup/server"
42-
43-
@t = Thread.new do
44-
Rackup::Server.start(app: EndpointMirrorSource,
45-
Host: "0.0.0.0",
46-
Port: @port,
47-
server: "webrick",
48-
AccessLog: [],
49-
Logger: Spec::SilentLogger.new)
50-
end.run
51-
52-
wait_for_server("127.0.0.1", @port)
53-
end
5424
end

spec/bundler/support/helpers.rb

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -514,26 +514,6 @@ def require_rack_test
514514
ENV["GEM_HOME"] = old_gem_home
515515
end
516516

517-
def wait_for_server(host, port, seconds = 15)
518-
tries = 0
519-
sleep 0.5
520-
TCPSocket.new(host, port)
521-
rescue StandardError => e
522-
raise(e) if tries > (seconds * 2)
523-
tries += 1
524-
retry
525-
end
526-
527-
def find_unused_port
528-
port = 21_453
529-
begin
530-
port += 1 while TCPSocket.new("127.0.0.1", port)
531-
rescue StandardError
532-
false
533-
end
534-
port
535-
end
536-
537517
def exit_status_for_signal(signal_number)
538518
# For details see: https://en.wikipedia.org/wiki/Exit_status#Shell_and_scripts
539519
128 + signal_number

spec/bundler/support/silent_logger.rb

Lines changed: 0 additions & 10 deletions
This file was deleted.

tool/bundler/test_gems.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
source "https://rubygems.org"
44

55
gem "rack", "~> 3.1"
6-
gem "rackup", "~> 2.1"
7-
gem "webrick", "~> 1.9"
86
gem "rack-test", "~> 2.1"
97
gem "compact_index", "~> 0.15.0"
108
gem "sinatra", "~> 4.1"

tool/bundler/test_gems.rb.lock

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ GEM
1818
rack (>= 3.0.0)
1919
rack-test (2.2.0)
2020
rack (>= 1.3)
21-
rackup (2.2.1)
22-
rack (>= 3)
2321
rake (13.3.0)
2422
rake-compiler-dock (1.9.1)
2523
rb_sys (0.9.111)
@@ -35,7 +33,6 @@ GEM
3533
rack-session (>= 2.0.0, < 3)
3634
tilt (~> 2.0)
3735
tilt (2.6.0)
38-
webrick (1.9.1)
3936

4037
PLATFORMS
4138
java
@@ -51,12 +48,10 @@ DEPENDENCIES
5148
fiddle
5249
rack (~> 3.1)
5350
rack-test (~> 2.1)
54-
rackup (~> 2.1)
5551
rake (~> 13.1)
5652
rb_sys
5753
rubygems-generate_index (~> 1.1)
5854
sinatra (~> 4.1)
59-
webrick (~> 1.9)
6055

6156
CHECKSUMS
6257
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
@@ -69,15 +64,13 @@ CHECKSUMS
6964
rack-protection (4.1.1) sha256=51a254a5d574a7f0ca4f0672025ce2a5ef7c8c3bd09c431349d683e825d7d16a
7065
rack-session (2.1.0) sha256=437c3916535b58ef71c816ce4a2dee0a01c8a52ae6077dc2b6cd19085760a290
7166
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
72-
rackup (2.2.1) sha256=f737191fd5c5b348b7f0a4412a3b86383f88c43e13b8217b63d4c8d90b9e798d
7367
rake (13.3.0) sha256=96f5092d786ff412c62fde76f793cc0541bd84d2eb579caa529aa8a059934493
7468
rake-compiler-dock (1.9.1) sha256=e73720a29aba9c114728ce39cc0d8eef69ba61d88e7978c57bac171724cd4d53
7569
rb_sys (0.9.111) sha256=65822fd8d57c248cd893db0efe01bc6edc15fcbea3ba6666091e35430c1cbaf0
7670
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
7771
rubygems-generate_index (1.1.3) sha256=3571424322666598e9586a906485e1543b617f87644913eaf137d986a3393f5c
7872
sinatra (4.1.1) sha256=4e997b859aa1b5d2e624f85d5b0fd0f0b3abc0da44daa6cbdf10f7c0da9f4d00
7973
tilt (2.6.0) sha256=263d748466e0d83e510aa1a2e2281eff547937f0ef06be33d3632721e255f76b
80-
webrick (1.9.1) sha256=b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989
8174

8275
BUNDLED WITH
8376
2.7.0.dev

0 commit comments

Comments
 (0)