Selaa lähdekoodia

Merge pull request #7875 from tiborvass/fix-integration-panic

Fix panic in integration-cli
Victor Vieux 11 vuotta sitten
vanhempi
commit
68c256cd40
1 muutettua tiedostoa jossa 13 lisäystä ja 6 poistoa
  1. 13 6
      integration-cli/docker_utils.go

+ 13 - 6
integration-cli/docker_utils.go

@@ -60,7 +60,7 @@ func NewDaemon(t *testing.T) *Daemon {
 }
 
 // Start will start the daemon and return once it is ready to receive requests.
-// You can specify additional daemon flags (e.g. "--restart=false").
+// You can specify additional daemon flags.
 func (d *Daemon) Start(arg ...string) error {
 	dockerBinary, err := exec.LookPath(dockerBinary)
 	if err != nil {
@@ -71,10 +71,15 @@ func (d *Daemon) Start(arg ...string) error {
 		"--host", d.sock(),
 		"--daemon", "--debug",
 		"--graph", fmt.Sprintf("%s/graph", d.folder),
-		"--storage-driver", d.storageDriver,
-		"--exec-driver", d.execDriver,
 		"--pidfile", fmt.Sprintf("%s/docker.pid", d.folder),
 	}
+	if d.storageDriver != "" {
+		args = append(args, "--storage-driver", d.storageDriver)
+	}
+	if d.execDriver != "" {
+		args = append(args, "--exec-driver", d.execDriver)
+	}
+
 	args = append(args, arg...)
 	d.cmd = exec.Command(dockerBinary, args...)
 
@@ -90,14 +95,16 @@ func (d *Daemon) Start(arg ...string) error {
 		return fmt.Errorf("Could not start daemon container: %v", err)
 	}
 
-	d.wait = make(chan error)
+	wait := make(chan error)
 
 	go func() {
-		d.wait <- d.cmd.Wait()
+		wait <- d.cmd.Wait()
 		d.t.Log("exiting daemon")
-		close(d.wait)
+		close(wait)
 	}()
 
+	d.wait = wait
+
 	tick := time.Tick(500 * time.Millisecond)
 	// make sure daemon is ready to receive requests
 	for {