.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / mod@v0.4.1 / zip / vendor_test.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/mod@v0.4.1/zip/vendor_test.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/mod@v0.4.1/zip/vendor_test.go
new file mode 100644 (file)
index 0000000..5eb9535
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright 2020 The Go 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 zip
+
+import "testing"
+
+func TestIsVendoredPackage(t *testing.T) {
+       for _, tc := range []struct {
+               path          string
+               want          bool
+               falsePositive bool // is this case affected by https://golang.org/issue/37397?
+       }{
+               {path: "vendor/foo/foo.go", want: true},
+               {path: "pkg/vendor/foo/foo.go", want: true},
+               {path: "longpackagename/vendor/foo/foo.go", want: true},
+
+               {path: "vendor/vendor.go", want: false},
+
+               // We ideally want these cases to be false, but they are affected by
+               // https://golang.org/issue/37397, and if we fix them we will invalidate
+               // existing module checksums. We must leave them as-is-for now.
+               {path: "pkg/vendor/vendor.go", falsePositive: true},
+               {path: "longpackagename/vendor/vendor.go", falsePositive: true},
+       } {
+               got := isVendoredPackage(tc.path)
+               want := tc.want
+               if tc.falsePositive {
+                       want = true
+               }
+               if got != want {
+                       t.Errorf("isVendoredPackage(%q) = %t; want %t", tc.path, got, tc.want)
+                       if tc.falsePositive {
+                               t.Logf("(Expected a false-positive due to https://golang.org/issue/37397.)")
+                       }
+               }
+       }
+}