mirror of https://github.com/k3s-io/k3s
Merge pull request #773 from smarterclayton/speed_up_proxy_tests
Remove 8 seconds of unnecessary sleeps from proxy testspull/6/head
commit
38c4cdff99
|
@ -51,6 +51,7 @@ type ConfigSourceEtcd struct {
|
||||||
client *etcd.Client
|
client *etcd.Client
|
||||||
serviceChannel chan ServiceUpdate
|
serviceChannel chan ServiceUpdate
|
||||||
endpointsChannel chan EndpointsUpdate
|
endpointsChannel chan EndpointsUpdate
|
||||||
|
interval time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewConfigSourceEtcd creates a new ConfigSourceEtcd and immediately runs the created ConfigSourceEtcd in a goroutine.
|
// NewConfigSourceEtcd creates a new ConfigSourceEtcd and immediately runs the created ConfigSourceEtcd in a goroutine.
|
||||||
|
@ -59,6 +60,7 @@ func NewConfigSourceEtcd(client *etcd.Client, serviceChannel chan ServiceUpdate,
|
||||||
client: client,
|
client: client,
|
||||||
serviceChannel: serviceChannel,
|
serviceChannel: serviceChannel,
|
||||||
endpointsChannel: endpointsChannel,
|
endpointsChannel: endpointsChannel,
|
||||||
|
interval: 2 * time.Second,
|
||||||
}
|
}
|
||||||
go config.Run()
|
go config.Run()
|
||||||
return config
|
return config
|
||||||
|
@ -76,7 +78,7 @@ func (s ConfigSourceEtcd) Run() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
glog.Errorf("Failed to get any services: %v", err)
|
glog.Errorf("Failed to get any services: %v", err)
|
||||||
time.Sleep(2 * time.Second)
|
time.Sleep(s.interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(services) > 0 {
|
if len(services) > 0 {
|
||||||
|
|
|
@ -27,6 +27,17 @@ import (
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func waitForClosedPort(p *Proxier, proxyPort string) error {
|
||||||
|
for i := 0; i < 50; i++ {
|
||||||
|
_, err := net.Dial("tcp", net.JoinHostPort("127.0.0.1", proxyPort))
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
time.Sleep(1 * time.Millisecond)
|
||||||
|
}
|
||||||
|
return fmt.Errorf("port %s still open", proxyPort)
|
||||||
|
}
|
||||||
|
|
||||||
// a simple echoServer that only accepts one connection. Returns port actually
|
// a simple echoServer that only accepts one connection. Returns port actually
|
||||||
// being listened on, or an error.
|
// being listened on, or an error.
|
||||||
func echoServer(t *testing.T, addr string) (string, error) {
|
func echoServer(t *testing.T, addr string) (string, error) {
|
||||||
|
@ -107,10 +118,8 @@ func TestProxyStop(t *testing.T) {
|
||||||
|
|
||||||
p.StopProxy("echo")
|
p.StopProxy("echo")
|
||||||
// Wait for the port to really close.
|
// Wait for the port to really close.
|
||||||
time.Sleep(2 * time.Second)
|
if err := waitForClosedPort(p, proxyPort); err != nil {
|
||||||
_, err = net.Dial("tcp", net.JoinHostPort("127.0.0.1", proxyPort))
|
t.Fatalf(err.Error())
|
||||||
if err == nil {
|
|
||||||
t.Fatalf("Unexpected non-error.")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,11 +145,8 @@ func TestProxyUpdateDelete(t *testing.T) {
|
||||||
conn.Close()
|
conn.Close()
|
||||||
|
|
||||||
p.OnUpdate([]api.Service{})
|
p.OnUpdate([]api.Service{})
|
||||||
// Wait for the port to close.
|
if err := waitForClosedPort(p, proxyPort); err != nil {
|
||||||
time.Sleep(2 * time.Second)
|
t.Fatalf(err.Error())
|
||||||
_, err = net.Dial("tcp", net.JoinHostPort("127.0.0.1", proxyPort))
|
|
||||||
if err == nil {
|
|
||||||
t.Fatalf("Unexpected non-error.")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,14 +173,14 @@ func TestProxyUpdatePort(t *testing.T) {
|
||||||
l.Close()
|
l.Close()
|
||||||
|
|
||||||
// Wait for the socket to actually get free.
|
// Wait for the socket to actually get free.
|
||||||
time.Sleep(2 * time.Second)
|
if err := waitForClosedPort(p, port); err != nil {
|
||||||
|
t.Fatalf(err.Error())
|
||||||
|
}
|
||||||
p.OnUpdate([]api.Service{
|
p.OnUpdate([]api.Service{
|
||||||
{JSONBase: api.JSONBase{ID: "echo"}, Port: portNum},
|
{JSONBase: api.JSONBase{ID: "echo"}, Port: portNum},
|
||||||
})
|
})
|
||||||
time.Sleep(2 * time.Second)
|
if err := waitForClosedPort(p, proxyPort); err != nil {
|
||||||
_, err = net.Dial("tcp", net.JoinHostPort("127.0.0.1", proxyPort))
|
t.Fatalf(err.Error())
|
||||||
if err == nil {
|
|
||||||
t.Fatalf("Unexpected non-error.")
|
|
||||||
}
|
}
|
||||||
testEchoConnection(t, "127.0.0.1", port)
|
testEchoConnection(t, "127.0.0.1", port)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue