Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: go/src/infra/tools/cipd/reader_test.go

Issue 1129043003: cipd: Refactor client to make it more readable. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « go/src/infra/tools/cipd/reader.go ('k') | go/src/infra/tools/cipd/remote.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: go/src/infra/tools/cipd/reader_test.go
diff --git a/go/src/infra/tools/cipd/reader_test.go b/go/src/infra/tools/cipd/reader_test.go
deleted file mode 100644
index d61028c79bda6b40c41e944146e19e95bc2bf933..0000000000000000000000000000000000000000
--- a/go/src/infra/tools/cipd/reader_test.go
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package cipd
-
-import (
- "bytes"
- "io"
- "io/ioutil"
- "os"
- "testing"
-
- . "github.com/smartystreets/goconvey/convey"
-)
-
-func TestPackageReading(t *testing.T) {
- goodManifest := `{
- "format_version": "1",
- "package_name": "testing"
-}`
-
- Convey("Open empty package works", t, func() {
- // Build an empty package.
- out := bytes.Buffer{}
- err := BuildInstance(BuildInstanceOptions{
- Output: &out,
- PackageName: "testing",
- })
- So(err, ShouldBeNil)
-
- // Open it.
- inst, err := OpenInstance(bytes.NewReader(out.Bytes()), "")
- if inst != nil {
- defer inst.Close()
- }
- So(inst, ShouldNotBeNil)
- So(err, ShouldBeNil)
- So(inst.PackageName(), ShouldEqual, "testing")
- So(inst.InstanceID(), ShouldEqual, "23f2c4900785ac8faa2f38e473925b840e574ccc")
- So(len(inst.Files()), ShouldEqual, 1)
-
- // Contains single manifest file.
- f := inst.Files()[0]
- So(f.Name(), ShouldEqual, ".cipdpkg/manifest.json")
- So(f.Size(), ShouldEqual, uint64(len(goodManifest)))
- So(f.Executable(), ShouldBeFalse)
- r, err := f.Open()
- if r != nil {
- defer r.Close()
- }
- So(err, ShouldBeNil)
- manifest, err := ioutil.ReadAll(r)
- So(err, ShouldBeNil)
- So(string(manifest), ShouldEqual, goodManifest)
- })
-
- Convey("Open empty package with unexpected instance ID", t, func() {
- // Build an empty package.
- out := bytes.Buffer{}
- err := BuildInstance(BuildInstanceOptions{
- Output: &out,
- PackageName: "testing",
- })
- So(err, ShouldBeNil)
-
- // Attempt to open it, providing correct instance ID, should work.
- source := bytes.NewReader(out.Bytes())
- inst, err := OpenInstance(source, "23f2c4900785ac8faa2f38e473925b840e574ccc")
- So(err, ShouldBeNil)
- So(inst, ShouldNotBeNil)
- inst.Close()
-
- // Attempt to open it, providing incorrect instance ID.
- inst, err = OpenInstance(source, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
- So(err, ShouldNotBeNil)
- So(inst, ShouldBeNil)
- })
-
- Convey("OpenInstanceFile works", t, func() {
- // Open temp file.
- tempFile, err := ioutil.TempFile("", "cipdtest")
- So(err, ShouldBeNil)
- tempFilePath := tempFile.Name()
- defer os.Remove(tempFilePath)
-
- // Write empty package to it.
- err = BuildInstance(BuildInstanceOptions{
- Output: tempFile,
- PackageName: "testing",
- })
- So(err, ShouldBeNil)
- tempFile.Close()
-
- // Read the package.
- inst, err := OpenInstanceFile(tempFilePath, "")
- if inst != nil {
- defer inst.Close()
- }
- So(inst, ShouldNotBeNil)
- So(err, ShouldBeNil)
- })
-
- Convey("ExtractInstance works", t, func() {
- // Add a bunch of files to a package.
- out := bytes.Buffer{}
- err := BuildInstance(BuildInstanceOptions{
- Input: []File{
- makeTestFile("testing/qwerty", "12345", false),
- makeTestFile("abc", "duh", true),
- makeTestSymlink("rel_symlink", "abc"),
- makeTestSymlink("abs_symlink", "/abc/def"),
- },
- Output: &out,
- PackageName: "testing",
- })
- So(err, ShouldBeNil)
-
- // Extract files.
- inst, err := OpenInstance(bytes.NewReader(out.Bytes()), "")
- if inst != nil {
- defer inst.Close()
- }
- So(err, ShouldBeNil)
- dest := &testDestination{}
- err = ExtractInstance(inst, dest)
- So(err, ShouldBeNil)
- So(dest.beginCalls, ShouldEqual, 1)
- So(dest.endCalls, ShouldEqual, 1)
-
- // Verify file list, file data and flags are correct.
- names := []string{}
- for _, f := range dest.files {
- names = append(names, f.name)
- }
- So(names, ShouldResemble, []string{
- "testing/qwerty",
- "abc",
- "rel_symlink",
- "abs_symlink",
- ".cipdpkg/manifest.json",
- })
- So(string(dest.files[0].Bytes()), ShouldEqual, "12345")
- So(dest.files[1].executable, ShouldBeTrue)
- So(dest.files[2].symlinkTarget, ShouldEqual, "abc")
- So(dest.files[3].symlinkTarget, ShouldEqual, "/abc/def")
- })
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-type testDestination struct {
- beginCalls int
- endCalls int
- files []*testDestinationFile
-}
-
-type testDestinationFile struct {
- bytes.Buffer
- name string
- executable bool
- symlinkTarget string
-}
-
-func (d *testDestinationFile) Close() error { return nil }
-
-func (d *testDestination) Begin() error {
- d.beginCalls++
- return nil
-}
-
-func (d *testDestination) CreateFile(name string, executable bool) (io.WriteCloser, error) {
- f := &testDestinationFile{
- name: name,
- executable: executable,
- }
- d.files = append(d.files, f)
- return f, nil
-}
-
-func (d *testDestination) CreateSymlink(name string, target string) error {
- f := &testDestinationFile{
- name: name,
- symlinkTarget: target,
- }
- d.files = append(d.files, f)
- return nil
-}
-
-func (d *testDestination) End(success bool) error {
- d.endCalls++
- return nil
-}
« no previous file with comments | « go/src/infra/tools/cipd/reader.go ('k') | go/src/infra/tools/cipd/remote.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698