| package main |
| |
| import ( |
| . "fd.io/hs-test/infra" |
| "fmt" |
| ) |
| |
| func init() { |
| RegisterVppProxyTests(VppProxyHttpTcpTest, VppProxyHttpTlsTest) |
| RegisterEnvoyProxyTests(EnvoyProxyHttpTcpTest) |
| RegisterNginxProxyTests(NginxMirroringTest) |
| } |
| |
| func configureVppProxy(s *VppProxySuite, proto string, proxyPort uint16) { |
| vppProxy := s.GetContainerByName(VppProxyContainerName).VppInstance |
| output := vppProxy.Vppctl( |
| "test proxy server server-uri %s://%s/%d client-uri tcp://%s/%d", |
| proto, |
| s.VppProxyAddr(), |
| proxyPort, |
| s.NginxAddr(), |
| s.NginxPort(), |
| ) |
| s.Log("proxy configured: " + output) |
| } |
| |
| func VppProxyHttpTcpTest(s *VppProxySuite) { |
| var proxyPort uint16 = 8080 |
| configureVppProxy(s, "tcp", proxyPort) |
| uri := fmt.Sprintf("http://%s:%d/httpTestFile", s.VppProxyAddr(), proxyPort) |
| s.CurlDownloadResource(uri) |
| } |
| |
| func VppProxyHttpTlsTest(s *VppProxySuite) { |
| var proxyPort uint16 = 8080 |
| configureVppProxy(s, "tls", proxyPort) |
| uri := fmt.Sprintf("https://%s:%d/httpTestFile", s.VppProxyAddr(), proxyPort) |
| s.CurlDownloadResource(uri) |
| } |
| |
| func EnvoyProxyHttpTcpTest(s *EnvoyProxySuite) { |
| uri := fmt.Sprintf("http://%s:%d/httpTestFile", s.ProxyAddr(), s.ProxyPort()) |
| s.CurlDownloadResource(uri) |
| } |
| |
| // broken when CPUS > 1 |
| func NginxMirroringTest(s *NginxProxySuite) { |
| s.SkipIfMultiWorker() |
| uri := fmt.Sprintf("http://%s:%d/httpTestFile", s.ProxyAddr(), s.ProxyPort()) |
| s.CurlDownloadResource(uri) |
| } |