mirror of https://github.com/containers/podman.git
Introduce PodmanTestIntegration.PodmanExitCleanly
This significantly simplifies the ceromony of running a Podman command in integration tests, from > session := p.Podman([]string{"stop", id}) > session.WaitWithDefaultTimeout() > Expect(session).Should(ExitCleanly()) to > p.PodmanExitCleanly("stop", id) There are >4650 instances of ExitCleanly() in the tests, and many could be migrated; this does not do that. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
parent
1a00c92e00
commit
0c18beaea7
|
@ -484,6 +484,16 @@ func (s *PodmanSessionIntegration) InspectImageJSON() []inspect.ImageData {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PodmanExitCleanly runs a podman command with args, and expects it to ExitCleanly within the default timeout.
|
||||||
|
// It returns the session (to allow consuming output if desired).
|
||||||
|
func (p *PodmanTestIntegration) PodmanExitCleanly(args ...string) *PodmanSessionIntegration {
|
||||||
|
GinkgoHelper()
|
||||||
|
session := p.Podman(args)
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session).Should(ExitCleanly())
|
||||||
|
return session
|
||||||
|
}
|
||||||
|
|
||||||
// InspectContainer returns a container's inspect data in JSON format
|
// InspectContainer returns a container's inspect data in JSON format
|
||||||
func (p *PodmanTestIntegration) InspectContainer(name string) []define.InspectContainerData {
|
func (p *PodmanTestIntegration) InspectContainer(name string) []define.InspectContainerData {
|
||||||
cmd := []string{"inspect", name}
|
cmd := []string{"inspect", name}
|
||||||
|
@ -520,15 +530,11 @@ func (p *PodmanTestIntegration) CheckFileInContainerSubstring(name, filepath, ex
|
||||||
|
|
||||||
// StopContainer stops a container with no timeout, ensuring a fast test.
|
// StopContainer stops a container with no timeout, ensuring a fast test.
|
||||||
func (p *PodmanTestIntegration) StopContainer(nameOrID string) {
|
func (p *PodmanTestIntegration) StopContainer(nameOrID string) {
|
||||||
stop := p.Podman([]string{"stop", "-t0", nameOrID})
|
p.PodmanExitCleanly("stop", "-t0", nameOrID)
|
||||||
stop.WaitWithDefaultTimeout()
|
|
||||||
Expect(stop).Should(ExitCleanly())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PodmanTestIntegration) StopPod(nameOrID string) {
|
func (p *PodmanTestIntegration) StopPod(nameOrID string) {
|
||||||
stop := p.Podman([]string{"pod", "stop", "-t0", nameOrID})
|
p.PodmanExitCleanly("pod", "stop", "-t0", nameOrID)
|
||||||
stop.WaitWithDefaultTimeout()
|
|
||||||
Expect(stop).Should(ExitCleanly())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func processTestResult(r SpecReport) {
|
func processTestResult(r SpecReport) {
|
||||||
|
@ -586,9 +592,7 @@ func (p *PodmanTestIntegration) RunTopContainerWithArgs(name string, args []stri
|
||||||
}
|
}
|
||||||
podmanArgs = append(podmanArgs, args...)
|
podmanArgs = append(podmanArgs, args...)
|
||||||
podmanArgs = append(podmanArgs, "-d", ALPINE, "top", "-b")
|
podmanArgs = append(podmanArgs, "-d", ALPINE, "top", "-b")
|
||||||
session := p.Podman(podmanArgs)
|
session := p.PodmanExitCleanly(podmanArgs...)
|
||||||
session.WaitWithDefaultTimeout()
|
|
||||||
Expect(session).To(ExitCleanly())
|
|
||||||
cid := session.OutputToString()
|
cid := session.OutputToString()
|
||||||
// Output indicates that top is running, which means it's safe
|
// Output indicates that top is running, which means it's safe
|
||||||
// for our caller to invoke `podman stop`
|
// for our caller to invoke `podman stop`
|
||||||
|
|
|
@ -81,6 +81,7 @@ func (matcher *ExitMatcher) MatchMayChangeInTheFuture(actual interface{}) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExitCleanly asserts that a PodmanSession exits 0 and with no stderr
|
// ExitCleanly asserts that a PodmanSession exits 0 and with no stderr
|
||||||
|
// Consider using PodmanTestIntegration.PodmanExitCleanly instead of directly using this matcher.
|
||||||
func ExitCleanly() types.GomegaMatcher {
|
func ExitCleanly() types.GomegaMatcher {
|
||||||
return &exitCleanlyMatcher{}
|
return &exitCleanlyMatcher{}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue