vendor: remove dep and use vndr
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
16f44674a4
commit
148e72d81e
16131 changed files with 73815 additions and 4235138 deletions
162
vendor/github.com/containers/image/directory/directory_test.go
generated
vendored
162
vendor/github.com/containers/image/directory/directory_test.go
generated
vendored
|
@ -1,162 +0,0 @@
|
|||
package directory
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/containers/image/types"
|
||||
"github.com/opencontainers/go-digest"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDestinationReference(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
ref2 := dest.Reference()
|
||||
assert.Equal(t, tmpDir, ref2.StringWithinTransport())
|
||||
}
|
||||
|
||||
func TestGetPutManifest(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
man := []byte("test-manifest")
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
err = dest.PutManifest(man)
|
||||
assert.NoError(t, err)
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
|
||||
src, err := ref.NewImageSource(nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer src.Close()
|
||||
m, mt, err := src.GetManifest()
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, man, m)
|
||||
assert.Equal(t, "", mt)
|
||||
}
|
||||
|
||||
func TestGetPutBlob(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
blob := []byte("test-blob")
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
compress := dest.ShouldCompressLayers()
|
||||
assert.False(t, compress)
|
||||
info, err := dest.PutBlob(bytes.NewReader(blob), types.BlobInfo{Digest: digest.Digest("sha256:digest-test"), Size: int64(9)})
|
||||
assert.NoError(t, err)
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, int64(9), info.Size)
|
||||
assert.Equal(t, digest.FromBytes(blob), info.Digest)
|
||||
|
||||
src, err := ref.NewImageSource(nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer src.Close()
|
||||
rc, size, err := src.GetBlob(info)
|
||||
assert.NoError(t, err)
|
||||
defer rc.Close()
|
||||
b, err := ioutil.ReadAll(rc)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, blob, b)
|
||||
assert.Equal(t, int64(len(blob)), size)
|
||||
}
|
||||
|
||||
// readerFromFunc allows implementing Reader by any function, e.g. a closure.
|
||||
type readerFromFunc func([]byte) (int, error)
|
||||
|
||||
func (fn readerFromFunc) Read(p []byte) (int, error) {
|
||||
return fn(p)
|
||||
}
|
||||
|
||||
// TestPutBlobDigestFailure simulates behavior on digest verification failure.
|
||||
func TestPutBlobDigestFailure(t *testing.T) {
|
||||
const digestErrorString = "Simulated digest error"
|
||||
const blobDigest = digest.Digest("sha256:test-digest")
|
||||
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
dirRef, ok := ref.(dirReference)
|
||||
require.True(t, ok)
|
||||
blobPath := dirRef.layerPath(blobDigest)
|
||||
|
||||
firstRead := true
|
||||
reader := readerFromFunc(func(p []byte) (int, error) {
|
||||
_, err := os.Lstat(blobPath)
|
||||
require.Error(t, err)
|
||||
require.True(t, os.IsNotExist(err))
|
||||
if firstRead {
|
||||
if len(p) > 0 {
|
||||
firstRead = false
|
||||
}
|
||||
for i := 0; i < len(p); i++ {
|
||||
p[i] = 0xAA
|
||||
}
|
||||
return len(p), nil
|
||||
}
|
||||
return 0, errors.Errorf(digestErrorString)
|
||||
})
|
||||
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
_, err = dest.PutBlob(reader, types.BlobInfo{Digest: blobDigest, Size: -1})
|
||||
assert.Error(t, err)
|
||||
assert.Contains(t, digestErrorString, err.Error())
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = os.Lstat(blobPath)
|
||||
require.Error(t, err)
|
||||
require.True(t, os.IsNotExist(err))
|
||||
}
|
||||
|
||||
func TestGetPutSignatures(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
signatures := [][]byte{
|
||||
[]byte("sig1"),
|
||||
[]byte("sig2"),
|
||||
}
|
||||
err = dest.SupportsSignatures()
|
||||
assert.NoError(t, err)
|
||||
err = dest.PutSignatures(signatures)
|
||||
assert.NoError(t, err)
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
|
||||
src, err := ref.NewImageSource(nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer src.Close()
|
||||
sigs, err := src.GetSignatures()
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, signatures, sigs)
|
||||
}
|
||||
|
||||
func TestSourceReference(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
src, err := ref.NewImageSource(nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer src.Close()
|
||||
ref2 := src.Reference()
|
||||
assert.Equal(t, tmpDir, ref2.StringWithinTransport())
|
||||
}
|
232
vendor/github.com/containers/image/directory/directory_transport_test.go
generated
vendored
232
vendor/github.com/containers/image/directory/directory_transport_test.go
generated
vendored
|
@ -1,232 +0,0 @@
|
|||
package directory
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/containers/image/types"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTransportName(t *testing.T) {
|
||||
assert.Equal(t, "dir", Transport.Name())
|
||||
}
|
||||
|
||||
func TestTransportParseReference(t *testing.T) {
|
||||
testNewReference(t, Transport.ParseReference)
|
||||
}
|
||||
|
||||
func TestTransportValidatePolicyConfigurationScope(t *testing.T) {
|
||||
for _, scope := range []string{
|
||||
"/etc",
|
||||
"/this/does/not/exist",
|
||||
} {
|
||||
err := Transport.ValidatePolicyConfigurationScope(scope)
|
||||
assert.NoError(t, err, scope)
|
||||
}
|
||||
|
||||
for _, scope := range []string{
|
||||
"relative/path",
|
||||
"/double//slashes",
|
||||
"/has/./dot",
|
||||
"/has/dot/../dot",
|
||||
"/trailing/slash/",
|
||||
"/",
|
||||
} {
|
||||
err := Transport.ValidatePolicyConfigurationScope(scope)
|
||||
assert.Error(t, err, scope)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewReference(t *testing.T) {
|
||||
testNewReference(t, NewReference)
|
||||
}
|
||||
|
||||
// testNewReference is a test shared for Transport.ParseReference and NewReference.
|
||||
func testNewReference(t *testing.T, fn func(string) (types.ImageReference, error)) {
|
||||
tmpDir, err := ioutil.TempDir("", "dir-transport-test")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
for _, path := range []string{
|
||||
"/",
|
||||
"/etc",
|
||||
tmpDir,
|
||||
"relativepath",
|
||||
tmpDir + "/thisdoesnotexist",
|
||||
} {
|
||||
ref, err := fn(path)
|
||||
require.NoError(t, err, path)
|
||||
dirRef, ok := ref.(dirReference)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, path, dirRef.path, path)
|
||||
}
|
||||
|
||||
_, err = fn(tmpDir + "/thisparentdoesnotexist/something")
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
// refToTempDir creates a temporary directory and returns a reference to it.
|
||||
// The caller should
|
||||
// defer os.RemoveAll(tmpDir)
|
||||
func refToTempDir(t *testing.T) (ref types.ImageReference, tmpDir string) {
|
||||
tmpDir, err := ioutil.TempDir("", "dir-transport-test")
|
||||
require.NoError(t, err)
|
||||
ref, err = NewReference(tmpDir)
|
||||
require.NoError(t, err)
|
||||
return ref, tmpDir
|
||||
}
|
||||
|
||||
func TestReferenceTransport(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
assert.Equal(t, Transport, ref.Transport())
|
||||
}
|
||||
|
||||
func TestReferenceStringWithinTransport(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
assert.Equal(t, tmpDir, ref.StringWithinTransport())
|
||||
}
|
||||
|
||||
func TestReferenceDockerReference(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
assert.Nil(t, ref.DockerReference())
|
||||
}
|
||||
|
||||
func TestReferencePolicyConfigurationIdentity(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
assert.Equal(t, tmpDir, ref.PolicyConfigurationIdentity())
|
||||
// A non-canonical path. Test just one, the various other cases are
|
||||
// tested in explicitfilepath.ResolvePathToFullyExplicit.
|
||||
ref, err := NewReference(tmpDir + "/.")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, tmpDir, ref.PolicyConfigurationIdentity())
|
||||
|
||||
// "/" as a corner case.
|
||||
ref, err = NewReference("/")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "/", ref.PolicyConfigurationIdentity())
|
||||
}
|
||||
|
||||
func TestReferencePolicyConfigurationNamespaces(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
// We don't really know enough to make a full equality test here.
|
||||
ns := ref.PolicyConfigurationNamespaces()
|
||||
require.NotNil(t, ns)
|
||||
assert.NotEmpty(t, ns)
|
||||
assert.Equal(t, filepath.Dir(tmpDir), ns[0])
|
||||
|
||||
// Test with a known path which should exist. Test just one non-canonical
|
||||
// path, the various other cases are tested in explicitfilepath.ResolvePathToFullyExplicit.
|
||||
//
|
||||
// It would be nice to test a deeper hierarchy, but it is not obvious what
|
||||
// deeper path is always available in the various distros, AND is not likely
|
||||
// to contains a symbolic link.
|
||||
for _, path := range []string{"/etc/skel", "/etc/skel/./."} {
|
||||
_, err := os.Lstat(path)
|
||||
require.NoError(t, err)
|
||||
ref, err := NewReference(path)
|
||||
require.NoError(t, err)
|
||||
ns := ref.PolicyConfigurationNamespaces()
|
||||
require.NotNil(t, ns)
|
||||
assert.Equal(t, []string{"/etc"}, ns)
|
||||
}
|
||||
|
||||
// "/" as a corner case.
|
||||
ref, err := NewReference("/")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, []string{}, ref.PolicyConfigurationNamespaces())
|
||||
}
|
||||
|
||||
func TestReferenceNewImage(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
mFixture, err := ioutil.ReadFile("../manifest/fixtures/v2s1.manifest.json")
|
||||
require.NoError(t, err)
|
||||
err = dest.PutManifest(mFixture)
|
||||
assert.NoError(t, err)
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
|
||||
img, err := ref.NewImage(nil)
|
||||
assert.NoError(t, err)
|
||||
defer img.Close()
|
||||
}
|
||||
|
||||
func TestReferenceNewImageNoValidManifest(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
require.NoError(t, err)
|
||||
defer dest.Close()
|
||||
err = dest.PutManifest([]byte(`{"schemaVersion":1}`))
|
||||
assert.NoError(t, err)
|
||||
err = dest.Commit()
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ref.NewImage(nil)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestReferenceNewImageSource(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
src, err := ref.NewImageSource(nil, nil)
|
||||
assert.NoError(t, err)
|
||||
defer src.Close()
|
||||
}
|
||||
|
||||
func TestReferenceNewImageDestination(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
dest, err := ref.NewImageDestination(nil)
|
||||
assert.NoError(t, err)
|
||||
defer dest.Close()
|
||||
}
|
||||
|
||||
func TestReferenceDeleteImage(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
err := ref.DeleteImage(nil)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestReferenceManifestPath(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
dirRef, ok := ref.(dirReference)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, tmpDir+"/manifest.json", dirRef.manifestPath())
|
||||
}
|
||||
|
||||
func TestReferenceLayerPath(t *testing.T) {
|
||||
const hex = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
||||
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
dirRef, ok := ref.(dirReference)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, tmpDir+"/"+hex+".tar", dirRef.layerPath("sha256:"+hex))
|
||||
}
|
||||
|
||||
func TestReferenceSignaturePath(t *testing.T) {
|
||||
ref, tmpDir := refToTempDir(t)
|
||||
defer os.RemoveAll(tmpDir)
|
||||
dirRef, ok := ref.(dirReference)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, tmpDir+"/signature-1", dirRef.signaturePath(0))
|
||||
assert.Equal(t, tmpDir+"/signature-10", dirRef.signaturePath(9))
|
||||
}
|
173
vendor/github.com/containers/image/directory/explicitfilepath/path_test.go
generated
vendored
173
vendor/github.com/containers/image/directory/explicitfilepath/path_test.go
generated
vendored
|
@ -1,173 +0,0 @@
|
|||
package explicitfilepath
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type pathResolvingTestCase struct {
|
||||
setup func(*testing.T, string) string
|
||||
expected string
|
||||
}
|
||||
|
||||
var testCases = []pathResolvingTestCase{
|
||||
{ // A straightforward subdirectory hierarchy
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2/dir3"), 0755)
|
||||
require.NoError(t, err)
|
||||
return "dir1/dir2/dir3"
|
||||
},
|
||||
"dir1/dir2/dir3",
|
||||
},
|
||||
{ // Missing component
|
||||
func(t *testing.T, top string) string {
|
||||
return "thisismissing/dir2"
|
||||
},
|
||||
"",
|
||||
},
|
||||
{ // Symlink on the path
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2"), 0755)
|
||||
require.NoError(t, err)
|
||||
err = os.Symlink("dir1", filepath.Join(top, "link1"))
|
||||
require.NoError(t, err)
|
||||
return "link1/dir2"
|
||||
},
|
||||
"dir1/dir2",
|
||||
},
|
||||
{ // Trailing symlink
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2"), 0755)
|
||||
require.NoError(t, err)
|
||||
err = os.Symlink("dir2", filepath.Join(top, "dir1/link2"))
|
||||
require.NoError(t, err)
|
||||
return "dir1/link2"
|
||||
},
|
||||
"dir1/dir2",
|
||||
},
|
||||
{ // Symlink pointing nowhere, as a non-final component
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.Symlink("thisismissing", filepath.Join(top, "link1"))
|
||||
require.NoError(t, err)
|
||||
return "link1/dir2"
|
||||
},
|
||||
"",
|
||||
},
|
||||
{ // Trailing symlink pointing nowhere (but note that a missing non-symlink would be accepted)
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.Symlink("thisismissing", filepath.Join(top, "link1"))
|
||||
require.NoError(t, err)
|
||||
return "link1"
|
||||
},
|
||||
"",
|
||||
},
|
||||
{ // Relative components in a path
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2/dir3"), 0755)
|
||||
require.NoError(t, err)
|
||||
return "dir1/./dir2/../dir2/dir3"
|
||||
},
|
||||
"dir1/dir2/dir3",
|
||||
},
|
||||
{ // Trailing relative components
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2"), 0755)
|
||||
require.NoError(t, err)
|
||||
return "dir1/dir2/.."
|
||||
},
|
||||
"dir1",
|
||||
},
|
||||
{ // Relative components in symlink
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2"), 0755)
|
||||
require.NoError(t, err)
|
||||
err = os.Symlink("../dir1/dir2", filepath.Join(top, "dir1/link2"))
|
||||
require.NoError(t, err)
|
||||
return "dir1/link2"
|
||||
},
|
||||
"dir1/dir2",
|
||||
},
|
||||
{ // Relative component pointing "into" a symlink
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "dir1/dir2/dir3"), 0755)
|
||||
require.NoError(t, err)
|
||||
err = os.Symlink("dir3", filepath.Join(top, "dir1/dir2/link3"))
|
||||
require.NoError(t, err)
|
||||
return "dir1/dir2/link3/../.."
|
||||
},
|
||||
"dir1",
|
||||
},
|
||||
{ // Unreadable directory
|
||||
func(t *testing.T, top string) string {
|
||||
err := os.MkdirAll(filepath.Join(top, "unreadable/dir2"), 0755)
|
||||
require.NoError(t, err)
|
||||
err = os.Chmod(filepath.Join(top, "unreadable"), 000)
|
||||
require.NoError(t, err)
|
||||
return "unreadable/dir2"
|
||||
},
|
||||
"",
|
||||
},
|
||||
}
|
||||
|
||||
func testPathsAreSameFile(t *testing.T, path1, path2, description string) {
|
||||
fi1, err := os.Stat(path1)
|
||||
require.NoError(t, err)
|
||||
fi2, err := os.Stat(path2)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, os.SameFile(fi1, fi2), description)
|
||||
}
|
||||
|
||||
func runPathResolvingTestCase(t *testing.T, f func(string) (string, error), c pathResolvingTestCase, suffix string) {
|
||||
topDir, err := ioutil.TempDir("", "pathResolving")
|
||||
defer func() {
|
||||
// Clean up after the "Unreadable directory" case; os.RemoveAll just fails.
|
||||
_ = os.Chmod(filepath.Join(topDir, "unreadable"), 0755) // Ignore errors, especially if this does not exist.
|
||||
os.RemoveAll(topDir)
|
||||
}()
|
||||
|
||||
input := c.setup(t, topDir) + suffix // Do not call filepath.Join() on input, it calls filepath.Clean() internally!
|
||||
description := fmt.Sprintf("%s vs. %s%s", input, c.expected, suffix)
|
||||
|
||||
fullOutput, err := ResolvePathToFullyExplicit(topDir + "/" + input)
|
||||
if c.expected == "" {
|
||||
assert.Error(t, err, description)
|
||||
} else {
|
||||
require.NoError(t, err, input)
|
||||
fullExpected := topDir + "/" + c.expected + suffix
|
||||
assert.Equal(t, fullExpected, fullOutput)
|
||||
|
||||
// Either the two paths resolve to the same existing file, or to the same name in the same existing parent.
|
||||
if _, err := os.Lstat(fullExpected); err == nil {
|
||||
testPathsAreSameFile(t, fullOutput, fullExpected, description)
|
||||
} else {
|
||||
require.True(t, os.IsNotExist(err))
|
||||
_, err := os.Stat(fullOutput)
|
||||
require.Error(t, err)
|
||||
require.True(t, os.IsNotExist(err))
|
||||
|
||||
parentExpected, fileExpected := filepath.Split(fullExpected)
|
||||
parentOutput, fileOutput := filepath.Split(fullOutput)
|
||||
assert.Equal(t, fileExpected, fileOutput)
|
||||
testPathsAreSameFile(t, parentOutput, parentExpected, description)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolvePathToFullyExplicit(t *testing.T) {
|
||||
for _, c := range testCases {
|
||||
runPathResolvingTestCase(t, ResolvePathToFullyExplicit, c, "")
|
||||
runPathResolvingTestCase(t, ResolvePathToFullyExplicit, c, "/trailing")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveExistingPathToFullyExplicit(t *testing.T) {
|
||||
for _, c := range testCases {
|
||||
runPathResolvingTestCase(t, resolveExistingPathToFullyExplicit, c, "")
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue