forked from TrueCloudLab/distribution
1a508d67d9
Mostly, we've made superficial changes to the storage package to start using the Digest type. Many of the exported interface methods have been changed to reflect this in addition to changes in the way layer uploads will be initiated. Further work here is necessary but will come with a separate PR.
49 lines
1,006 B
Go
49 lines
1,006 B
Go
package storage
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/docker/docker-registry/digest"
|
|
)
|
|
|
|
func TestPathMapper(t *testing.T) {
|
|
pm := &pathMapper{
|
|
root: "/pathmapper-test",
|
|
}
|
|
|
|
for _, testcase := range []struct {
|
|
spec pathSpec
|
|
expected string
|
|
err error
|
|
}{
|
|
{
|
|
spec: layerLinkPathSpec{
|
|
name: "foo/bar",
|
|
digest: digest.Digest("tarsum.v1+test:abcdef"),
|
|
},
|
|
expected: "/pathmapper-test/repositories/foo/bar/layers/tarsum/v1/test/abcdef",
|
|
},
|
|
{
|
|
spec: layerIndexLinkPathSpec{
|
|
digest: digest.Digest("tarsum.v1+test:abcdef"),
|
|
},
|
|
expected: "/pathmapper-test/layerindex/tarsum/v1/test/abcdef",
|
|
},
|
|
{
|
|
spec: blobPathSpec{
|
|
alg: "sha512",
|
|
digest: "abcdefabcdefabcdef908909909",
|
|
},
|
|
expected: "/pathmapper-test/blob/sha512/ab/abcdefabcdefabcdef908909909",
|
|
},
|
|
} {
|
|
p, err := pm.path(testcase.spec)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if p != testcase.expected {
|
|
t.Fatalf("unexpected path generated: %q != %q", p, testcase.expected)
|
|
}
|
|
}
|
|
}
|