This is an automated email from the ASF dual-hosted git repository. tsato pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 667d4c1c012dde49cc6eeaeb697ffebc7941eb3c Author: phantomjinx <[email protected]> AuthorDate: Mon Oct 3 16:52:40 2022 +0100 (e2e): Splits the TestKamelCLIRun tests * Rather than trying to delete resources at the end of each sub-test, it is simpler and more reliable to generate a new namespace for each and have it deleted * The sampleJar URL is changed for the http dependency tests to avoid the request have to do a redirect. This improves the reliability of its retrieval * Sets the http dependency tests to problematic since on OCP4, the repositories are not being detected by the maven build causing test failures. See #3708. --- e2e/namespace/install/cli/run_test.go | 267 ++++++++++++++++++++-------------- 1 file changed, 156 insertions(+), 111 deletions(-) diff --git a/e2e/namespace/install/cli/run_test.go b/e2e/namespace/install/cli/run_test.go index ca0a10ef5..472ad0552 100644 --- a/e2e/namespace/install/cli/run_test.go +++ b/e2e/namespace/install/cli/run_test.go @@ -24,6 +24,7 @@ package common import ( "fmt" + "os" "testing" . "github.com/onsi/gomega" @@ -36,117 +37,161 @@ import ( v1 "github.com/apache/camel-k/pkg/apis/camel/v1" ) -func TestKamelCLIRun(t *testing.T) { +var sampleJar = "https://raw.githubusercontent.com/apache/camel-k/main/e2e/global/common/traits/files/jvm/sample-1.0.jar" + +func operatorID(ns string) string { + return fmt.Sprintf("camel-k-%s", ns) +} + +func installWithID(ns string) { + Expect(KamelInstallWithID(operatorID(ns), ns).Execute()).To(Succeed()) + Eventually(OperatorPod(ns)).ShouldNot(BeNil()) + Eventually(PlatformPhase(ns), TestTimeoutLong).Should(Equal(v1.IntegrationPlatformPhaseReady)) +} + +func TestKamelCLIRunGitHubExampleJava(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, + "github:apache/camel-k/e2e/namespace/install/files/Java.java").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) + }) +} + +func TestKamelCLIRunGitHubExampleJavaRaw(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, + "https://raw.githubusercontent.com/apache/camel-k/main/e2e/namespace/install/files/Java.java").Execute()). + To(Succeed()) + Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) + }) +} + +func TestKamelCLIRunGitHubExampleJavaBranch(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, + "github:apache/camel-k/e2e/namespace/install/files/Java.java?branch=main").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) + }) +} + +func TestKamelCLIRunGitHubExampleGistID(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + name := "github-gist-id" + Expect(KamelRunWithID(operatorID(ns), ns, "--name", name, + "gist:e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!")) + }) +} + +func TestKamelCLIRunGitHubExampleGistURL(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + name := "github-gist-url" + Expect(KamelRunWithID(operatorID(ns), ns, "--name", name, + "https://gist.github.com/lburgazzoli/e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!")) + }) +} + +func TestKamelCLIRunAndUpdate(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + name := "run" + Expect(KamelRunWithID(operatorID(ns), ns, "files/run.yaml", "--name", name).Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic default")) + + // Re-run the Integration with an updated configuration + Expect(KamelRunWithID(operatorID(ns), ns, "files/run.yaml", "--name", name, "-p", "property=value").Execute()). + To(Succeed()) + + // Check the Deployment has progressed successfully + Eventually(DeploymentCondition(ns, name, appsv1.DeploymentProgressing), TestTimeoutShort). + Should(MatchFields(IgnoreExtras, Fields{ + "Status": Equal(corev1.ConditionTrue), + "Reason": Equal("NewReplicaSetAvailable"), + })) + + // Check the new configuration is taken into account + Eventually(IntegrationPodPhase(ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). + Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic value")) + + }) +} + +/* + * TODO + * The dependency cannot be read by maven while building. See #3708 + * + * Adding CAMEL_K_TEST_SKIP_PROBLEMATIC env var for the moment. + */ +func TestKamelCLIRunWithHttpDependency(t *testing.T) { + if os.Getenv("CAMEL_K_TEST_SKIP_PROBLEMATIC") == "true" { + t.Skip("WARNING: Test marked as problematic ... skipping") + } + WithNewTestNamespace(t, func(ns string) { + installWithID(ns) + + fmt.Println("OperatorID: ", operatorID(ns)) + Expect(KamelRunWithID(operatorID(ns), ns, "../../../global/common/traits/files/jvm/Classpath.java", + "-d", sampleJar, "--verbose", + ).Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!")) + }) +} + +/* + * TODO + * The dependency cannot be read by maven while building. See #3708 + * + * Adding CAMEL_K_TEST_SKIP_PROBLEMATIC env var for the moment. + */ +func TestKamelCLIRunHttpDependencyUsingOptions(t *testing.T) { + if os.Getenv("CAMEL_K_TEST_SKIP_PROBLEMATIC") == "true" { + t.Skip("WARNING: Test marked as problematic ... skipping") + } WithNewTestNamespace(t, func(ns string) { - operatorID := fmt.Sprintf("camel-k-%s", ns) - Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed()) - - t.Run("Examples from GitHub", func(t *testing.T) { - t.Run("Java", func(t *testing.T) { - Expect(KamelRunWithID(operatorID, ns, - "github:apache/camel-k/e2e/namespace/install/files/Java.java").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - t.Run("Java (RAW)", func(t *testing.T) { - Expect(KamelRunWithID(operatorID, ns, - "https://raw.githubusercontent.com/apache/camel-k/main/e2e/namespace/install/files/Java.java").Execute()). - To(Succeed()) - Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - t.Run("Java (branch)", func(t *testing.T) { - Expect(KamelRunWithID(operatorID, ns, - "github:apache/camel-k/e2e/namespace/install/files/Java.java?branch=main").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - t.Run("Gist (ID)", func(t *testing.T) { - name := "github-gist-id" - Expect(KamelRunWithID(operatorID, ns, "--name", name, - "gist:e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - t.Run("Gist (URL)", func(t *testing.T) { - name := "github-gist-url" - Expect(KamelRunWithID(operatorID, ns, "--name", name, - "https://gist.github.com/lburgazzoli/e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!")) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - // Clean up - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - - t.Run("Run and update", func(t *testing.T) { - name := "run" - Expect(KamelRunWithID(operatorID, ns, "files/run.yaml", "--name", name).Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic default")) - - // Re-run the Integration with an updated configuration - Expect(KamelRunWithID(operatorID, ns, "files/run.yaml", "--name", name, "-p", "property=value").Execute()). - To(Succeed()) - - // Check the Deployment has progressed successfully - Eventually(DeploymentCondition(ns, name, appsv1.DeploymentProgressing), TestTimeoutShort). - Should(MatchFields(IgnoreExtras, Fields{ - "Status": Equal(corev1.ConditionTrue), - "Reason": Equal("NewReplicaSetAvailable"), - })) - - // Check the new configuration is taken into account - Eventually(IntegrationPodPhase(ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort). - Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic value")) - - // Clean up - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - t.Run("Run with http dependency", func(t *testing.T) { - Expect(KamelRunWithID(operatorID, ns, "../../../global/common/traits/files/jvm/Classpath.java", - "-d", "https://github.com/apache/camel-k/raw/main/e2e/global/common/traits/files/jvm/sample-1.0.jar", - ).Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) - t.Run("Run with http dependency using options", func(t *testing.T) { - Expect(KamelRunWithID(operatorID, ns, "../../../global/common/traits/files/jvm/Classpath.java", - "-d", "https://github.com/apache/camel-k/raw/main/e2e/global/common/traits/files/jvm/sample-1.0.jar", - "-d", "https://raw.githubusercontent.com/apache/camel-k/main/e2e/namespace/install/cli/files/Java.java|targetPath=/tmp/foo", - ).Execute()).To(Succeed()) - Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) - Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) - Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!")) - Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed()) - }) + installWithID(ns) + + Expect(KamelRunWithID(operatorID(ns), ns, "../../../global/common/traits/files/jvm/Classpath.java", + "-d", sampleJar, "--verbose", + "-d", "https://raw.githubusercontent.com/apache/camel-k/main/e2e/namespace/install/cli/files/Java.java|targetPath=/tmp/foo", + ).Execute()).To(Succeed()) + Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning)) + Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue)) + Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!")) }) }
