diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-07-24 15:48:44 +1200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-07-29 19:20:30 -0300 |
commit | 9c8f6e0cdfcf3be90bd819751cf76ba760556d13 (patch) | |
tree | ea57a0c1a211bd37a8ffaadac8dbea4f9a1f455f | |
parent | d6a7408fd319749b9cd47690f03720d1a5c088ca (diff) | |
download | gitlab-ce-9c8f6e0cdfcf3be90bd819751cf76ba760556d13.tar.gz |
Stub DNS to return IPv4 addressdeterminstic_dns_specs
Otherwise certain machines return IPv6 first, which is non-deterministic
-rw-r--r-- | spec/lib/gitlab/http_connection_adapter_spec.rb | 6 | ||||
-rw-r--r-- | spec/support/helpers/stub_requests.rb | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/spec/lib/gitlab/http_connection_adapter_spec.rb b/spec/lib/gitlab/http_connection_adapter_spec.rb index 930d1f62272..1532fd1103e 100644 --- a/spec/lib/gitlab/http_connection_adapter_spec.rb +++ b/spec/lib/gitlab/http_connection_adapter_spec.rb @@ -3,7 +3,13 @@ require 'spec_helper' describe Gitlab::HTTPConnectionAdapter do + include StubRequests + describe '#connection' do + before do + stub_all_dns('https://example.org', ip_address: '93.184.216.34') + end + context 'when local requests are not allowed' do it 'sets up the connection' do uri = URI('https://example.org') diff --git a/spec/support/helpers/stub_requests.rb b/spec/support/helpers/stub_requests.rb index 6eb8007ed26..473f07dd413 100644 --- a/spec/support/helpers/stub_requests.rb +++ b/spec/support/helpers/stub_requests.rb @@ -28,6 +28,19 @@ module StubRequests .and_return([addr]) end + def stub_all_dns(url, ip_address:) + url = URI(url) + port = 80 # arbitarily chosen, does not matter as we are not going to connect + socket = Socket.sockaddr_in(port, ip_address) + addr = Addrinfo.new(socket) + + # See Gitlab::UrlBlocker + allow(Addrinfo).to receive(:getaddrinfo).and_call_original + allow(Addrinfo).to receive(:getaddrinfo) + .with(url.hostname, anything, nil, :STREAM) + .and_return([addr]) + end + def stubbed_hostname(url, hostname: IP_ADDRESS_STUB) url = parse_url(url) url.hostname = hostname |