From c8b72e57a75262c0edeea839e9e34bb0c3e03d13 Mon Sep 17 00:00:00 2001
From: umohnani8 <umohnani@redhat.com>
Date: Mon, 21 May 2018 13:53:19 -0400
Subject: save and load should support multi-tag for docker-archive

The docker-archive tar files can have multiple tags for the same
image stored in it. Load pulls all the tags found in the archive
when loading a tar file. Save can oush multiple tags of the same
image to a tar archive.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #819
Approved by: rhatdan
---
 test/e2e/libpod_suite_test.go |  4 ++--
 test/e2e/load_test.go         | 28 ++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

(limited to 'test/e2e')

diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go
index 7007c5075..0c3dd2eea 100644
--- a/test/e2e/libpod_suite_test.go
+++ b/test/e2e/libpod_suite_test.go
@@ -567,8 +567,8 @@ func (p *PodmanTest) GetHostDistribution() string {
 		return ""
 	}
 	for _, line := range content {
-		if strings.HasPrefix(fmt.Sprintf("%s", line), "ID") {
-			fields := strings.Split(fmt.Sprintf("%s", line), "=")
+		if strings.HasPrefix(fmt.Sprintf("%x", line), "ID") {
+			fields := strings.Split(fmt.Sprintf("%x", line), "=")
 			if len(fields) < 2 {
 				return ""
 			}
diff --git a/test/e2e/load_test.go b/test/e2e/load_test.go
index e9c2d94ab..3fe68ad8e 100644
--- a/test/e2e/load_test.go
+++ b/test/e2e/load_test.go
@@ -133,4 +133,32 @@ var _ = Describe("Podman load", func() {
 		save.WaitWithDefaultTimeout()
 		Expect(save.ExitCode()).ToNot(Equal(0))
 	})
+
+	It("podman load multiple tags", func() {
+		outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")
+		alpVersion := "docker.io/library/alpine:3.2"
+
+		pull := podmanTest.Podman([]string{"pull", alpVersion})
+		pull.WaitWithDefaultTimeout()
+		Expect(pull.ExitCode()).To(Equal(0))
+
+		save := podmanTest.Podman([]string{"save", "-o", outfile, ALPINE, alpVersion})
+		save.WaitWithDefaultTimeout()
+		Expect(save.ExitCode()).To(Equal(0))
+
+		rmi := podmanTest.Podman([]string{"rmi", ALPINE, alpVersion})
+		rmi.WaitWithDefaultTimeout()
+		Expect(rmi.ExitCode()).To(Equal(0))
+
+		result := podmanTest.Podman([]string{"load", "-i", outfile})
+		result.WaitWithDefaultTimeout()
+		Expect(result.ExitCode()).To(Equal(0))
+
+		inspect := podmanTest.Podman([]string{"inspect", ALPINE})
+		inspect.WaitWithDefaultTimeout()
+		Expect(result.ExitCode()).To(Equal(0))
+		inspect = podmanTest.Podman([]string{"inspect", alpVersion})
+		inspect.WaitWithDefaultTimeout()
+		Expect(result.ExitCode()).To(Equal(0))
+	})
 })
-- 
cgit v1.2.3-54-g00ecf