podman

Форк
0
/
init_test.go 
117 строк · 4.5 Кб
1
package integration
2

3
import (
4
	. "github.com/containers/podman/v5/test/utils"
5
	. "github.com/onsi/ginkgo/v2"
6
	. "github.com/onsi/gomega"
7
	. "github.com/onsi/gomega/gexec"
8
)
9

10
var _ = Describe("Podman init", func() {
11

12
	It("podman init bogus container", func() {
13
		session := podmanTest.Podman([]string{"start", "123456"})
14
		session.WaitWithDefaultTimeout()
15
		Expect(session).Should(Exit(125))
16
	})
17

18
	It("podman init with no arguments", func() {
19
		session := podmanTest.Podman([]string{"start"})
20
		session.WaitWithDefaultTimeout()
21
		Expect(session).Should(Exit(125))
22
	})
23

24
	It("podman init single container by ID", func() {
25
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
26
		session.WaitWithDefaultTimeout()
27
		Expect(session).Should(ExitCleanly())
28
		cid := session.OutputToString()
29
		init := podmanTest.Podman([]string{"init", cid})
30
		init.WaitWithDefaultTimeout()
31
		Expect(init).Should(ExitCleanly())
32
		Expect(init.OutputToString()).To(Equal(cid))
33
		result := podmanTest.Podman([]string{"inspect", cid})
34
		result.WaitWithDefaultTimeout()
35
		Expect(result).Should(ExitCleanly())
36
		conData := result.InspectContainerToJSON()
37
		Expect(conData[0].State).To(HaveField("Status", "initialized"))
38
	})
39

40
	It("podman init single container by name", func() {
41
		name := "test1"
42
		session := podmanTest.Podman([]string{"create", "--name", name, ALPINE, "ls"})
43
		session.WaitWithDefaultTimeout()
44
		Expect(session).Should(ExitCleanly())
45
		init := podmanTest.Podman([]string{"init", name})
46
		init.WaitWithDefaultTimeout()
47
		Expect(init).Should(ExitCleanly())
48
		Expect(init.OutputToString()).To(Equal(name))
49
		result := podmanTest.Podman([]string{"inspect", name})
50
		result.WaitWithDefaultTimeout()
51
		Expect(result).Should(ExitCleanly())
52
		conData := result.InspectContainerToJSON()
53
		Expect(conData[0].State).To(HaveField("Status", "initialized"))
54
	})
55

56
	It("podman init latest container", func() {
57
		SkipIfRemote("--latest flag n/a")
58
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
59
		session.WaitWithDefaultTimeout()
60
		Expect(session).Should(ExitCleanly())
61
		cid := session.OutputToString()
62
		init := podmanTest.Podman([]string{"init", "--latest"})
63
		init.WaitWithDefaultTimeout()
64
		Expect(init).Should(ExitCleanly())
65
		Expect(init.OutputToString()).To(Equal(cid))
66
		result := podmanTest.Podman([]string{"inspect", "--latest"})
67
		result.WaitWithDefaultTimeout()
68
		Expect(result).Should(ExitCleanly())
69
		conData := result.InspectContainerToJSON()
70
		Expect(conData[0].State).To(HaveField("Status", "initialized"))
71
	})
72

73
	It("podman init all three containers, one running", func() {
74
		session := podmanTest.Podman([]string{"create", "--name", "test1", ALPINE, "ls"})
75
		session.WaitWithDefaultTimeout()
76
		Expect(session).Should(ExitCleanly())
77
		cid := session.OutputToString()
78
		session2 := podmanTest.Podman([]string{"create", "--name", "test2", ALPINE, "ls"})
79
		session2.WaitWithDefaultTimeout()
80
		Expect(session2).Should(ExitCleanly())
81
		cid2 := session2.OutputToString()
82
		session3 := podmanTest.Podman([]string{"run", "--name", "test3", "-d", ALPINE, "top"})
83
		session3.WaitWithDefaultTimeout()
84
		Expect(session3).Should(ExitCleanly())
85
		cid3 := session3.OutputToString()
86
		init := podmanTest.Podman([]string{"init", "--all"})
87
		init.WaitWithDefaultTimeout()
88
		Expect(init).Should(ExitCleanly())
89
		Expect(init.OutputToString()).To(ContainSubstring(cid))
90
		Expect(init.OutputToString()).To(ContainSubstring(cid2))
91
		Expect(init.OutputToString()).To(ContainSubstring(cid3))
92
		result := podmanTest.Podman([]string{"inspect", "test1"})
93
		result.WaitWithDefaultTimeout()
94
		Expect(result).Should(ExitCleanly())
95
		conData := result.InspectContainerToJSON()
96
		Expect(conData[0].State).To(HaveField("Status", "initialized"))
97
		result2 := podmanTest.Podman([]string{"inspect", "test2"})
98
		result2.WaitWithDefaultTimeout()
99
		Expect(result2).Should(ExitCleanly())
100
		conData2 := result2.InspectContainerToJSON()
101
		Expect(conData2[0].State).To(HaveField("Status", "initialized"))
102
		result3 := podmanTest.Podman([]string{"inspect", "test3"})
103
		result3.WaitWithDefaultTimeout()
104
		Expect(result3).Should(ExitCleanly())
105
		conData3 := result3.InspectContainerToJSON()
106
		Expect(conData3[0].State).To(HaveField("Status", "running"))
107
	})
108

109
	It("podman init running container errors", func() {
110
		session := podmanTest.Podman([]string{"run", "--name", "init_test", "-d", ALPINE, "top"})
111
		session.WaitWithDefaultTimeout()
112
		Expect(session).Should(ExitCleanly())
113
		init := podmanTest.Podman([]string{"init", "init_test"})
114
		init.WaitWithDefaultTimeout()
115
		Expect(init).Should(Exit(125))
116
	})
117
})
118

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.