Browse code

Merge pull request #29894 from cpuguy83/cleanup_volumedriver_retry_test

Use vol plugin creator instead of inserting spec

Vincent Demeester authored on 2017/02/17 17:46:31
Showing 1 changed files
... ...
@@ -413,24 +413,23 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c *
413 413
 
414 414
 func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverRetryNotImmediatelyExists(c *check.C) {
415 415
 	s.d.StartWithBusybox(c)
416
-
417
-	specPath := "/etc/docker/plugins/test-external-volume-driver-retry.spec"
418
-	os.RemoveAll(specPath)
419
-	defer os.RemoveAll(specPath)
416
+	driverName := "test-external-volume-driver-retry"
420 417
 
421 418
 	errchan := make(chan error)
419
+	started := make(chan struct{})
422 420
 	go func() {
423
-		if out, err := s.d.Cmd("run", "--rm", "--name", "test-data-retry", "-v", "external-volume-test:/tmp/external-volume-test", "--volume-driver", "test-external-volume-driver-retry", "busybox:latest"); err != nil {
421
+		close(started)
422
+		if out, err := s.d.Cmd("run", "--rm", "--name", "test-data-retry", "-v", "external-volume-test:/tmp/external-volume-test", "--volume-driver", driverName, "busybox:latest"); err != nil {
424 423
 			errchan <- fmt.Errorf("%v:\n%s", err, out)
425 424
 		}
426 425
 		close(errchan)
427 426
 	}()
428
-	go func() {
429
-		// wait for a retry to occur, then create spec to allow plugin to register
430
-		time.Sleep(2000 * time.Millisecond)
431
-		// no need to check for an error here since it will get picked up by the timeout later
432
-		ioutil.WriteFile(specPath, []byte(s.Server.URL), 0644)
433
-	}()
427
+
428
+	<-started
429
+	// wait for a retry to occur, then create spec to allow plugin to register
430
+	time.Sleep(2 * time.Second)
431
+	p := newVolumePlugin(c, driverName)
432
+	defer p.Close()
434 433
 
435 434
 	select {
436 435
 	case err := <-errchan:
... ...
@@ -442,11 +441,11 @@ func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverRetryNotImmediatelyE
442 442
 	_, err := s.d.Cmd("volume", "rm", "external-volume-test")
443 443
 	c.Assert(err, checker.IsNil)
444 444
 
445
-	c.Assert(s.ec.activations, checker.Equals, 1)
446
-	c.Assert(s.ec.creations, checker.Equals, 1)
447
-	c.Assert(s.ec.removals, checker.Equals, 1)
448
-	c.Assert(s.ec.mounts, checker.Equals, 1)
449
-	c.Assert(s.ec.unmounts, checker.Equals, 1)
445
+	c.Assert(p.ec.activations, checker.Equals, 1)
446
+	c.Assert(p.ec.creations, checker.Equals, 1)
447
+	c.Assert(p.ec.removals, checker.Equals, 1)
448
+	c.Assert(p.ec.mounts, checker.Equals, 1)
449
+	c.Assert(p.ec.unmounts, checker.Equals, 1)
450 450
 }
451 451
 
452 452
 func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverBindExternalVolume(c *check.C) {