From 544036b40c9a7b2192e3ea0602f715ff9d40e7b3 Mon Sep 17 00:00:00 2001 From: Russell Centanni Date: Fri, 12 Jan 2024 14:42:47 -0500 Subject: [PATCH] test: update SSH tests to wait for start_dev before canceling the command Signed-off-by: Russell Centanni --- e2e/tests/ssh/ssh.go | 44 ++++++++++++++----- .../ssh/testdata/ssh-simple/devspace.yaml | 4 ++ .../ssh/testdata/ssh-variable/devspace.yaml | 4 ++ 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/e2e/tests/ssh/ssh.go b/e2e/tests/ssh/ssh.go index afb7cffded..0dac3af0f3 100644 --- a/e2e/tests/ssh/ssh.go +++ b/e2e/tests/ssh/ssh.go @@ -45,7 +45,7 @@ var _ = DevSpaceDescribe("ssh", func() { // create a new dev command and start it done := make(chan error) - cancelCtx, cancel := context.WithCancel(context.Background()) + cancelCtx, cancel := context.WithCancel(ctx) ginkgo.DeferCleanup(cancel) go func() { @@ -63,23 +63,31 @@ var _ = DevSpaceDescribe("ssh", func() { done <- devCmd.RunDefault(f) }() + // Wait for the dev session to start + gomega.Eventually(func(g gomega.Gomega) { + _, err := os.ReadFile("started") + g.Expect(err).NotTo(gomega.HaveOccurred()) + }). + WithPolling(time.Second). + WithTimeout(time.Second * 60). + Should(gomega.Succeed()) + // connect to the SSH server gomega.Eventually(func(g gomega.Gomega) { cmd := exec.Command("ssh", "test.ssh-simple.devspace", "ls") err := cmd.Run() g.Expect(err).NotTo(gomega.HaveOccurred()) - - cancel() }). WithPolling(time.Second). WithTimeout(time.Second * 60). Should(gomega.Succeed()) + cancel() err = <-done framework.ExpectNoError(err) }) - ginkgo.It("devspace dev should NOT start an SSH service when disabled with a variable", ginkgo.FlakeAttempts(3), func(ctx context.Context) { + ginkgo.It("devspace dev should NOT start an SSH service when disabled with a variable", func(ctx context.Context) { tempDir, err := framework.CopyToTempDir("tests/ssh/testdata/ssh-variable") framework.ExpectNoError(err) ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir) @@ -90,7 +98,7 @@ var _ = DevSpaceDescribe("ssh", func() { // create a new dev command and start it done := make(chan error) - cancelCtx, cancel := context.WithCancel(context.Background()) + cancelCtx, cancel := context.WithCancel(ctx) ginkgo.DeferCleanup(cancel) go func() { @@ -110,6 +118,15 @@ var _ = DevSpaceDescribe("ssh", func() { done <- devCmd.RunDefault(f) }() + // Wait for the dev session to start + gomega.Eventually(func(g gomega.Gomega) { + _, err := os.ReadFile("started") + g.Expect(err).NotTo(gomega.HaveOccurred()) + }). + WithPolling(time.Second). + WithTimeout(time.Second * 60). + Should(gomega.Succeed()) + gomega.Eventually(func(g gomega.Gomega) { cmd := exec.Command("ssh", "test.ssh-variable.devspace", "ls") out, err := cmd.CombinedOutput() @@ -121,13 +138,12 @@ var _ = DevSpaceDescribe("ssh", func() { gomega.ContainSubstring("ssh: connect to host localhost port 10023"), ), ) - - cancel() }). WithPolling(time.Second). WithTimeout(time.Second * 60). Should(gomega.Succeed()) + cancel() cmdErr := <-done framework.ExpectNoError(cmdErr) }) @@ -143,7 +159,7 @@ var _ = DevSpaceDescribe("ssh", func() { // create a new dev command and start it done := make(chan error) - cancelCtx, cancel := context.WithCancel(context.Background()) + cancelCtx, cancel := context.WithCancel(ctx) ginkgo.DeferCleanup(cancel) go func() { @@ -163,18 +179,26 @@ var _ = DevSpaceDescribe("ssh", func() { done <- devCmd.RunDefault(f) }() + // Wait for the dev session to start + gomega.Eventually(func(g gomega.Gomega) { + _, err := os.ReadFile("started") + g.Expect(err).NotTo(gomega.HaveOccurred()) + }). + WithPolling(time.Second). + WithTimeout(time.Second * 60). + Should(gomega.Succeed()) + // connect to the SSH server gomega.Eventually(func(g gomega.Gomega) { cmd := exec.Command("ssh", "test.ssh-variable.devspace", "ls") err := cmd.Run() g.Expect(err).NotTo(gomega.HaveOccurred()) - - cancel() }). WithPolling(time.Second). WithTimeout(time.Second * 60). Should(gomega.Succeed()) + cancel() cmdErr := <-done framework.ExpectNoError(cmdErr) }) diff --git a/e2e/tests/ssh/testdata/ssh-simple/devspace.yaml b/e2e/tests/ssh/testdata/ssh-simple/devspace.yaml index 1654dd5af7..64861aa2c0 100644 --- a/e2e/tests/ssh/testdata/ssh-simple/devspace.yaml +++ b/e2e/tests/ssh/testdata/ssh-simple/devspace.yaml @@ -13,6 +13,10 @@ deployments: - image: ${IMAGE} command: ["sleep"] args: ["999999999999"] +pipelines: + dev: | + run_default_pipeline dev + echo "started" > started dev: test: imageSelector: ${IMAGE} diff --git a/e2e/tests/ssh/testdata/ssh-variable/devspace.yaml b/e2e/tests/ssh/testdata/ssh-variable/devspace.yaml index 11a6846e18..fd8d627fab 100644 --- a/e2e/tests/ssh/testdata/ssh-variable/devspace.yaml +++ b/e2e/tests/ssh/testdata/ssh-variable/devspace.yaml @@ -15,6 +15,10 @@ deployments: - image: ${IMAGE} command: ["sleep"] args: ["999999999999"] +pipelines: + dev: | + run_default_pipeline dev + echo "started" > started dev: test: imageSelector: ${IMAGE}