| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package local | 5 package local |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "io/ioutil" | 8 "io/ioutil" |
| 9 "os" | 9 "os" |
| 10 "path/filepath" | 10 "path/filepath" |
| 11 "runtime" |
| 11 "strings" | 12 "strings" |
| 12 "testing" | 13 "testing" |
| 13 | 14 |
| 14 . "github.com/smartystreets/goconvey/convey" | 15 . "github.com/smartystreets/goconvey/convey" |
| 15 ) | 16 ) |
| 16 | 17 |
| 17 func TestLoadPackageDef(t *testing.T) { | 18 func TestLoadPackageDef(t *testing.T) { |
| 18 Convey("LoadPackageDef empty works", t, func() { | 19 Convey("LoadPackageDef empty works", t, func() { |
| 19 body := strings.NewReader(`{"package": "package/name"}`) | 20 body := strings.NewReader(`{"package": "package/name"}`) |
| 20 def, err := LoadPackageDef(body, nil) | 21 def, err := LoadPackageDef(body, nil) |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 mkD := func(path string) { mkDir(tempDir, path) } | 218 mkD := func(path string) { mkDir(tempDir, path) } |
| 218 mkL := func(path, target string) { writeSymlink(tempDir, path, t
arget) } | 219 mkL := func(path, target string) { writeSymlink(tempDir, path, t
arget) } |
| 219 | 220 |
| 220 Convey("FindFiles works", func() { | 221 Convey("FindFiles works", func() { |
| 221 mkF("ENV/abc.py") | 222 mkF("ENV/abc.py") |
| 222 mkF("ENV/abc.pyc") // excluded via "exclude: '.*\.pyc'" | 223 mkF("ENV/abc.pyc") // excluded via "exclude: '.*\.pyc'" |
| 223 mkF("ENV/abc.pyo") | 224 mkF("ENV/abc.pyo") |
| 224 mkF("ENV/dir/def.py") | 225 mkF("ENV/dir/def.py") |
| 225 mkD("ENV/empty") // will be skipped | 226 mkD("ENV/empty") // will be skipped |
| 226 mkF("ENV/exclude_me") // excluded via "exclude: 'exclude
_me'" | 227 mkF("ENV/exclude_me") // excluded via "exclude: 'exclude
_me'" |
| 227 » » » mkL("ENV/abs_link", filepath.Dir(tempDir)) | 228 |
| 228 » » » mkL("ENV/rel_link", "abc.py") | 229 » » » // Symlinks do not work on Windows. |
| 229 » » » mkL("ENV/abs_in_root", filepath.Join(tempDir, "ENV", "di
r", "def.py")) | 230 » » » if runtime.GOOS != "windows" { |
| 231 » » » » mkL("ENV/abs_link", filepath.Dir(tempDir)) |
| 232 » » » » mkL("ENV/rel_link", "abc.py") |
| 233 » » » » mkL("ENV/abs_in_root", filepath.Join(tempDir, "E
NV", "dir", "def.py")) |
| 234 » » » } |
| 230 | 235 |
| 231 mkF("infra/xyz.py") | 236 mkF("infra/xyz.py") |
| 232 mkF("infra/zzz.pyo") | 237 mkF("infra/zzz.pyo") |
| 233 mkF("infra/excluded.py") | 238 mkF("infra/excluded.py") |
| 234 mkF("infra/excluded_dir/a") | 239 mkF("infra/excluded_dir/a") |
| 235 mkF("infra/excluded_dir/b") | 240 mkF("infra/excluded_dir/b") |
| 236 | 241 |
| 237 mkF("file1.py") | 242 mkF("file1.py") |
| 238 mkF("dir/file2.py") | 243 mkF("dir/file2.py") |
| 239 | 244 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 264 } | 269 } |
| 265 | 270 |
| 266 files, err := pkgDef.FindFiles(filepath.Join(tempDir, "a
", "b")) | 271 files, err := pkgDef.FindFiles(filepath.Join(tempDir, "a
", "b")) |
| 267 So(err, ShouldBeNil) | 272 So(err, ShouldBeNil) |
| 268 names := []string{} | 273 names := []string{} |
| 269 byName := make(map[string]File, len(files)) | 274 byName := make(map[string]File, len(files)) |
| 270 for _, f := range files { | 275 for _, f := range files { |
| 271 names = append(names, f.Name()) | 276 names = append(names, f.Name()) |
| 272 byName[f.Name()] = f | 277 byName[f.Name()] = f |
| 273 } | 278 } |
| 274 So(names, ShouldResemble, []string{ | |
| 275 "ENV/abc.py", | |
| 276 "ENV/abc.pyo", | |
| 277 "ENV/abs_in_root", | |
| 278 "ENV/abs_link", | |
| 279 "ENV/dir/def.py", | |
| 280 "ENV/rel_link", | |
| 281 "dir/file2.py", | |
| 282 "file1.py", | |
| 283 "infra/xyz.py", | |
| 284 }) | |
| 285 | 279 |
| 286 » » » // Separately check symlinks. | 280 » » » if runtime.GOOS == "windows" { |
| 287 » » » ensureSymlinkTarget(byName["ENV/abs_in_root"], "dir/def.
py") | 281 » » » » So(names, ShouldResemble, []string{ |
| 288 » » » ensureSymlinkTarget(byName["ENV/abs_link"], filepath.ToS
lash(filepath.Dir(tempDir))) | 282 » » » » » "ENV/abc.py", |
| 289 » » » ensureSymlinkTarget(byName["ENV/rel_link"], "abc.py") | 283 » » » » » "ENV/abc.pyo", |
| 284 » » » » » "ENV/dir/def.py", |
| 285 » » » » » "dir/file2.py", |
| 286 » » » » » "file1.py", |
| 287 » » » » » "infra/xyz.py", |
| 288 » » » » }) |
| 289 » » » } else { |
| 290 » » » » So(names, ShouldResemble, []string{ |
| 291 » » » » » "ENV/abc.py", |
| 292 » » » » » "ENV/abc.pyo", |
| 293 » » » » » "ENV/abs_in_root", |
| 294 » » » » » "ENV/abs_link", |
| 295 » » » » » "ENV/dir/def.py", |
| 296 » » » » » "ENV/rel_link", |
| 297 » » » » » "dir/file2.py", |
| 298 » » » » » "file1.py", |
| 299 » » » » » "infra/xyz.py", |
| 300 » » » » }) |
| 301 » » » » // Separately check symlinks. |
| 302 » » » » ensureSymlinkTarget(byName["ENV/abs_in_root"], "
dir/def.py") |
| 303 » » » » ensureSymlinkTarget(byName["ENV/abs_link"], file
path.ToSlash(filepath.Dir(tempDir))) |
| 304 » » » » ensureSymlinkTarget(byName["ENV/rel_link"], "abc
.py") |
| 305 » » » } |
| 290 }) | 306 }) |
| 291 }) | 307 }) |
| 292 } | 308 } |
| OLD | NEW |