mirror of https://github.com/k3s-io/k3s
fix golint failures for test/e2e/kubectl
parent
9ea1b3d86d
commit
8911a2ddbb
|
@ -658,7 +658,6 @@ test/e2e/framework/providers/kubemark
|
||||||
test/e2e/instrumentation
|
test/e2e/instrumentation
|
||||||
test/e2e/instrumentation/logging
|
test/e2e/instrumentation/logging
|
||||||
test/e2e/instrumentation/monitoring
|
test/e2e/instrumentation/monitoring
|
||||||
test/e2e/kubectl
|
|
||||||
test/e2e/lifecycle
|
test/e2e/lifecycle
|
||||||
test/e2e/lifecycle/bootstrap
|
test/e2e/lifecycle/bootstrap
|
||||||
test/e2e/network
|
test/e2e/network
|
||||||
|
|
|
@ -18,6 +18,7 @@ package kubectl
|
||||||
|
|
||||||
import "github.com/onsi/ginkgo"
|
import "github.com/onsi/ginkgo"
|
||||||
|
|
||||||
|
// SIGDescribe annotates the test with the SIG label.
|
||||||
func SIGDescribe(text string, body func()) bool {
|
func SIGDescribe(text string, body func()) bool {
|
||||||
return ginkgo.Describe("[sig-cli] "+text, body)
|
return ginkgo.Describe("[sig-cli] "+text, body)
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -39,8 +39,8 @@ import (
|
||||||
testutils "k8s.io/kubernetes/test/utils"
|
testutils "k8s.io/kubernetes/test/utils"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
|
|
||||||
. "github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
"github.com/onsi/gomega"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -116,6 +116,7 @@ func pfPod(expectedClientData, chunks, chunkSize, chunkIntervalMillis string, bi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WaitForTerminatedContainer wait till a given container be terminated for a given pod.
|
||||||
func WaitForTerminatedContainer(f *framework.Framework, pod *v1.Pod, containerName string) error {
|
func WaitForTerminatedContainer(f *framework.Framework, pod *v1.Pod, containerName string) error {
|
||||||
return framework.WaitForPodCondition(f.ClientSet, f.Namespace.Name, pod.Name, "container terminated", framework.PodStartTimeout, func(pod *v1.Pod) (bool, error) {
|
return framework.WaitForPodCondition(f.ClientSet, f.Namespace.Name, pod.Name, "container terminated", framework.PodStartTimeout, func(pod *v1.Pod) (bool, error) {
|
||||||
if len(testutils.TerminatedContainers(pod)[containerName]) > 0 {
|
if len(testutils.TerminatedContainers(pod)[containerName]) > 0 {
|
||||||
|
@ -199,7 +200,7 @@ func runPortForward(ns, podName string, port int) *portForwardCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
||||||
By("Creating the target pod")
|
ginkgo.By("Creating the target pod")
|
||||||
pod := pfPod("", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
pod := pfPod("", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
||||||
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
||||||
framework.Failf("Couldn't create pod: %v", err)
|
framework.Failf("Couldn't create pod: %v", err)
|
||||||
|
@ -208,21 +209,21 @@ func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
||||||
framework.Failf("Pod did not start running: %v", err)
|
framework.Failf("Pod did not start running: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Running 'kubectl port-forward'")
|
ginkgo.By("Running 'kubectl port-forward'")
|
||||||
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
||||||
defer cmd.Stop()
|
defer cmd.Stop()
|
||||||
|
|
||||||
By("Dialing the local port")
|
ginkgo.By("Dialing the local port")
|
||||||
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
By("Closing the connection to the local port")
|
ginkgo.By("Closing the connection to the local port")
|
||||||
conn.Close()
|
conn.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
By("Reading data from the local port")
|
ginkgo.By("Reading data from the local port")
|
||||||
fromServer, err := ioutil.ReadAll(conn)
|
fromServer, err := ioutil.ReadAll(conn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Unexpected error reading data from the server: %v", err)
|
framework.Failf("Unexpected error reading data from the server: %v", err)
|
||||||
|
@ -232,22 +233,22 @@ func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
||||||
framework.Failf("Expected %q from server, got %q", e, a)
|
framework.Failf("Expected %q from server, got %q", e, a)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Waiting for the target pod to stop running")
|
ginkgo.By("Waiting for the target pod to stop running")
|
||||||
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
||||||
framework.Failf("Container did not terminate: %v", err)
|
framework.Failf("Container did not terminate: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Verifying logs")
|
ginkgo.By("Verifying logs")
|
||||||
Eventually(func() (string, error) {
|
gomega.Eventually(func() (string, error) {
|
||||||
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
||||||
}, postStartWaitTimeout, podCheckInterval).Should(SatisfyAll(
|
}, postStartWaitTimeout, podCheckInterval).Should(gomega.SatisfyAll(
|
||||||
ContainSubstring("Accepted client connection"),
|
gomega.ContainSubstring("Accepted client connection"),
|
||||||
ContainSubstring("Done"),
|
gomega.ContainSubstring("Done"),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) {
|
func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) {
|
||||||
By("Creating the target pod")
|
ginkgo.By("Creating the target pod")
|
||||||
pod := pfPod("abc", "1", "1", "1", fmt.Sprintf("%s", bindAddress))
|
pod := pfPod("abc", "1", "1", "1", fmt.Sprintf("%s", bindAddress))
|
||||||
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
||||||
framework.Failf("Couldn't create pod: %v", err)
|
framework.Failf("Couldn't create pod: %v", err)
|
||||||
|
@ -256,35 +257,35 @@ func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) {
|
||||||
framework.Failf("Pod did not start running: %v", err)
|
framework.Failf("Pod did not start running: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Running 'kubectl port-forward'")
|
ginkgo.By("Running 'kubectl port-forward'")
|
||||||
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
||||||
defer cmd.Stop()
|
defer cmd.Stop()
|
||||||
|
|
||||||
By("Dialing the local port")
|
ginkgo.By("Dialing the local port")
|
||||||
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Closing the connection to the local port")
|
ginkgo.By("Closing the connection to the local port")
|
||||||
conn.Close()
|
conn.Close()
|
||||||
|
|
||||||
By("Waiting for the target pod to stop running")
|
ginkgo.By("Waiting for the target pod to stop running")
|
||||||
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
||||||
framework.Failf("Container did not terminate: %v", err)
|
framework.Failf("Container did not terminate: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Verifying logs")
|
ginkgo.By("Verifying logs")
|
||||||
Eventually(func() (string, error) {
|
gomega.Eventually(func() (string, error) {
|
||||||
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
||||||
}, postStartWaitTimeout, podCheckInterval).Should(SatisfyAll(
|
}, postStartWaitTimeout, podCheckInterval).Should(gomega.SatisfyAll(
|
||||||
ContainSubstring("Accepted client connection"),
|
gomega.ContainSubstring("Accepted client connection"),
|
||||||
ContainSubstring("Expected to read 3 bytes from client, but got 0 instead"),
|
gomega.ContainSubstring("Expected to read 3 bytes from client, but got 0 instead"),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework) {
|
||||||
By("Creating the target pod")
|
ginkgo.By("Creating the target pod")
|
||||||
pod := pfPod("abc", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
pod := pfPod("abc", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
||||||
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
||||||
framework.Failf("Couldn't create pod: %v", err)
|
framework.Failf("Couldn't create pod: %v", err)
|
||||||
|
@ -293,11 +294,11 @@ func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework)
|
||||||
framework.Failf("Pod did not start running: %v", err)
|
framework.Failf("Pod did not start running: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Running 'kubectl port-forward'")
|
ginkgo.By("Running 'kubectl port-forward'")
|
||||||
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
cmd := runPortForward(f.Namespace.Name, pod.Name, 80)
|
||||||
defer cmd.Stop()
|
defer cmd.Stop()
|
||||||
|
|
||||||
By("Dialing the local port")
|
ginkgo.By("Dialing the local port")
|
||||||
addr, err := net.ResolveTCPAddr("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
addr, err := net.ResolveTCPAddr("tcp", fmt.Sprintf("127.0.0.1:%d", cmd.port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Error resolving tcp addr: %v", err)
|
framework.Failf("Error resolving tcp addr: %v", err)
|
||||||
|
@ -307,17 +308,17 @@ func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework)
|
||||||
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
framework.Failf("Couldn't connect to port %d: %v", cmd.port, err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
By("Closing the connection to the local port")
|
ginkgo.By("Closing the connection to the local port")
|
||||||
conn.Close()
|
conn.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
By("Sending the expected data to the local port")
|
ginkgo.By("Sending the expected data to the local port")
|
||||||
fmt.Fprint(conn, "abc")
|
fmt.Fprint(conn, "abc")
|
||||||
|
|
||||||
By("Closing the write half of the client's connection")
|
ginkgo.By("Closing the write half of the client's connection")
|
||||||
conn.CloseWrite()
|
conn.CloseWrite()
|
||||||
|
|
||||||
By("Reading data from the local port")
|
ginkgo.By("Reading data from the local port")
|
||||||
fromServer, err := ioutil.ReadAll(conn)
|
fromServer, err := ioutil.ReadAll(conn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Unexpected error reading data from the server: %v", err)
|
framework.Failf("Unexpected error reading data from the server: %v", err)
|
||||||
|
@ -327,26 +328,26 @@ func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework)
|
||||||
framework.Failf("Expected %q from server, got %q", e, a)
|
framework.Failf("Expected %q from server, got %q", e, a)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Waiting for the target pod to stop running")
|
ginkgo.By("Waiting for the target pod to stop running")
|
||||||
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
if err := WaitForTerminatedContainer(f, pod, "portforwardtester"); err != nil {
|
||||||
framework.Failf("Container did not terminate: %v", err)
|
framework.Failf("Container did not terminate: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Verifying logs")
|
ginkgo.By("Verifying logs")
|
||||||
Eventually(func() (string, error) {
|
gomega.Eventually(func() (string, error) {
|
||||||
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
||||||
}, postStartWaitTimeout, podCheckInterval).Should(SatisfyAll(
|
}, postStartWaitTimeout, podCheckInterval).Should(gomega.SatisfyAll(
|
||||||
ContainSubstring("Accepted client connection"),
|
gomega.ContainSubstring("Accepted client connection"),
|
||||||
ContainSubstring("Received expected client data"),
|
gomega.ContainSubstring("Received expected client data"),
|
||||||
ContainSubstring("Done"),
|
gomega.ContainSubstring("Done"),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
||||||
config, err := framework.LoadConfig()
|
config, err := framework.LoadConfig()
|
||||||
Expect(err).NotTo(HaveOccurred(), "unable to get base config")
|
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "unable to get base config")
|
||||||
|
|
||||||
By("Creating the pod")
|
ginkgo.By("Creating the pod")
|
||||||
pod := pfPod("def", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
pod := pfPod("def", "10", "10", "100", fmt.Sprintf("%s", bindAddress))
|
||||||
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil {
|
||||||
framework.Failf("Couldn't create pod: %v", err)
|
framework.Failf("Couldn't create pod: %v", err)
|
||||||
|
@ -369,7 +370,7 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
||||||
}
|
}
|
||||||
defer ws.Close()
|
defer ws.Close()
|
||||||
|
|
||||||
Eventually(func() error {
|
gomega.Eventually(func() error {
|
||||||
channel, msg, err := wsRead(ws)
|
channel, msg, err := wsRead(ws)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
||||||
|
@ -381,9 +382,9 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
||||||
return fmt.Errorf("Received the wrong port: %d", p)
|
return fmt.Errorf("Received the wrong port: %d", p)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, time.Minute, 10*time.Second).Should(BeNil())
|
}, time.Minute, 10*time.Second).Should(gomega.BeNil())
|
||||||
|
|
||||||
Eventually(func() error {
|
gomega.Eventually(func() error {
|
||||||
channel, msg, err := wsRead(ws)
|
channel, msg, err := wsRead(ws)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
||||||
|
@ -395,18 +396,18 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
||||||
return fmt.Errorf("Received the wrong port: %d", p)
|
return fmt.Errorf("Received the wrong port: %d", p)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, time.Minute, 10*time.Second).Should(BeNil())
|
}, time.Minute, 10*time.Second).Should(gomega.BeNil())
|
||||||
|
|
||||||
By("Sending the expected data to the local port")
|
ginkgo.By("Sending the expected data to the local port")
|
||||||
err = wsWrite(ws, 0, []byte("def"))
|
err = wsWrite(ws, 0, []byte("def"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to write to websocket %s: %v", url.String(), err)
|
framework.Failf("Failed to write to websocket %s: %v", url.String(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("Reading data from the local port")
|
ginkgo.By("Reading data from the local port")
|
||||||
buf := bytes.Buffer{}
|
buf := bytes.Buffer{}
|
||||||
expectedData := bytes.Repeat([]byte("x"), 100)
|
expectedData := bytes.Repeat([]byte("x"), 100)
|
||||||
Eventually(func() error {
|
gomega.Eventually(func() error {
|
||||||
channel, msg, err := wsRead(ws)
|
channel, msg, err := wsRead(ws)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
return fmt.Errorf("Failed to read completely from websocket %s: %v", url.String(), err)
|
||||||
|
@ -419,14 +420,14 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) {
|
||||||
return fmt.Errorf("Expected %q from server, got %q", expectedData, buf.Bytes())
|
return fmt.Errorf("Expected %q from server, got %q", expectedData, buf.Bytes())
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, time.Minute, 10*time.Second).Should(BeNil())
|
}, time.Minute, 10*time.Second).Should(gomega.BeNil())
|
||||||
|
|
||||||
By("Verifying logs")
|
ginkgo.By("Verifying logs")
|
||||||
Eventually(func() (string, error) {
|
gomega.Eventually(func() (string, error) {
|
||||||
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
return framework.GetPodLogs(f.ClientSet, f.Namespace.Name, pod.Name, "portforwardtester")
|
||||||
}, postStartWaitTimeout, podCheckInterval).Should(SatisfyAll(
|
}, postStartWaitTimeout, podCheckInterval).Should(gomega.SatisfyAll(
|
||||||
ContainSubstring("Accepted client connection"),
|
gomega.ContainSubstring("Accepted client connection"),
|
||||||
ContainSubstring("Received expected client data"),
|
gomega.ContainSubstring("Received expected client data"),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,21 +436,21 @@ var _ = SIGDescribe("Kubectl Port forwarding", func() {
|
||||||
|
|
||||||
framework.KubeDescribe("With a server listening on 0.0.0.0", func() {
|
framework.KubeDescribe("With a server listening on 0.0.0.0", func() {
|
||||||
framework.KubeDescribe("that expects a client request", func() {
|
framework.KubeDescribe("that expects a client request", func() {
|
||||||
It("should support a client that connects, sends NO DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends NO DATA, and disconnects", func() {
|
||||||
doTestMustConnectSendNothing("0.0.0.0", f)
|
doTestMustConnectSendNothing("0.0.0.0", f)
|
||||||
})
|
})
|
||||||
It("should support a client that connects, sends DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends DATA, and disconnects", func() {
|
||||||
doTestMustConnectSendDisconnect("0.0.0.0", f)
|
doTestMustConnectSendDisconnect("0.0.0.0", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
framework.KubeDescribe("that expects NO client request", func() {
|
framework.KubeDescribe("that expects NO client request", func() {
|
||||||
It("should support a client that connects, sends DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends DATA, and disconnects", func() {
|
||||||
doTestConnectSendDisconnect("0.0.0.0", f)
|
doTestConnectSendDisconnect("0.0.0.0", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should support forwarding over websockets", func() {
|
ginkgo.It("should support forwarding over websockets", func() {
|
||||||
doTestOverWebSockets("0.0.0.0", f)
|
doTestOverWebSockets("0.0.0.0", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -457,21 +458,21 @@ var _ = SIGDescribe("Kubectl Port forwarding", func() {
|
||||||
// kubectl port-forward may need elevated privileges to do its job.
|
// kubectl port-forward may need elevated privileges to do its job.
|
||||||
framework.KubeDescribe("With a server listening on localhost", func() {
|
framework.KubeDescribe("With a server listening on localhost", func() {
|
||||||
framework.KubeDescribe("that expects a client request", func() {
|
framework.KubeDescribe("that expects a client request", func() {
|
||||||
It("should support a client that connects, sends NO DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends NO DATA, and disconnects", func() {
|
||||||
doTestMustConnectSendNothing("localhost", f)
|
doTestMustConnectSendNothing("localhost", f)
|
||||||
})
|
})
|
||||||
It("should support a client that connects, sends DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends DATA, and disconnects", func() {
|
||||||
doTestMustConnectSendDisconnect("localhost", f)
|
doTestMustConnectSendDisconnect("localhost", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
framework.KubeDescribe("that expects NO client request", func() {
|
framework.KubeDescribe("that expects NO client request", func() {
|
||||||
It("should support a client that connects, sends DATA, and disconnects", func() {
|
ginkgo.It("should support a client that connects, sends DATA, and disconnects", func() {
|
||||||
doTestConnectSendDisconnect("localhost", f)
|
doTestConnectSendDisconnect("localhost", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should support forwarding over websockets", func() {
|
ginkgo.It("should support forwarding over websockets", func() {
|
||||||
doTestOverWebSockets("localhost", f)
|
doTestOverWebSockets("localhost", f)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue