To avoid manually creating and destroying registrys in tests.
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
| ... | ... |
@@ -24,6 +24,10 @@ func (s *TimerSuite) TearDownTest(c *check.C) {
|
| 24 | 24 |
fmt.Printf("%-60s%.2f\n", c.TestName(), time.Since(s.start).Seconds())
|
| 25 | 25 |
} |
| 26 | 26 |
|
| 27 |
+func init() {
|
|
| 28 |
+ check.Suite(&DockerSuite{})
|
|
| 29 |
+} |
|
| 30 |
+ |
|
| 27 | 31 |
type DockerSuite struct {
|
| 28 | 32 |
TimerSuite |
| 29 | 33 |
} |
| ... | ... |
@@ -34,4 +38,23 @@ func (s *DockerSuite) TearDownTest(c *check.C) {
|
| 34 | 34 |
s.TimerSuite.TearDownTest(c) |
| 35 | 35 |
} |
| 36 | 36 |
|
| 37 |
-var _ = check.Suite(&DockerSuite{})
|
|
| 37 |
+func init() {
|
|
| 38 |
+ check.Suite(&DockerRegistrySuite{
|
|
| 39 |
+ ds: &DockerSuite{},
|
|
| 40 |
+ }) |
|
| 41 |
+} |
|
| 42 |
+ |
|
| 43 |
+type DockerRegistrySuite struct {
|
|
| 44 |
+ ds *DockerSuite |
|
| 45 |
+ reg *testRegistryV2 |
|
| 46 |
+} |
|
| 47 |
+ |
|
| 48 |
+func (s *DockerRegistrySuite) SetUpTest(c *check.C) {
|
|
| 49 |
+ s.reg = setupRegistry(c) |
|
| 50 |
+ s.ds.SetUpTest(c) |
|
| 51 |
+} |
|
| 52 |
+ |
|
| 53 |
+func (s *DockerRegistrySuite) TearDownTest(c *check.C) {
|
|
| 54 |
+ s.reg.Close() |
|
| 55 |
+ s.ds.TearDownTest(c) |
|
| 56 |
+} |
| ... | ... |
@@ -62,9 +62,7 @@ func setupImageWithTag(tag string) (string, error) {
|
| 62 | 62 |
return pushDigest, nil |
| 63 | 63 |
} |
| 64 | 64 |
|
| 65 |
-func (s *DockerSuite) TestPullByTagDisplaysDigest(c *check.C) {
|
|
| 66 |
- defer setupRegistry(c)() |
|
| 67 |
- |
|
| 65 |
+func (s *DockerRegistrySuite) TestPullByTagDisplaysDigest(c *check.C) {
|
|
| 68 | 66 |
pushDigest, err := setupImage() |
| 69 | 67 |
if err != nil {
|
| 70 | 68 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -88,12 +86,9 @@ func (s *DockerSuite) TestPullByTagDisplaysDigest(c *check.C) {
|
| 88 | 88 |
if pushDigest != pullDigest {
|
| 89 | 89 |
c.Fatalf("push digest %q didn't match pull digest %q", pushDigest, pullDigest)
|
| 90 | 90 |
} |
| 91 |
- |
|
| 92 | 91 |
} |
| 93 | 92 |
|
| 94 |
-func (s *DockerSuite) TestPullByDigest(c *check.C) {
|
|
| 95 |
- defer setupRegistry(c)() |
|
| 96 |
- |
|
| 93 |
+func (s *DockerRegistrySuite) TestPullByDigest(c *check.C) {
|
|
| 97 | 94 |
pushDigest, err := setupImage() |
| 98 | 95 |
if err != nil {
|
| 99 | 96 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -118,12 +113,9 @@ func (s *DockerSuite) TestPullByDigest(c *check.C) {
|
| 118 | 118 |
if pushDigest != pullDigest {
|
| 119 | 119 |
c.Fatalf("push digest %q didn't match pull digest %q", pushDigest, pullDigest)
|
| 120 | 120 |
} |
| 121 |
- |
|
| 122 | 121 |
} |
| 123 | 122 |
|
| 124 |
-func (s *DockerSuite) TestCreateByDigest(c *check.C) {
|
|
| 125 |
- defer setupRegistry(c)() |
|
| 126 |
- |
|
| 123 |
+func (s *DockerRegistrySuite) TestCreateByDigest(c *check.C) {
|
|
| 127 | 124 |
pushDigest, err := setupImage() |
| 128 | 125 |
if err != nil {
|
| 129 | 126 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -145,12 +137,9 @@ func (s *DockerSuite) TestCreateByDigest(c *check.C) {
|
| 145 | 145 |
if res != imageReference {
|
| 146 | 146 |
c.Fatalf("unexpected Config.Image: %s (expected %s)", res, imageReference)
|
| 147 | 147 |
} |
| 148 |
- |
|
| 149 | 148 |
} |
| 150 | 149 |
|
| 151 |
-func (s *DockerSuite) TestRunByDigest(c *check.C) {
|
|
| 152 |
- defer setupRegistry(c)() |
|
| 153 |
- |
|
| 150 |
+func (s *DockerRegistrySuite) TestRunByDigest(c *check.C) {
|
|
| 154 | 151 |
pushDigest, err := setupImage() |
| 155 | 152 |
if err != nil {
|
| 156 | 153 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -181,12 +170,9 @@ func (s *DockerSuite) TestRunByDigest(c *check.C) {
|
| 181 | 181 |
if res != imageReference {
|
| 182 | 182 |
c.Fatalf("unexpected Config.Image: %s (expected %s)", res, imageReference)
|
| 183 | 183 |
} |
| 184 |
- |
|
| 185 | 184 |
} |
| 186 | 185 |
|
| 187 |
-func (s *DockerSuite) TestRemoveImageByDigest(c *check.C) {
|
|
| 188 |
- defer setupRegistry(c)() |
|
| 189 |
- |
|
| 186 |
+func (s *DockerRegistrySuite) TestRemoveImageByDigest(c *check.C) {
|
|
| 190 | 187 |
digest, err := setupImage() |
| 191 | 188 |
if err != nil {
|
| 192 | 189 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -217,12 +203,9 @@ func (s *DockerSuite) TestRemoveImageByDigest(c *check.C) {
|
| 217 | 217 |
} else if !strings.Contains(err.Error(), "No such image") {
|
| 218 | 218 |
c.Fatalf("expected 'No such image' output, got %v", err)
|
| 219 | 219 |
} |
| 220 |
- |
|
| 221 | 220 |
} |
| 222 | 221 |
|
| 223 |
-func (s *DockerSuite) TestBuildByDigest(c *check.C) {
|
|
| 224 |
- defer setupRegistry(c)() |
|
| 225 |
- |
|
| 222 |
+func (s *DockerRegistrySuite) TestBuildByDigest(c *check.C) {
|
|
| 226 | 223 |
digest, err := setupImage() |
| 227 | 224 |
if err != nil {
|
| 228 | 225 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -262,12 +245,9 @@ func (s *DockerSuite) TestBuildByDigest(c *check.C) {
|
| 262 | 262 |
if res != imageID {
|
| 263 | 263 |
c.Fatalf("Image %s, expected %s", res, imageID)
|
| 264 | 264 |
} |
| 265 |
- |
|
| 266 | 265 |
} |
| 267 | 266 |
|
| 268 |
-func (s *DockerSuite) TestTagByDigest(c *check.C) {
|
|
| 269 |
- defer setupRegistry(c)() |
|
| 270 |
- |
|
| 267 |
+func (s *DockerRegistrySuite) TestTagByDigest(c *check.C) {
|
|
| 271 | 268 |
digest, err := setupImage() |
| 272 | 269 |
if err != nil {
|
| 273 | 270 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -302,12 +282,9 @@ func (s *DockerSuite) TestTagByDigest(c *check.C) {
|
| 302 | 302 |
if tagID != expectedID {
|
| 303 | 303 |
c.Fatalf("expected image id %q, got %q", expectedID, tagID)
|
| 304 | 304 |
} |
| 305 |
- |
|
| 306 | 305 |
} |
| 307 | 306 |
|
| 308 |
-func (s *DockerSuite) TestListImagesWithoutDigests(c *check.C) {
|
|
| 309 |
- defer setupRegistry(c)() |
|
| 310 |
- |
|
| 307 |
+func (s *DockerRegistrySuite) TestListImagesWithoutDigests(c *check.C) {
|
|
| 311 | 308 |
digest, err := setupImage() |
| 312 | 309 |
if err != nil {
|
| 313 | 310 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -334,8 +311,7 @@ func (s *DockerSuite) TestListImagesWithoutDigests(c *check.C) {
|
| 334 | 334 |
|
| 335 | 335 |
} |
| 336 | 336 |
|
| 337 |
-func (s *DockerSuite) TestListImagesWithDigests(c *check.C) {
|
|
| 338 |
- defer setupRegistry(c)() |
|
| 337 |
+func (s *DockerRegistrySuite) TestListImagesWithDigests(c *check.C) {
|
|
| 339 | 338 |
|
| 340 | 339 |
// setup image1 |
| 341 | 340 |
digest1, err := setupImageWithTag("tag1")
|
| ... | ... |
@@ -482,12 +458,9 @@ func (s *DockerSuite) TestListImagesWithDigests(c *check.C) {
|
| 482 | 482 |
if !busyboxRe.MatchString(out) {
|
| 483 | 483 |
c.Fatalf("expected %q: %s", busyboxRe.String(), out)
|
| 484 | 484 |
} |
| 485 |
- |
|
| 486 | 485 |
} |
| 487 | 486 |
|
| 488 |
-func (s *DockerSuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
|
|
| 489 |
- defer setupRegistry(c)() |
|
| 490 |
- |
|
| 487 |
+func (s *DockerRegistrySuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
|
|
| 491 | 488 |
pushDigest, err := setupImage() |
| 492 | 489 |
if err != nil {
|
| 493 | 490 |
c.Fatalf("error setting up image: %v", err)
|
| ... | ... |
@@ -511,5 +484,4 @@ func (s *DockerSuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
|
| 511 | 511 |
if _, err := runCommand(cmd); err != nil {
|
| 512 | 512 |
c.Fatalf("error deleting image by id: %v", err)
|
| 513 | 513 |
} |
| 514 |
- |
|
| 515 | 514 |
} |
| ... | ... |
@@ -9,9 +9,7 @@ import ( |
| 9 | 9 |
) |
| 10 | 10 |
|
| 11 | 11 |
// See issue docker/docker#8141 |
| 12 |
-func (s *DockerSuite) TestPullImageWithAliases(c *check.C) {
|
|
| 13 |
- defer setupRegistry(c)() |
|
| 14 |
- |
|
| 12 |
+func (s *DockerRegistrySuite) TestPullImageWithAliases(c *check.C) {
|
|
| 15 | 13 |
repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
|
| 16 | 14 |
|
| 17 | 15 |
repos := []string{}
|
| ... | ... |
@@ -48,7 +46,6 @@ func (s *DockerSuite) TestPullImageWithAliases(c *check.C) {
|
| 48 | 48 |
c.Fatalf("Image %v shouldn't have been pulled down", repo)
|
| 49 | 49 |
} |
| 50 | 50 |
} |
| 51 |
- |
|
| 52 | 51 |
} |
| 53 | 52 |
|
| 54 | 53 |
// pulling library/hello-world should show verified message |
| ... | ... |
@@ -13,9 +13,7 @@ import ( |
| 13 | 13 |
) |
| 14 | 14 |
|
| 15 | 15 |
// pulling an image from the central registry should work |
| 16 |
-func (s *DockerSuite) TestPushBusyboxImage(c *check.C) {
|
|
| 17 |
- defer setupRegistry(c)() |
|
| 18 |
- |
|
| 16 |
+func (s *DockerRegistrySuite) TestPushBusyboxImage(c *check.C) {
|
|
| 19 | 17 |
repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
|
| 20 | 18 |
// tag the image to upload it to the private registry |
| 21 | 19 |
tagCmd := exec.Command(dockerBinary, "tag", "busybox", repoName) |
| ... | ... |
@@ -37,9 +35,7 @@ func (s *DockerSuite) TestPushUnprefixedRepo(c *check.C) {
|
| 37 | 37 |
} |
| 38 | 38 |
} |
| 39 | 39 |
|
| 40 |
-func (s *DockerSuite) TestPushUntagged(c *check.C) {
|
|
| 41 |
- defer setupRegistry(c)() |
|
| 42 |
- |
|
| 40 |
+func (s *DockerRegistrySuite) TestPushUntagged(c *check.C) {
|
|
| 43 | 41 |
repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
|
| 44 | 42 |
|
| 45 | 43 |
expected := "Repository does not exist" |
| ... | ... |
@@ -51,9 +47,7 @@ func (s *DockerSuite) TestPushUntagged(c *check.C) {
|
| 51 | 51 |
} |
| 52 | 52 |
} |
| 53 | 53 |
|
| 54 |
-func (s *DockerSuite) TestPushBadTag(c *check.C) {
|
|
| 55 |
- defer setupRegistry(c)() |
|
| 56 |
- |
|
| 54 |
+func (s *DockerRegistrySuite) TestPushBadTag(c *check.C) {
|
|
| 57 | 55 |
repoName := fmt.Sprintf("%v/dockercli/busybox:latest", privateRegistryURL)
|
| 58 | 56 |
|
| 59 | 57 |
expected := "does not exist" |
| ... | ... |
@@ -65,9 +59,7 @@ func (s *DockerSuite) TestPushBadTag(c *check.C) {
|
| 65 | 65 |
} |
| 66 | 66 |
} |
| 67 | 67 |
|
| 68 |
-func (s *DockerSuite) TestPushMultipleTags(c *check.C) {
|
|
| 69 |
- defer setupRegistry(c)() |
|
| 70 |
- |
|
| 68 |
+func (s *DockerRegistrySuite) TestPushMultipleTags(c *check.C) {
|
|
| 71 | 69 |
repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
|
| 72 | 70 |
repoTag1 := fmt.Sprintf("%v/dockercli/busybox:t1", privateRegistryURL)
|
| 73 | 71 |
repoTag2 := fmt.Sprintf("%v/dockercli/busybox:t2", privateRegistryURL)
|
| ... | ... |
@@ -87,8 +79,7 @@ func (s *DockerSuite) TestPushMultipleTags(c *check.C) {
|
| 87 | 87 |
} |
| 88 | 88 |
} |
| 89 | 89 |
|
| 90 |
-func (s *DockerSuite) TestPushInterrupt(c *check.C) {
|
|
| 91 |
- defer setupRegistry(c)() |
|
| 90 |
+func (s *DockerRegistrySuite) TestPushInterrupt(c *check.C) {
|
|
| 92 | 91 |
repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
|
| 93 | 92 |
// tag the image and upload it to the private registry |
| 94 | 93 |
if out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "tag", "busybox", repoName)); err != nil {
|
| ... | ... |
@@ -118,8 +109,7 @@ func (s *DockerSuite) TestPushInterrupt(c *check.C) {
|
| 118 | 118 |
} |
| 119 | 119 |
} |
| 120 | 120 |
|
| 121 |
-func (s *DockerSuite) TestPushEmptyLayer(c *check.C) {
|
|
| 122 |
- defer setupRegistry(c)() |
|
| 121 |
+func (s *DockerRegistrySuite) TestPushEmptyLayer(c *check.C) {
|
|
| 123 | 122 |
repoName := fmt.Sprintf("%v/dockercli/emptylayer", privateRegistryURL)
|
| 124 | 123 |
emptyTarball, err := ioutil.TempFile("", "empty_tarball")
|
| 125 | 124 |
if err != nil {
|
| ... | ... |
@@ -1125,7 +1125,7 @@ func daemonTime(c *check.C) time.Time {
|
| 1125 | 1125 |
return dt |
| 1126 | 1126 |
} |
| 1127 | 1127 |
|
| 1128 |
-func setupRegistry(c *check.C) func() {
|
|
| 1128 |
+func setupRegistry(c *check.C) *testRegistryV2 {
|
|
| 1129 | 1129 |
testRequires(c, RegistryHosting) |
| 1130 | 1130 |
reg, err := newTestRegistryV2(c) |
| 1131 | 1131 |
if err != nil {
|
| ... | ... |
@@ -1143,8 +1143,7 @@ func setupRegistry(c *check.C) func() {
|
| 1143 | 1143 |
if err != nil {
|
| 1144 | 1144 |
c.Fatal("Timeout waiting for test registry to become available")
|
| 1145 | 1145 |
} |
| 1146 |
- |
|
| 1147 |
- return func() { reg.Close() }
|
|
| 1146 |
+ return reg |
|
| 1148 | 1147 |
} |
| 1149 | 1148 |
|
| 1150 | 1149 |
// appendBaseEnv appends the minimum set of environment variables to exec the |