Browse code

Parallelize TestEventsLimit

Signed-off-by: Lorenzo Fontana <fontanalorenzo@me.com>

Lorenzo Fontana authored on 2015/04/28 04:12:23
Showing 1 changed files
... ...
@@ -7,6 +7,7 @@ import (
7 7
 	"regexp"
8 8
 	"strconv"
9 9
 	"strings"
10
+	"sync"
10 11
 	"time"
11 12
 
12 13
 	"github.com/go-check/check"
... ...
@@ -65,9 +66,29 @@ func (s *DockerSuite) TestEventsContainerFailStartDie(c *check.C) {
65 65
 }
66 66
 
67 67
 func (s *DockerSuite) TestEventsLimit(c *check.C) {
68
-	for i := 0; i < 30; i++ {
69
-		dockerCmd(c, "run", "busybox", "echo", strconv.Itoa(i))
68
+
69
+	var waitGroup sync.WaitGroup
70
+	errChan := make(chan error, 17)
71
+
72
+	args := []string{"run", "--rm", "busybox", "true"}
73
+	for i := 0; i < 17; i++ {
74
+		waitGroup.Add(1)
75
+		go func() {
76
+			defer waitGroup.Done()
77
+			err := exec.Command(dockerBinary, args...).Run()
78
+			errChan <- err
79
+		}()
80
+	}
81
+
82
+	waitGroup.Wait()
83
+	close(errChan)
84
+
85
+	for err := range errChan {
86
+		if err != nil {
87
+			c.Fatalf("%q failed with error: %v", strings.Join(args, " "), err)
88
+		}
70 89
 	}
90
+
71 91
 	eventsCmd := exec.Command(dockerBinary, "events", "--since=0", fmt.Sprintf("--until=%d", daemonTime(c).Unix()))
72 92
 	out, _, _ := runCommandWithOutput(eventsCmd)
73 93
 	events := strings.Split(out, "\n")