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
|
||||
}
|
||||
|
||||
// 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
|
||||
func (p *PodmanTestIntegration) InspectContainer(name string) []define.InspectContainerData {
|
||||
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.
|
||||
func (p *PodmanTestIntegration) StopContainer(nameOrID string) {
|
||||
stop := p.Podman([]string{"stop", "-t0", nameOrID})
|
||||
stop.WaitWithDefaultTimeout()
|
||||
Expect(stop).Should(ExitCleanly())
|
||||
p.PodmanExitCleanly("stop", "-t0", nameOrID)
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) StopPod(nameOrID string) {
|
||||
stop := p.Podman([]string{"pod", "stop", "-t0", nameOrID})
|
||||
stop.WaitWithDefaultTimeout()
|
||||
Expect(stop).Should(ExitCleanly())
|
||||
p.PodmanExitCleanly("pod", "stop", "-t0", nameOrID)
|
||||
}
|
||||
|
||||
func processTestResult(r SpecReport) {
|
||||
|
@ -586,9 +592,7 @@ func (p *PodmanTestIntegration) RunTopContainerWithArgs(name string, args []stri
|
|||
}
|
||||
podmanArgs = append(podmanArgs, args...)
|
||||
podmanArgs = append(podmanArgs, "-d", ALPINE, "top", "-b")
|
||||
session := p.Podman(podmanArgs)
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).To(ExitCleanly())
|
||||
session := p.PodmanExitCleanly(podmanArgs...)
|
||||
cid := session.OutputToString()
|
||||
// Output indicates that top is running, which means it's safe
|
||||
// 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
|
||||
// Consider using PodmanTestIntegration.PodmanExitCleanly instead of directly using this matcher.
|
||||
func ExitCleanly() types.GomegaMatcher {
|
||||
return &exitCleanlyMatcher{}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue