1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #38552 from thaJeztah/improve_test_events_filter_labels

Make TestEventsFilterLabels less flaky
This commit is contained in:
Vincent Demeester 2019-01-15 09:01:38 +01:00 committed by GitHub
commit a827f17306
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -9,6 +9,7 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
"strconv"
"strings" "strings"
"time" "time"
@ -314,29 +315,38 @@ func (s *DockerSuite) TestEventsFilterImageName(c *check.C) {
} }
func (s *DockerSuite) TestEventsFilterLabels(c *check.C) { func (s *DockerSuite) TestEventsFilterLabels(c *check.C) {
since := daemonUnixTime(c) since := strconv.FormatUint(uint64(daemonTime(c).Unix()), 10)
label := "io.docker.testing=foo" label := "io.docker.testing=foo"
out, _ := dockerCmd(c, "run", "-d", "-l", label, "busybox:latest", "true") out, exit := dockerCmd(c, "create", "-l", label, "busybox")
c.Assert(exit, checker.Equals, 0)
container1 := strings.TrimSpace(out) container1 := strings.TrimSpace(out)
out, _ = dockerCmd(c, "run", "-d", "busybox", "true") out, exit = dockerCmd(c, "create", "busybox")
c.Assert(exit, checker.Equals, 0)
container2 := strings.TrimSpace(out) container2 := strings.TrimSpace(out)
// fetch events with `--until`, so that the client detaches after a second
// instead of staying attached, waiting for more events to arrive.
out, _ = dockerCmd( out, _ = dockerCmd(
c, c,
"events", "events",
"--since", since, "--since", since,
"--until", daemonUnixTime(c), "--until", strconv.FormatUint(uint64(daemonTime(c).Add(time.Second).Unix()), 10),
"--filter", fmt.Sprintf("label=%s", label)) "--filter", "label="+label,
)
events := strings.Split(strings.TrimSpace(out), "\n") events := strings.Split(strings.TrimSpace(out), "\n")
c.Assert(len(events), checker.Equals, 3) c.Assert(len(events), checker.GreaterThan, 0)
var found bool
for _, e := range events { for _, e := range events {
c.Assert(e, checker.Contains, container1) if strings.Contains(e, container1) {
found = true
}
c.Assert(e, checker.Not(checker.Contains), container2) c.Assert(e, checker.Not(checker.Contains), container2)
} }
c.Assert(found, checker.Equals, true)
} }
func (s *DockerSuite) TestEventsFilterImageLabels(c *check.C) { func (s *DockerSuite) TestEventsFilterImageLabels(c *check.C) {