| Index: go/src/infra/tools/cipd/ensure_test.go
|
| diff --git a/go/src/infra/tools/cipd/ensure_test.go b/go/src/infra/tools/cipd/ensure_test.go
|
| deleted file mode 100644
|
| index 873617a7381eb61fb06231588e0f8b48017eb65c..0000000000000000000000000000000000000000
|
| --- a/go/src/infra/tools/cipd/ensure_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/ioutil"
|
| - "net/http"
|
| - "os"
|
| - "path/filepath"
|
| - "testing"
|
| - "time"
|
| -
|
| - . "github.com/smartystreets/goconvey/convey"
|
| -)
|
| -
|
| -func TestParseDesiredState(t *testing.T) {
|
| - call := func(data string) ([]PackageState, error) {
|
| - return ParseDesiredState(bytes.NewBufferString(data))
|
| - }
|
| -
|
| - Convey("ParseDesiredState works", t, func() {
|
| - out, err := call(`
|
| - # Comment
|
| -
|
| - pkg/a 0000000000000000000000000000000000000000
|
| - pkg/b 1000000000000000000000000000000000000000
|
| - `)
|
| - So(err, ShouldBeNil)
|
| - So(out, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: "pkg/a",
|
| - InstanceID: "0000000000000000000000000000000000000000",
|
| - },
|
| - PackageState{
|
| - PackageName: "pkg/b",
|
| - InstanceID: "1000000000000000000000000000000000000000",
|
| - },
|
| - })
|
| - })
|
| -
|
| - Convey("ParseDesiredState empty", t, func() {
|
| - out, err := call("")
|
| - So(err, ShouldBeNil)
|
| - So(out, ShouldResemble, []PackageState{})
|
| - })
|
| -
|
| - Convey("ParseDesiredState bad package name", t, func() {
|
| - _, err := call("bad.package.name/a 0000000000000000000000000000000000000000")
|
| - So(err, ShouldNotBeNil)
|
| - })
|
| -
|
| - Convey("ParseDesiredState bad instance ID", t, func() {
|
| - _, err := call("pkg/a 0000")
|
| - So(err, ShouldNotBeNil)
|
| - })
|
| -
|
| - Convey("ParseDesiredState bad line", t, func() {
|
| - _, err := call("pkg/a)")
|
| - So(err, ShouldNotBeNil)
|
| - })
|
| -}
|
| -
|
| -func TestEnsurePackages(t *testing.T) {
|
| - Convey("Mocking temp dir", t, func() {
|
| - tempDir, err := ioutil.TempDir("", "cipd_test")
|
| - So(err, ShouldBeNil)
|
| - Reset(func() { os.RemoveAll(tempDir) })
|
| -
|
| - assertFile := func(relPath, data string) {
|
| - body, err := ioutil.ReadFile(filepath.Join(tempDir, relPath))
|
| - So(err, ShouldBeNil)
|
| - So(string(body), ShouldEqual, data)
|
| - }
|
| -
|
| - mockClock(time.Now())
|
| - mockResumableUpload()
|
| -
|
| - Convey("EnsurePackages full flow", func() {
|
| - // Prepare a bunch of packages.
|
| - a1 := buildInstanceInMemory("pkg/a", []File{makeTestFile("file a 1", "test data", false)})
|
| - defer a1.Close()
|
| - a2 := buildInstanceInMemory("pkg/a", []File{makeTestFile("file a 2", "test data", false)})
|
| - defer a2.Close()
|
| - b := buildInstanceInMemory("pkg/b", []File{makeTestFile("file b", "test data", false)})
|
| - defer b.Close()
|
| -
|
| - // Calls EnsurePackages mocking fetch backend first.
|
| - callEnsure := func(instances []PackageInstance) error {
|
| - states := []PackageState{}
|
| - for _, i := range instances {
|
| - states = append(states, PackageState{
|
| - PackageName: i.PackageName(),
|
| - InstanceID: i.InstanceID(),
|
| - })
|
| - }
|
| - service := mockFetchBackend(instances)
|
| - return EnsurePackages(EnsurePackagesOptions{
|
| - ClientFactory: func() (*http.Client, error) { return service.client, nil },
|
| - Root: tempDir,
|
| - Packages: states,
|
| - })
|
| - }
|
| -
|
| - // Noop run on top of empty directory.
|
| - err := callEnsure(nil)
|
| - So(err, ShouldBeNil)
|
| -
|
| - // Specify same package twice.
|
| - err = callEnsure([]PackageInstance{a1, a2})
|
| - So(err, ShouldNotBeNil)
|
| -
|
| - // Install a1 into a site root.
|
| - err = callEnsure([]PackageInstance{a1})
|
| - So(err, ShouldBeNil)
|
| - assertFile("file a 1", "test data")
|
| - deployed, err := FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: a1.PackageName(),
|
| - InstanceID: a1.InstanceID(),
|
| - },
|
| - })
|
| -
|
| - // Noop run.
|
| - err = callEnsure([]PackageInstance{a1})
|
| - So(err, ShouldBeNil)
|
| - assertFile("file a 1", "test data")
|
| - deployed, err = FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: a1.PackageName(),
|
| - InstanceID: a1.InstanceID(),
|
| - },
|
| - })
|
| -
|
| - // Upgrade a1 to a2.
|
| - err = callEnsure([]PackageInstance{a2})
|
| - So(err, ShouldBeNil)
|
| - assertFile("file a 2", "test data")
|
| - deployed, err = FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: a2.PackageName(),
|
| - InstanceID: a2.InstanceID(),
|
| - },
|
| - })
|
| -
|
| - // Remove a2 and install b.
|
| - err = callEnsure([]PackageInstance{b})
|
| - So(err, ShouldBeNil)
|
| - assertFile("file b", "test data")
|
| - deployed, err = FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: b.PackageName(),
|
| - InstanceID: b.InstanceID(),
|
| - },
|
| - })
|
| -
|
| - // Remove b.
|
| - err = callEnsure(nil)
|
| - So(err, ShouldBeNil)
|
| - deployed, err = FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{})
|
| -
|
| - // Install a1 and b.
|
| - err = callEnsure([]PackageInstance{a1, b})
|
| - So(err, ShouldBeNil)
|
| - assertFile("file a 1", "test data")
|
| - assertFile("file b", "test data")
|
| - deployed, err = FindDeployed(tempDir)
|
| - So(err, ShouldBeNil)
|
| - So(deployed, ShouldResemble, []PackageState{
|
| - PackageState{
|
| - PackageName: a1.PackageName(),
|
| - InstanceID: a1.InstanceID(),
|
| - },
|
| - PackageState{
|
| - PackageName: b.PackageName(),
|
| - InstanceID: b.InstanceID(),
|
| - },
|
| - })
|
| - })
|
| - })
|
| -}
|
|
|