mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
206 lines
3.1 KiB
Go
206 lines
3.1 KiB
Go
package filesys_test
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
. "sigs.k8s.io/kustomize/api/filesys"
|
|
)
|
|
|
|
// Confirm behavior of filepath.Match
|
|
func TestFilePathMatch(t *testing.T) {
|
|
cases := []struct {
|
|
pattern string
|
|
path string
|
|
expected bool
|
|
}{
|
|
{
|
|
pattern: "*e*",
|
|
path: "hey",
|
|
expected: true,
|
|
},
|
|
{
|
|
pattern: "*e*",
|
|
path: "hay",
|
|
expected: false,
|
|
},
|
|
{
|
|
pattern: "*e*",
|
|
path: filepath.Join("h", "e", "y"),
|
|
expected: false,
|
|
},
|
|
{
|
|
pattern: "*/e/*",
|
|
path: filepath.Join("h", "e", "y"),
|
|
expected: true,
|
|
},
|
|
{
|
|
pattern: "h/e/*",
|
|
path: filepath.Join("h", "e", "y"),
|
|
expected: true,
|
|
},
|
|
{
|
|
pattern: "*/e/y",
|
|
path: filepath.Join("h", "e", "y"),
|
|
expected: true,
|
|
},
|
|
{
|
|
pattern: "*/*/*",
|
|
path: filepath.Join("h", "e", "y"),
|
|
expected: true,
|
|
},
|
|
{
|
|
pattern: "*/*/*",
|
|
path: filepath.Join("h", "e", "y", "there"),
|
|
expected: false,
|
|
},
|
|
{
|
|
pattern: "*/*/*/t*e",
|
|
path: filepath.Join("h", "e", "y", "there"),
|
|
expected: true,
|
|
},
|
|
}
|
|
for _, item := range cases {
|
|
match, err := filepath.Match(item.pattern, item.path)
|
|
if err != nil {
|
|
t.Fatalf("unexpected err: %v", err)
|
|
}
|
|
if match != item.expected {
|
|
t.Fatalf("'%s' '%s' %v\n", item.pattern, item.path, match)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Confirm behavior of filepath.Split
|
|
func TestFilePathSplit(t *testing.T) {
|
|
cases := []struct {
|
|
full string
|
|
dir string
|
|
file string
|
|
}{
|
|
{
|
|
full: "",
|
|
dir: "",
|
|
file: "",
|
|
},
|
|
{
|
|
full: SelfDir,
|
|
dir: "",
|
|
file: SelfDir,
|
|
},
|
|
{
|
|
full: "rabbit.jpg",
|
|
dir: "",
|
|
file: "rabbit.jpg",
|
|
},
|
|
{
|
|
full: "/beans",
|
|
dir: "/",
|
|
file: "beans",
|
|
},
|
|
{
|
|
full: "/home/foo/bar",
|
|
dir: "/home/foo/",
|
|
file: "bar",
|
|
},
|
|
{
|
|
full: "/usr/local/",
|
|
dir: "/usr/local/",
|
|
file: "",
|
|
},
|
|
{
|
|
full: "/usr//local//go",
|
|
dir: "/usr//local//",
|
|
file: "go",
|
|
},
|
|
}
|
|
for _, p := range cases {
|
|
dir, file := filepath.Split(p.full)
|
|
if dir != p.dir || file != p.file {
|
|
t.Fatalf(
|
|
"in '%s',\ngot dir='%s' (expected '%s'),\n got file='%s' (expected %s).",
|
|
p.full, dir, p.dir, file, p.file)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestStripTrailingSeps(t *testing.T) {
|
|
cases := []struct {
|
|
full string
|
|
rem string
|
|
}{
|
|
{
|
|
full: "foo",
|
|
rem: "foo",
|
|
},
|
|
{
|
|
full: "",
|
|
rem: "",
|
|
},
|
|
{
|
|
full: "foo/",
|
|
rem: "foo",
|
|
},
|
|
{
|
|
full: "foo///bar///",
|
|
rem: "foo///bar",
|
|
},
|
|
{
|
|
full: "/////",
|
|
rem: "",
|
|
},
|
|
{
|
|
full: "/",
|
|
rem: "",
|
|
},
|
|
}
|
|
for _, p := range cases {
|
|
dir := StripTrailingSeps(p.full)
|
|
if dir != p.rem {
|
|
t.Fatalf(
|
|
"in '%s', got dir='%s' (expected '%s')",
|
|
p.full, dir, p.rem)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestStripLeadingSeps(t *testing.T) {
|
|
cases := []struct {
|
|
full string
|
|
rem string
|
|
}{
|
|
{
|
|
full: "foo",
|
|
rem: "foo",
|
|
},
|
|
{
|
|
full: "",
|
|
rem: "",
|
|
},
|
|
{
|
|
full: "/foo",
|
|
rem: "foo",
|
|
},
|
|
{
|
|
full: "///foo///bar///",
|
|
rem: "foo///bar///",
|
|
},
|
|
{
|
|
full: "/////",
|
|
rem: "",
|
|
},
|
|
{
|
|
full: "/",
|
|
rem: "",
|
|
},
|
|
}
|
|
for _, p := range cases {
|
|
dir := StripLeadingSeps(p.full)
|
|
if dir != p.rem {
|
|
t.Fatalf(
|
|
"in '%s', got dir='%s' (expected '%s')",
|
|
p.full, dir, p.rem)
|
|
}
|
|
}
|
|
}
|