diff options
| author | mo khan <mo.khan@gmail.com> | 2020-06-05 16:30:19 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-06-08 18:24:52 -0600 |
| commit | 8e206689d9aae60f20ed25ce2c55b1f9a80a8daa (patch) | |
| tree | d37f47cdbe4acee4aecc827006a811dba5010dd1 /spec/support | |
| parent | 5eef2e4c1a5c28f4e2b8e48e4701dae56264a979 (diff) | |
Use GOPROXY to test downloading modules for trusted and untrusted TLS endpoints
* Use haproxy to proxy to package registry
* Install haproxy in setup script
* Add markers for collapsible sections
* Move ignored groups setup to prepare_project
Diffstat (limited to 'spec/support')
| -rw-r--r-- | spec/support/proxy_helper.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/support/proxy_helper.rb b/spec/support/proxy_helper.rb new file mode 100644 index 0000000..b79d0e3 --- /dev/null +++ b/spec/support/proxy_helper.rb @@ -0,0 +1,39 @@ +module ProxyHelper + def x509_certificate(host) + License::Management.root.join("tmp/#{host}.crt") + end + + def generate_self_signed_certificate_for(host) + Dir.chdir License::Management.root.join('tmp') do + system([ + "rm -f #{host}.*", + "openssl req -x509 -newkey rsa:4096 -keyout #{host}.key -out #{host}.crt -days 999 -nodes -subj \"/C=/ST=/L=/O=/OU=/CN=*.test\"", + "cat #{host}.* > #{host}.pem" + ].join("&&")) + end + end + + def start_proxy_server + @proxy_server_pid ||= + begin + generate_self_signed_certificate_for('wildcard.test') + spawn("/usr/sbin/haproxy -f #{fixture_file('haproxy.cfg')}") + end + end + + def stop_proxy_server + return if !defined?(@proxy_server_pid) || @proxy_server_pid.nil? + + Process.kill("TERM", @proxy_server_pid) + Process.wait(@proxy_server_pid) + @proxy_server_pid = nil + end +end + +RSpec.configure do |config| + config.include(ProxyHelper, type: :integration) + + config.after(:example, type: :integration) do + stop_proxy_server + end +end |
