From 86412b90f3161db4c650d9387bbdfdf0813ef2c2 Mon Sep 17 00:00:00 2001 From: jianli-97 Date: Thu, 6 Apr 2023 09:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAisula=E6=B7=BB=E5=8A=A0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mantle/kola/tests/isula/isula.go | 112 +++++++++++++++++++++++++++++-- 1 file changed, 105 insertions(+), 7 deletions(-) diff --git a/mantle/kola/tests/isula/isula.go b/mantle/kola/tests/isula/isula.go index 6849859d..91dec51a 100644 --- a/mantle/kola/tests/isula/isula.go +++ b/mantle/kola/tests/isula/isula.go @@ -3,17 +3,26 @@ package isula import ( "fmt" "strings" - "github.com/coreos/mantle/kola/register" + "github.com/coreos/mantle/kola/cluster" - "github.com/coreos/mantle/platform" + "github.com/coreos/mantle/kola/register" tutil "github.com/coreos/mantle/kola/tests/util" + "github.com/coreos/mantle/platform" ) -func init(){ +func init() { register.RegisterTest(®ister.Test{ Run: isulaBaseTest, ClusterSize: 1, Name: `isula.base`, + Flags: []register.Flag{register.RequiresInternetAccess}, + }) + register.RegisterTest(®ister.Test{ + Run: isulaWorkflow, + ClusterSize: 1, + Name: `isula.workflow`, + Flags: []register.Flag{register.RequiresInternetAccess}, + FailFast: true, }) } @@ -36,7 +45,7 @@ func isulaInfo(c cluster.TestCluster) { } // Returns the result of isula info as a simplifiedIsulaInfo -func getIsulaInfo(c cluster.TestCluster, m platform.Machine) (error) { +func getIsulaInfo(c cluster.TestCluster, m platform.Machine) error { result, err := c.SSH(m, `sudo isula info`) if err != nil { @@ -47,14 +56,14 @@ func getIsulaInfo(c cluster.TestCluster, m platform.Machine) (error) { if strings.Contains(line, "Storage Driver") { if strings.Contains(line, "overlay") { continue - } else{ + } else { c.Errorf("Unexpected Storage Driver") } } if strings.Contains(line, "Operating System") { if strings.Contains(line, "NestOS") { continue - } else{ + } else { c.Errorf("Unexpected Operating System") } } @@ -99,4 +108,93 @@ func isulaResources(c cluster.TestCluster) { c.Fatalf("Failed to run %q: output: %q status: %q", cmd, output, err) } } -} \ No newline at end of file +} + +func isulaWorkflow(c cluster.TestCluster) { + m := c.Machines()[0] + + // Run iSulad + c.Run("runIsulad", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo systemctl start isulad.service") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Run container + c.Run("run", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula run -itd --name busybox hub.oepkgs.net/library/busybox") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Execute command in container + c.Run("exec", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula exec busybox echo hello") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Cp local files to container + c.Run("cp", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo touch example.txt && sudo isula cp example.txt busybox:/home") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Export container to tar + c.Run("export", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula export -o local_busybox.tar busybox") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Import + c.Run("import", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula import local_busybox.tar local_busybox && sudo isula images | grep local_busybox") + if err != nil { + c.Fatal(err) + } + }) + + // // Test: Load tar + // c.Run("load", func(c cluster.TestCluster) { + // _, err := c.SSH(m, "sudo chmod +rw local_busybox.tar && sudo isula load --input local_busybox.tar && sudo isula images | grep local_busybox") + // if err != nil { + // c.Fatal(err) + // } + // }) + + // Test: Stop container + c.Run("stop", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula stop busybox") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Remove container + c.Run("remove", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula rm busybox && sudo isula ps -a | grep busybox") + if err != nil { + c.Fatal(err) + } + }) + + // Test: Delete image + c.Run("delete", func(c cluster.TestCluster) { + _, err := c.SSH(m, "sudo isula rmi hub.oepkgs.net/library/busybox") + if err != nil { + c.Fatal(err) + } + + _, err = c.SSH(m, "sudo isula images | grep hub.oepkgs.net/library/busybox") + if err != nil { + c.Fatalf("Image should be deleted but found") + } + }) +} -- Gitee