Signed-off-by: Hao Zhang <21521210@zju.edu.cn>
| ... | ... |
@@ -12,6 +12,7 @@ import ( |
| 12 | 12 |
"strings" |
| 13 | 13 |
"time" |
| 14 | 14 |
|
| 15 |
+ "github.com/docker/docker/pkg/integration/checker" |
|
| 15 | 16 |
"github.com/go-check/check" |
| 16 | 17 |
) |
| 17 | 18 |
|
| ... | ... |
@@ -30,22 +31,16 @@ func (s *DockerSuite) TestSaveXzAndLoadRepoStdout(c *check.C) {
|
| 30 | 30 |
exec.Command(dockerBinary, "save", repoName), |
| 31 | 31 |
exec.Command("xz", "-c"),
|
| 32 | 32 |
exec.Command("gzip", "-c"))
|
| 33 |
- if err != nil {
|
|
| 34 |
- c.Fatalf("failed to save repo: %v %v", out, err)
|
|
| 35 |
- } |
|
| 33 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save repo: %v %v", out, err))
|
|
| 36 | 34 |
deleteImages(repoName) |
| 37 | 35 |
|
| 38 | 36 |
loadCmd := exec.Command(dockerBinary, "load") |
| 39 | 37 |
loadCmd.Stdin = strings.NewReader(repoTarball) |
| 40 | 38 |
out, _, err = runCommandWithOutput(loadCmd) |
| 41 |
- if err == nil {
|
|
| 42 |
- c.Fatalf("expected error, but succeeded with no error and output: %v", out)
|
|
| 43 |
- } |
|
| 39 |
+ c.Assert(err, checker.NotNil, check.Commentf("expected error, but succeeded with no error and output: %v", out))
|
|
| 44 | 40 |
|
| 45 | 41 |
after, _, err := dockerCmdWithError("inspect", repoName)
|
| 46 |
- if err == nil {
|
|
| 47 |
- c.Fatalf("the repo should not exist: %v", after)
|
|
| 48 |
- } |
|
| 42 |
+ c.Assert(err, checker.NotNil, check.Commentf("the repo should not exist: %v", after))
|
|
| 49 | 43 |
} |
| 50 | 44 |
|
| 51 | 45 |
// save a repo using xz+gz compression and try to load it using stdout |
| ... | ... |
@@ -63,23 +58,17 @@ func (s *DockerSuite) TestSaveXzGzAndLoadRepoStdout(c *check.C) {
|
| 63 | 63 |
exec.Command(dockerBinary, "save", repoName), |
| 64 | 64 |
exec.Command("xz", "-c"),
|
| 65 | 65 |
exec.Command("gzip", "-c"))
|
| 66 |
- if err != nil {
|
|
| 67 |
- c.Fatalf("failed to save repo: %v %v", out, err)
|
|
| 68 |
- } |
|
| 66 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save repo: %v %v", out, err))
|
|
| 69 | 67 |
|
| 70 | 68 |
deleteImages(repoName) |
| 71 | 69 |
|
| 72 | 70 |
loadCmd := exec.Command(dockerBinary, "load") |
| 73 | 71 |
loadCmd.Stdin = strings.NewReader(out) |
| 74 | 72 |
out, _, err = runCommandWithOutput(loadCmd) |
| 75 |
- if err == nil {
|
|
| 76 |
- c.Fatalf("expected error, but succeeded with no error and output: %v", out)
|
|
| 77 |
- } |
|
| 73 |
+ c.Assert(err, checker.NotNil, check.Commentf("expected error, but succeeded with no error and output: %v", out))
|
|
| 78 | 74 |
|
| 79 | 75 |
after, _, err := dockerCmdWithError("inspect", repoName)
|
| 80 |
- if err == nil {
|
|
| 81 |
- c.Fatalf("the repo should not exist: %v", after)
|
|
| 82 |
- } |
|
| 76 |
+ c.Assert(err, checker.NotNil, check.Commentf("the repo should not exist: %v", after))
|
|
| 83 | 77 |
} |
| 84 | 78 |
|
| 85 | 79 |
func (s *DockerSuite) TestSaveSingleTag(c *check.C) {
|
| ... | ... |
@@ -94,9 +83,7 @@ func (s *DockerSuite) TestSaveSingleTag(c *check.C) {
|
| 94 | 94 |
exec.Command(dockerBinary, "save", fmt.Sprintf("%v:latest", repoName)),
|
| 95 | 95 |
exec.Command("tar", "t"),
|
| 96 | 96 |
exec.Command("grep", "-E", fmt.Sprintf("(^repositories$|%v)", cleanedImageID)))
|
| 97 |
- if err != nil {
|
|
| 98 |
- c.Fatalf("failed to save repo with image ID and 'repositories' file: %s, %v", out, err)
|
|
| 99 |
- } |
|
| 97 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save repo with image ID and 'repositories' file: %s, %v", out, err))
|
|
| 100 | 98 |
} |
| 101 | 99 |
|
| 102 | 100 |
func (s *DockerSuite) TestSaveCheckTimes(c *check.C) {
|
| ... | ... |
@@ -107,14 +94,14 @@ func (s *DockerSuite) TestSaveCheckTimes(c *check.C) {
|
| 107 | 107 |
Created time.Time |
| 108 | 108 |
}{}
|
| 109 | 109 |
err := json.Unmarshal([]byte(out), &data) |
| 110 |
- c.Assert(err, check.IsNil, check.Commentf("failed to marshal from %q: err %v", repoName, err))
|
|
| 111 |
- c.Assert(len(data), check.Not(check.Equals), 0, check.Commentf("failed to marshal the data from %q", repoName))
|
|
| 110 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to marshal from %q: err %v", repoName, err))
|
|
| 111 |
+ c.Assert(len(data), checker.Not(checker.Equals), 0, check.Commentf("failed to marshal the data from %q", repoName))
|
|
| 112 | 112 |
tarTvTimeFormat := "2006-01-02 15:04" |
| 113 | 113 |
out, _, err = runCommandPipelineWithOutput( |
| 114 | 114 |
exec.Command(dockerBinary, "save", repoName), |
| 115 | 115 |
exec.Command("tar", "tv"),
|
| 116 | 116 |
exec.Command("grep", "-E", fmt.Sprintf("%s %s", data[0].Created.Format(tarTvTimeFormat), data[0].ID)))
|
| 117 |
- c.Assert(err, check.IsNil, check.Commentf("failed to save repo with image ID and 'repositories' file: %s, %v", out, err))
|
|
| 117 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save repo with image ID and 'repositories' file: %s, %v", out, err))
|
|
| 118 | 118 |
} |
| 119 | 119 |
|
| 120 | 120 |
func (s *DockerSuite) TestSaveImageId(c *check.C) {
|
| ... | ... |
@@ -129,37 +116,27 @@ func (s *DockerSuite) TestSaveImageId(c *check.C) {
|
| 129 | 129 |
cleanedShortImageID := strings.TrimSpace(out) |
| 130 | 130 |
|
| 131 | 131 |
// Make sure IDs are not empty |
| 132 |
- c.Assert(cleanedLongImageID, check.Not(check.Equals), "", check.Commentf("Id should not be empty."))
|
|
| 133 |
- c.Assert(cleanedShortImageID, check.Not(check.Equals), "", check.Commentf("Id should not be empty."))
|
|
| 132 |
+ c.Assert(cleanedLongImageID, checker.Not(check.Equals), "", check.Commentf("Id should not be empty."))
|
|
| 133 |
+ c.Assert(cleanedShortImageID, checker.Not(check.Equals), "", check.Commentf("Id should not be empty."))
|
|
| 134 | 134 |
|
| 135 | 135 |
saveCmd := exec.Command(dockerBinary, "save", cleanedShortImageID) |
| 136 | 136 |
tarCmd := exec.Command("tar", "t")
|
| 137 | 137 |
|
| 138 | 138 |
var err error |
| 139 | 139 |
tarCmd.Stdin, err = saveCmd.StdoutPipe() |
| 140 |
- if err != nil {
|
|
| 141 |
- c.Fatalf("cannot set stdout pipe for tar: %v", err)
|
|
| 142 |
- } |
|
| 140 |
+ c.Assert(err, checker.IsNil, check.Commentf("cannot set stdout pipe for tar: %v", err))
|
|
| 143 | 141 |
grepCmd := exec.Command("grep", cleanedLongImageID)
|
| 144 | 142 |
grepCmd.Stdin, err = tarCmd.StdoutPipe() |
| 145 |
- if err != nil {
|
|
| 146 |
- c.Fatalf("cannot set stdout pipe for grep: %v", err)
|
|
| 147 |
- } |
|
| 143 |
+ c.Assert(err, checker.IsNil, check.Commentf("cannot set stdout pipe for grep: %v", err))
|
|
| 148 | 144 |
|
| 149 |
- if err = tarCmd.Start(); err != nil {
|
|
| 150 |
- c.Fatalf("tar failed with error: %v", err)
|
|
| 151 |
- } |
|
| 152 |
- if err = saveCmd.Start(); err != nil {
|
|
| 153 |
- c.Fatalf("docker save failed with error: %v", err)
|
|
| 154 |
- } |
|
| 145 |
+ c.Assert(tarCmd.Start(), checker.IsNil, check.Commentf("tar failed with error: %v", err))
|
|
| 146 |
+ c.Assert(saveCmd.Start(), checker.IsNil, check.Commentf("docker save failed with error: %v", err))
|
|
| 155 | 147 |
defer saveCmd.Wait() |
| 156 | 148 |
defer tarCmd.Wait() |
| 157 | 149 |
|
| 158 | 150 |
out, _, err = runCommandWithOutput(grepCmd) |
| 159 | 151 |
|
| 160 |
- if err != nil {
|
|
| 161 |
- c.Fatalf("failed to save repo with image ID: %s, %v", out, err)
|
|
| 162 |
- } |
|
| 152 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save repo with image ID: %s, %v", out, err))
|
|
| 163 | 153 |
} |
| 164 | 154 |
|
| 165 | 155 |
// save a repo and try to load it using flags |
| ... | ... |
@@ -178,14 +155,10 @@ func (s *DockerSuite) TestSaveAndLoadRepoFlags(c *check.C) {
|
| 178 | 178 |
out, _, err := runCommandPipelineWithOutput( |
| 179 | 179 |
exec.Command(dockerBinary, "save", repoName), |
| 180 | 180 |
exec.Command(dockerBinary, "load")) |
| 181 |
- if err != nil {
|
|
| 182 |
- c.Fatalf("failed to save and load repo: %s, %v", out, err)
|
|
| 183 |
- } |
|
| 181 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save and load repo: %s, %v", out, err))
|
|
| 184 | 182 |
|
| 185 | 183 |
after, _ := dockerCmd(c, "inspect", repoName) |
| 186 |
- if before != after {
|
|
| 187 |
- c.Fatalf("inspect is not the same after a save / load")
|
|
| 188 |
- } |
|
| 184 |
+ c.Assert(before, checker.Equals, after, check.Commentf("inspect is not the same after a save / load"))
|
|
| 189 | 185 |
} |
| 190 | 186 |
|
| 191 | 187 |
func (s *DockerSuite) TestSaveMultipleNames(c *check.C) {
|
| ... | ... |
@@ -203,9 +176,7 @@ func (s *DockerSuite) TestSaveMultipleNames(c *check.C) {
|
| 203 | 203 |
exec.Command("tar", "xO", "repositories"),
|
| 204 | 204 |
exec.Command("grep", "-q", "-E", "(-one|-two)"),
|
| 205 | 205 |
) |
| 206 |
- if err != nil {
|
|
| 207 |
- c.Fatalf("failed to save multiple repos: %s, %v", out, err)
|
|
| 208 |
- } |
|
| 206 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save multiple repos: %s, %v", out, err))
|
|
| 209 | 207 |
} |
| 210 | 208 |
|
| 211 | 209 |
func (s *DockerSuite) TestSaveRepoWithMultipleImages(c *check.C) {
|
| ... | ... |
@@ -237,9 +208,7 @@ func (s *DockerSuite) TestSaveRepoWithMultipleImages(c *check.C) {
|
| 237 | 237 |
exec.Command("tar", "t"),
|
| 238 | 238 |
exec.Command("grep", "VERSION"),
|
| 239 | 239 |
exec.Command("cut", "-d", "/", "-f1"))
|
| 240 |
- if err != nil {
|
|
| 241 |
- c.Fatalf("failed to save multiple images: %s, %v", out, err)
|
|
| 242 |
- } |
|
| 240 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save multiple images: %s, %v", out, err))
|
|
| 243 | 241 |
actual := strings.Split(strings.TrimSpace(out), "\n") |
| 244 | 242 |
|
| 245 | 243 |
// make the list of expected layers |
| ... | ... |
@@ -248,9 +217,7 @@ func (s *DockerSuite) TestSaveRepoWithMultipleImages(c *check.C) {
|
| 248 | 248 |
|
| 249 | 249 |
sort.Strings(actual) |
| 250 | 250 |
sort.Strings(expected) |
| 251 |
- if !reflect.DeepEqual(expected, actual) {
|
|
| 252 |
- c.Fatalf("archive does not contains the right layers: got %v, expected %v", actual, expected)
|
|
| 253 |
- } |
|
| 251 |
+ c.Assert(actual, checker.DeepEquals, expected, check.Commentf("archive does not contains the right layers: got %v, expected %v", actual, expected))
|
|
| 254 | 252 |
} |
| 255 | 253 |
|
| 256 | 254 |
// Issue #6722 #5892 ensure directories are included in changes |
| ... | ... |
@@ -261,9 +228,7 @@ func (s *DockerSuite) TestSaveDirectoryPermissions(c *check.C) {
|
| 261 | 261 |
|
| 262 | 262 |
name := "save-directory-permissions" |
| 263 | 263 |
tmpDir, err := ioutil.TempDir("", "save-layers-with-directories")
|
| 264 |
- if err != nil {
|
|
| 265 |
- c.Errorf("failed to create temporary directory: %s", err)
|
|
| 266 |
- } |
|
| 264 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to create temporary directory: %s", err))
|
|
| 267 | 265 |
extractionDirectory := filepath.Join(tmpDir, "image-extraction-dir") |
| 268 | 266 |
os.Mkdir(extractionDirectory, 0777) |
| 269 | 267 |
|
| ... | ... |
@@ -273,21 +238,16 @@ func (s *DockerSuite) TestSaveDirectoryPermissions(c *check.C) {
|
| 273 | 273 |
RUN adduser -D user && mkdir -p /opt/a/b && chown -R user:user /opt/a |
| 274 | 274 |
RUN touch /opt/a/b/c && chown user:user /opt/a/b/c`, |
| 275 | 275 |
true) |
| 276 |
- if err != nil {
|
|
| 277 |
- c.Fatal(err) |
|
| 278 |
- } |
|
| 276 |
+ c.Assert(err, checker.IsNil, check.Commentf("%v", err))
|
|
| 279 | 277 |
|
| 280 |
- if out, _, err := runCommandPipelineWithOutput( |
|
| 278 |
+ out, _, err := runCommandPipelineWithOutput( |
|
| 281 | 279 |
exec.Command(dockerBinary, "save", name), |
| 282 | 280 |
exec.Command("tar", "-xf", "-", "-C", extractionDirectory),
|
| 283 |
- ); err != nil {
|
|
| 284 |
- c.Errorf("failed to save and extract image: %s", out)
|
|
| 285 |
- } |
|
| 281 |
+ ) |
|
| 282 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to save and extract image: %s", out))
|
|
| 286 | 283 |
|
| 287 | 284 |
dirs, err := ioutil.ReadDir(extractionDirectory) |
| 288 |
- if err != nil {
|
|
| 289 |
- c.Errorf("failed to get a listing of the layer directories: %s", err)
|
|
| 290 |
- } |
|
| 285 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to get a listing of the layer directories: %s", err))
|
|
| 291 | 286 |
|
| 292 | 287 |
found := false |
| 293 | 288 |
for _, entry := range dirs {
|
| ... | ... |
@@ -296,9 +256,7 @@ func (s *DockerSuite) TestSaveDirectoryPermissions(c *check.C) {
|
| 296 | 296 |
layerPath := filepath.Join(extractionDirectory, entry.Name(), "layer.tar") |
| 297 | 297 |
|
| 298 | 298 |
f, err := os.Open(layerPath) |
| 299 |
- if err != nil {
|
|
| 300 |
- c.Fatalf("failed to open %s: %s", layerPath, err)
|
|
| 301 |
- } |
|
| 299 |
+ c.Assert(err, checker.IsNil, check.Commentf("failed to open %s: %s", layerPath, err))
|
|
| 302 | 300 |
|
| 303 | 301 |
entries, err := listTar(f) |
| 304 | 302 |
for _, e := range entries {
|
| ... | ... |
@@ -306,9 +264,7 @@ func (s *DockerSuite) TestSaveDirectoryPermissions(c *check.C) {
|
| 306 | 306 |
entriesSansDev = append(entriesSansDev, e) |
| 307 | 307 |
} |
| 308 | 308 |
} |
| 309 |
- if err != nil {
|
|
| 310 |
- c.Fatalf("encountered error while listing tar entries: %s", err)
|
|
| 311 |
- } |
|
| 309 |
+ c.Assert(err, checker.IsNil, check.Commentf("encountered error while listing tar entries: %s", err))
|
|
| 312 | 310 |
|
| 313 | 311 |
if reflect.DeepEqual(entriesSansDev, layerEntries) || reflect.DeepEqual(entriesSansDev, layerEntriesAUFS) {
|
| 314 | 312 |
found = true |
| ... | ... |
@@ -317,8 +273,6 @@ func (s *DockerSuite) TestSaveDirectoryPermissions(c *check.C) {
|
| 317 | 317 |
} |
| 318 | 318 |
} |
| 319 | 319 |
|
| 320 |
- if !found {
|
|
| 321 |
- c.Fatalf("failed to find the layer with the right content listing")
|
|
| 322 |
- } |
|
| 320 |
+ c.Assert(found, checker.Equals, true, check.Commentf("failed to find the layer with the right content listing"))
|
|
| 323 | 321 |
|
| 324 | 322 |
} |