summaryrefslogtreecommitdiff
path: root/spec/support
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-06-05 16:30:19 -0600
committermo khan <mo.khan@gmail.com>2020-06-08 18:24:52 -0600
commit8e206689d9aae60f20ed25ce2c55b1f9a80a8daa (patch)
treed37f47cdbe4acee4aecc827006a811dba5010dd1 /spec/support
parent5eef2e4c1a5c28f4e2b8e48e4701dae56264a979 (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.rb39
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