podman

Форк
0
/
cleanup_test.go 
114 строк · 4.1 Кб
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 container cleanup", func() {
11

12
	BeforeEach(func() {
13
		SkipIfRemote("podman container cleanup is not supported in remote")
14
	})
15

16
	It("podman cleanup bogus container", func() {
17
		session := podmanTest.Podman([]string{"container", "cleanup", "foobar"})
18
		session.WaitWithDefaultTimeout()
19
		Expect(session).Should(Exit(125))
20
		Expect(session.ErrorToString()).To(ContainSubstring("no such container"))
21
	})
22

23
	It("podman cleanup container by id", func() {
24
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
25
		session.WaitWithDefaultTimeout()
26
		Expect(session).Should(ExitCleanly())
27
		cid := session.OutputToString()
28
		session = podmanTest.Podman([]string{"container", "cleanup", cid})
29
		session.WaitWithDefaultTimeout()
30
		Expect(session).Should(ExitCleanly())
31
		Expect(session.OutputToString()).To(Equal(cid))
32
	})
33

34
	It("podman cleanup container by short id", func() {
35
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
36
		session.WaitWithDefaultTimeout()
37
		Expect(session).Should(ExitCleanly())
38
		cid := session.OutputToString()
39
		shortID := cid[0:10]
40
		session = podmanTest.Podman([]string{"container", "cleanup", shortID})
41
		session.WaitWithDefaultTimeout()
42
		Expect(session).Should(ExitCleanly())
43
		Expect(session.OutputToString()).To(Equal(shortID))
44
	})
45

46
	It("podman cleanup container by name", func() {
47
		session := podmanTest.Podman([]string{"create", "--name", "foo", ALPINE, "ls"})
48
		session.WaitWithDefaultTimeout()
49
		Expect(session).Should(ExitCleanly())
50
		session = podmanTest.Podman([]string{"container", "cleanup", "foo"})
51
		session.WaitWithDefaultTimeout()
52
		Expect(session).Should(ExitCleanly())
53
		Expect(session.OutputToString()).To(Equal("foo"))
54
	})
55

56
	It("podman cleanup all containers", func() {
57
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
58
		session.WaitWithDefaultTimeout()
59
		Expect(session).Should(ExitCleanly())
60
		cid := session.OutputToString()
61

62
		session = podmanTest.Podman([]string{"container", "cleanup", "--all"})
63
		session.WaitWithDefaultTimeout()
64
		Expect(session).Should(ExitCleanly())
65
		Expect(session.OutputToString()).To(Equal(cid))
66
	})
67

68
	It("podman cleanup latest container", func() {
69
		SkipIfRemote("--latest flag n/a")
70
		session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
71
		session.WaitWithDefaultTimeout()
72
		Expect(session).Should(ExitCleanly())
73

74
		session = podmanTest.Podman([]string{"create", ALPINE, "ls"})
75
		session.WaitWithDefaultTimeout()
76
		Expect(session).Should(ExitCleanly())
77
		cid := session.OutputToString()
78

79
		session = podmanTest.Podman([]string{"container", "cleanup", "--latest"})
80
		session.WaitWithDefaultTimeout()
81
		Expect(session).Should(ExitCleanly())
82
		Expect(session.OutputToString()).To(Equal(cid))
83
	})
84

85
	It("podman cleanup running container", func() {
86
		session := podmanTest.RunTopContainer("running")
87
		session.WaitWithDefaultTimeout()
88
		Expect(session).Should(ExitCleanly())
89
		session = podmanTest.Podman([]string{"container", "cleanup", "running"})
90
		session.WaitWithDefaultTimeout()
91
		Expect(session).Should(Exit(125))
92
		Expect(session.ErrorToString()).To(ContainSubstring("container state improper"))
93
	})
94

95
	It("podman cleanup paused container", func() {
96
		SkipIfRootlessCgroupsV1("Pause is not supported in cgroups v1")
97
		session := podmanTest.RunTopContainer("paused")
98
		session.WaitWithDefaultTimeout()
99
		Expect(session).Should(ExitCleanly())
100
		session = podmanTest.Podman([]string{"pause", "paused"})
101
		session.WaitWithDefaultTimeout()
102
		Expect(session).Should(ExitCleanly())
103
		session = podmanTest.Podman([]string{"container", "cleanup", "paused"})
104
		session.WaitWithDefaultTimeout()
105
		Expect(session).Should(Exit(125))
106
		Expect(session.ErrorToString()).To(ContainSubstring("container state improper"))
107

108
		// unpause so that the cleanup can stop the container,
109
		// otherwise it fails with container state improper
110
		session = podmanTest.Podman([]string{"unpause", "paused"})
111
		session.WaitWithDefaultTimeout()
112
		Expect(session).Should(ExitCleanly())
113
	})
114
})
115

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

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

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

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