summaryrefslogtreecommitdiff
path: root/test/endpoint
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-08-29 14:07:02 -0500
committerbaude <bbaude@redhat.com>2019-08-29 14:08:29 -0500
commit2fb6cc2ceac680350b403e6173926331d7904722 (patch)
treed6ae928885837db3570a4b0fe9422a5a34f093b3 /test/endpoint
parent4e209fc10a55560ca181207cf43dae0cb0ec9be0 (diff)
downloadpodman-2fb6cc2ceac680350b403e6173926331d7904722.tar.gz
podman-2fb6cc2ceac680350b403e6173926331d7904722.tar.bz2
podman-2fb6cc2ceac680350b403e6173926331d7904722.zip
dont panic when using varlink commit and uppercase image names
when using an upper case image name for container commit, we observed panics due to a channel closing early. Fixes: #3897 Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'test/endpoint')
-rw-r--r--test/endpoint/commit.go47
-rw-r--r--test/endpoint/endpoint.go5
-rw-r--r--test/endpoint/exists_test.go2
3 files changed, 53 insertions, 1 deletions
diff --git a/test/endpoint/commit.go b/test/endpoint/commit.go
new file mode 100644
index 000000000..476ac6ca3
--- /dev/null
+++ b/test/endpoint/commit.go
@@ -0,0 +1,47 @@
+package endpoint
+
+import (
+ "encoding/json"
+ "os"
+
+ . "github.com/containers/libpod/test/utils"
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+var _ = Describe("Podman commit", func() {
+ var (
+ tempdir string
+ err error
+ endpointTest *EndpointTestIntegration
+ )
+
+ BeforeEach(func() {
+ tempdir, err = CreateTempDirInTempDir()
+ if err != nil {
+ os.Exit(1)
+ }
+ endpointTest = Setup(tempdir)
+ endpointTest.StartVarlinkWithCache()
+ })
+
+ AfterEach(func() {
+ endpointTest.Cleanup()
+
+ })
+
+ It("ensure commit with uppercase image name does not panic", func() {
+ body := make(map[string]string)
+ body["image_name"] = "FOO"
+ body["format"] = "oci"
+ body["name"] = "top"
+ b, err := json.Marshal(body)
+ Expect(err).To(BeNil())
+ // run the container to be committed
+ _ = endpointTest.startTopContainer("top")
+ result := endpointTest.Varlink("Commit", string(b), false)
+ // This indicates an error occured
+ Expect(len(result.StdErrToString())).To(BeNumerically(">", 0))
+ })
+
+})
diff --git a/test/endpoint/endpoint.go b/test/endpoint/endpoint.go
index 4f9e6055e..78aa957ab 100644
--- a/test/endpoint/endpoint.go
+++ b/test/endpoint/endpoint.go
@@ -189,6 +189,11 @@ func (p *EndpointTestIntegration) Varlink(endpoint, message string, more bool) *
return &EndpointSession{session}
}
+func (s *EndpointSession) StdErrToString() string {
+ fields := strings.Fields(fmt.Sprintf("%s", s.Err.Contents()))
+ return strings.Join(fields, " ")
+}
+
func (s *EndpointSession) OutputToString() string {
fields := strings.Fields(fmt.Sprintf("%s", s.Out.Contents()))
return strings.Join(fields, " ")
diff --git a/test/endpoint/exists_test.go b/test/endpoint/exists_test.go
index c8ab9e0f2..17e252a65 100644
--- a/test/endpoint/exists_test.go
+++ b/test/endpoint/exists_test.go
@@ -8,7 +8,7 @@ import (
. "github.com/onsi/gomega"
)
-var _ = Describe("Podman pull", func() {
+var _ = Describe("Podman exists", func() {
var (
tempdir string
err error