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

Unified Diff: go/src/infra/tools/cipd/local/fs_test.go

Issue 1258673004: cipd: Make it work on Windows. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 5 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
Index: go/src/infra/tools/cipd/local/fs_test.go
diff --git a/go/src/infra/tools/cipd/local/fs_test.go b/go/src/infra/tools/cipd/local/fs_test.go
index cf46c0b6d4967bed8a4b43085053bc1d79489d77..a31f037d04f2e7bc84d8df16b917732a47c3d46e 100644
--- a/go/src/infra/tools/cipd/local/fs_test.go
+++ b/go/src/infra/tools/cipd/local/fs_test.go
@@ -8,6 +8,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
+ "runtime"
"testing"
. "github.com/smartystreets/goconvey/convey"
@@ -72,24 +73,28 @@ func TestEnsureDirectory(t *testing.T) {
}
func TestEnsureSymlink(t *testing.T) {
+ if runtime.GOOS == "windows" {
+ t.Skip("Skipping on Windows: no symlinks")
+ }
+
Convey("EnsureSymlink checks root", t, func() {
fs := tempFileSystem()
So(fs.EnsureSymlink(fs.join(".."), fs.Root()), ShouldNotBeNil)
})
- Convey("ensureSymlink creates new symlink", t, func() {
+ Convey("EnsureSymlink creates new symlink", t, func() {
fs := tempFileSystem()
So(fs.EnsureSymlink(fs.join("symlink"), "target"), ShouldBeNil)
So(fs.readLink("symlink"), ShouldEqual, "target")
})
- Convey("ensureSymlink builds full path", t, func() {
+ Convey("EnsureSymlink builds full path", t, func() {
fs := tempFileSystem()
So(fs.EnsureSymlink(fs.join("a/b/c"), "target"), ShouldBeNil)
So(fs.readLink("a/b/c"), ShouldEqual, "target")
})
- Convey("ensureSymlink replaces existing one", t, func() {
+ Convey("EnsureSymlink replaces existing symlink", t, func() {
fs := tempFileSystem()
// Replace with same one, then with another one.
So(fs.EnsureSymlink(fs.join("symlink"), "target"), ShouldBeNil)
@@ -97,6 +102,62 @@ func TestEnsureSymlink(t *testing.T) {
So(fs.EnsureSymlink(fs.join("symlink"), "another"), ShouldBeNil)
So(fs.readLink("symlink"), ShouldEqual, "another")
})
+
+ Convey("EnsureSymlink replaces existing file", t, func() {
+ fs := tempFileSystem()
+ fs.write("path", "blah")
+ So(fs.EnsureSymlink(fs.join("path"), "target"), ShouldBeNil)
+ So(fs.readLink("path"), ShouldEqual, "target")
+ })
+
+ Convey("EnsureSymlink replaces existing directory", t, func() {
+ fs := tempFileSystem()
+ fs.write("a/b/c", "something")
+ So(fs.EnsureSymlink(fs.join("a"), "target"), ShouldBeNil)
+ So(fs.readLink("a"), ShouldEqual, "target")
+ })
+}
+
+func TestEnsureFile(t *testing.T) {
+ Convey("EnsureFile checks root", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureFile(fs.join(".."), []byte("blah"), 0666), ShouldNotBeNil)
+ })
+
+ Convey("EnsureFile creates new file", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureFile(fs.join("name"), []byte("blah"), 0666), ShouldBeNil)
+ So(fs.read("name"), ShouldEqual, "blah")
+ })
+
+ Convey("EnsureFile builds full path", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureFile(fs.join("a/b/c"), []byte("blah"), 0666), ShouldBeNil)
+ So(fs.read("a/b/c"), ShouldEqual, "blah")
+ })
+
+ if runtime.GOOS != "windows" {
+ Convey("EnsureFile replaces existing symlink", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureSymlink(fs.join("path"), "target"), ShouldBeNil)
+ So(fs.EnsureFile(fs.join("path"), []byte("blah"), 0666), ShouldBeNil)
+ So(fs.read("path"), ShouldEqual, "blah")
+ })
+ }
+
+ Convey("EnsureFile replaces existing file", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureFile(fs.join("path"), []byte("huh"), 0666), ShouldBeNil)
+ So(fs.EnsureFile(fs.join("path"), []byte("blah"), 0666), ShouldBeNil)
+ So(fs.read("path"), ShouldEqual, "blah")
+ })
+
+ Convey("EnsureFile replaces existing directory", t, func() {
+ fs := tempFileSystem()
+ fs.write("a/b/c", "something")
+ So(fs.EnsureFile(fs.join("a"), []byte("blah"), 0666), ShouldBeNil)
+ So(fs.read("a"), ShouldEqual, "blah")
+ })
}
func TestEnsureFileGone(t *testing.T) {
@@ -117,12 +178,14 @@ func TestEnsureFileGone(t *testing.T) {
So(fs.EnsureFileGone(fs.join("abc")), ShouldBeNil)
})
- Convey("EnsureFileGone works with symlink", t, func() {
- fs := tempFileSystem()
- So(fs.EnsureSymlink(fs.join("abc"), "target"), ShouldBeNil)
- So(fs.EnsureFileGone(fs.join("abc")), ShouldBeNil)
- So(fs.isMissing("abc"), ShouldBeTrue)
- })
+ if runtime.GOOS != "windows" {
+ Convey("EnsureFileGone works with symlink", t, func() {
+ fs := tempFileSystem()
+ So(fs.EnsureSymlink(fs.join("abc"), "target"), ShouldBeNil)
+ So(fs.EnsureFileGone(fs.join("abc")), ShouldBeNil)
+ So(fs.isMissing("abc"), ShouldBeTrue)
+ })
+ }
}
func TestEnsureDirectoryGone(t *testing.T) {

Powered by Google App Engine
This is Rietveld 408576698