contenthash: use require in all tests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>docker-18.09
parent
39404586a5
commit
a93a96b0e3
|
@ -18,7 +18,6 @@ import (
|
||||||
"github.com/moby/buildkit/snapshot"
|
"github.com/moby/buildkit/snapshot"
|
||||||
digest "github.com/opencontainers/go-digest"
|
digest "github.com/opencontainers/go-digest"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"github.com/tonistiigi/fsutil"
|
"github.com/tonistiigi/fsutil"
|
||||||
)
|
)
|
||||||
|
@ -55,53 +54,53 @@ func TestChecksumBasicFile(t *testing.T) {
|
||||||
// phase but consistency is
|
// phase but consistency is
|
||||||
|
|
||||||
cc, err := newCacheContext(ref.Metadata())
|
cc, err := newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cc.Checksum(context.TODO(), ref, "nosuch")
|
_, err = cc.Checksum(context.TODO(), ref, "nosuch")
|
||||||
assert.Error(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
dgst, err := cc.Checksum(context.TODO(), ref, "foo")
|
dgst, err := cc.Checksum(context.TODO(), ref, "foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
// second file returns different hash
|
// second file returns different hash
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "bar")
|
dgst, err = cc.Checksum(context.TODO(), ref, "bar")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, digest.Digest("sha256:c2b5e234f5f38fc5864da7def04782f82501a40d46192e4207d5b3f0c3c4732b"), dgst)
|
require.Equal(t, digest.Digest("sha256:c2b5e234f5f38fc5864da7def04782f82501a40d46192e4207d5b3f0c3c4732b"), dgst)
|
||||||
|
|
||||||
// same file inside a directory
|
// same file inside a directory
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
// repeat because codepath is different
|
// repeat because codepath is different
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
// symlink to the same file is followed, returns same hash
|
// symlink to the same file is followed, returns same hash
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0/def")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0/def")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
_, err = cc.Checksum(context.TODO(), ref, "d0/ghi")
|
_, err = cc.Checksum(context.TODO(), ref, "d0/ghi")
|
||||||
assert.Error(t, err)
|
require.Error(t, err)
|
||||||
assert.Equal(t, errNotFound, errors.Cause(err))
|
require.Equal(t, errNotFound, errors.Cause(err))
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, digest.Digest("sha256:427c9cf9ae98c0f81fb57a3076b965c7c149b6b0a85625ad4e884236649a42c6"), dgst)
|
require.Equal(t, digest.Digest("sha256:427c9cf9ae98c0f81fb57a3076b965c7c149b6b0a85625ad4e884236649a42c6"), dgst)
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstDirD0, dgst)
|
require.Equal(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -116,12 +115,12 @@ func TestChecksumBasicFile(t *testing.T) {
|
||||||
ref = createRef(t, cm, ch)
|
ref = createRef(t, cm, ch)
|
||||||
|
|
||||||
cc, err = newCacheContext(ref.Metadata())
|
cc, err = newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstDirD0, dgst)
|
require.Equal(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -135,13 +134,13 @@ func TestChecksumBasicFile(t *testing.T) {
|
||||||
ref = createRef(t, cm, ch)
|
ref = createRef(t, cm, ch)
|
||||||
|
|
||||||
cc, err = newCacheContext(ref.Metadata())
|
cc, err = newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
dgst, err = cc.Checksum(context.TODO(), ref, "/")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstDirD0Modified, dgst)
|
require.Equal(t, dgstDirD0Modified, dgst)
|
||||||
assert.NotEqual(t, dgstDirD0, dgst)
|
require.NotEqual(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -161,19 +160,19 @@ func TestChecksumBasicFile(t *testing.T) {
|
||||||
ref = createRef(t, cm, ch)
|
ref = createRef(t, cm, ch)
|
||||||
|
|
||||||
cc, err = newCacheContext(ref.Metadata())
|
cc, err = newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "abc/aa/foo")
|
dgst, err = cc.Checksum(context.TODO(), ref, "abc/aa/foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, digest.Digest("sha256:1c67653c3cf95b12a0014e2c4cd1d776b474b3218aee54155d6ae27b9b999c54"), dgst)
|
require.Equal(t, digest.Digest("sha256:1c67653c3cf95b12a0014e2c4cd1d776b474b3218aee54155d6ae27b9b999c54"), dgst)
|
||||||
assert.NotEqual(t, dgstDirD0, dgst)
|
require.NotEqual(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
// this will force rescan
|
// this will force rescan
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstDirD0, dgst)
|
require.Equal(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -205,53 +204,53 @@ func TestHandleChange(t *testing.T) {
|
||||||
// phase but consistency is
|
// phase but consistency is
|
||||||
|
|
||||||
cc, err := newCacheContext(ref.Metadata())
|
cc, err := newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgstFoo, err := cc.Checksum(context.TODO(), ref, "foo")
|
dgstFoo, err := cc.Checksum(context.TODO(), ref, "foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFileData0, dgstFoo)
|
require.Equal(t, dgstFileData0, dgstFoo)
|
||||||
|
|
||||||
// symlink to the same file is followed, returns same hash
|
// symlink to the same file is followed, returns same hash
|
||||||
dgst, err := cc.Checksum(context.TODO(), ref, "d0/def")
|
dgst, err := cc.Checksum(context.TODO(), ref, "d0/def")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstFoo, dgst)
|
require.Equal(t, dgstFoo, dgst)
|
||||||
|
|
||||||
// symlink to the same file is followed, returns same hash
|
// symlink to the same file is followed, returns same hash
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgstDirD0, dgst)
|
require.Equal(t, dgstDirD0, dgst)
|
||||||
|
|
||||||
ch = []string{
|
ch = []string{
|
||||||
"DEL d0/ghi file",
|
"DEL d0/ghi file",
|
||||||
}
|
}
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
dgst, err = cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, dgstDirD0Modified, dgst)
|
require.Equal(t, dgstDirD0Modified, dgst)
|
||||||
|
|
||||||
ch = []string{
|
ch = []string{
|
||||||
"DEL d0 dir",
|
"DEL d0 dir",
|
||||||
}
|
}
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cc.Checksum(context.TODO(), ref, "d0")
|
_, err = cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.Error(t, err)
|
require.Error(t, err)
|
||||||
assert.Equal(t, errNotFound, errors.Cause(err))
|
require.Equal(t, errNotFound, errors.Cause(err))
|
||||||
|
|
||||||
_, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
_, err = cc.Checksum(context.TODO(), ref, "d0/abc")
|
||||||
assert.Error(t, err)
|
require.Error(t, err)
|
||||||
assert.Equal(t, errNotFound, errors.Cause(err))
|
require.Equal(t, errNotFound, errors.Cause(err))
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -281,13 +280,13 @@ func TestHandleRecursiveDir(t *testing.T) {
|
||||||
ref := createRef(t, cm, nil)
|
ref := createRef(t, cm, nil)
|
||||||
|
|
||||||
cc, err := newCacheContext(ref.Metadata())
|
cc, err := newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err := cc.Checksum(context.TODO(), ref, "d0/foo/bar")
|
dgst, err := cc.Checksum(context.TODO(), ref, "d0/foo/bar")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
ch = []string{
|
ch = []string{
|
||||||
"DEL d0 dir",
|
"DEL d0 dir",
|
||||||
|
@ -296,14 +295,14 @@ func TestHandleRecursiveDir(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst2, err := cc.Checksum(context.TODO(), ref, "d1")
|
dgst2, err := cc.Checksum(context.TODO(), ref, "d1")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, dgst2, dgst)
|
require.Equal(t, dgst2, dgst)
|
||||||
|
|
||||||
_, err = cc.Checksum(context.TODO(), ref, "")
|
_, err = cc.Checksum(context.TODO(), ref, "")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestChecksumUnorderedFiles(t *testing.T) {
|
func TestChecksumUnorderedFiles(t *testing.T) {
|
||||||
|
@ -328,15 +327,15 @@ func TestChecksumUnorderedFiles(t *testing.T) {
|
||||||
ref := createRef(t, cm, nil)
|
ref := createRef(t, cm, nil)
|
||||||
|
|
||||||
cc, err := newCacheContext(ref.Metadata())
|
cc, err := newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err := cc.Checksum(context.TODO(), ref, "d0")
|
dgst, err := cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, dgst, digest.Digest("sha256:14276c302c940a80f82ca5477bf766c98a24702d6a9948ee71bb277cdad3ae05"))
|
require.Equal(t, dgst, digest.Digest("sha256:14276c302c940a80f82ca5477bf766c98a24702d6a9948ee71bb277cdad3ae05"))
|
||||||
|
|
||||||
// check regression from earier version that didn't track some files
|
// check regression from earier version that didn't track some files
|
||||||
ch = []string{
|
ch = []string{
|
||||||
|
@ -348,15 +347,15 @@ func TestChecksumUnorderedFiles(t *testing.T) {
|
||||||
ref = createRef(t, cm, nil)
|
ref = createRef(t, cm, nil)
|
||||||
|
|
||||||
cc, err = newCacheContext(ref.Metadata())
|
cc, err = newCacheContext(ref.Metadata())
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = emit(cc.HandleChange, changeStream(ch))
|
err = emit(cc.HandleChange, changeStream(ch))
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst2, err := cc.Checksum(context.TODO(), ref, "d0")
|
dgst2, err := cc.Checksum(context.TODO(), ref, "d0")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.NotEqual(t, dgst, dgst2)
|
require.NotEqual(t, dgst, dgst2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPersistence(t *testing.T) {
|
func TestPersistence(t *testing.T) {
|
||||||
|
@ -383,18 +382,18 @@ func TestPersistence(t *testing.T) {
|
||||||
id := ref.ID()
|
id := ref.ID()
|
||||||
|
|
||||||
dgst, err := Checksum(context.TODO(), ref, "foo")
|
dgst, err := Checksum(context.TODO(), ref, "foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
ref, err = cm.Get(context.TODO(), id)
|
ref, err = cm.Get(context.TODO(), id)
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = Checksum(context.TODO(), ref, "foo")
|
dgst, err = Checksum(context.TODO(), ref, "foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
|
|
||||||
err = ref.Release(context.TODO())
|
err = ref.Release(context.TODO())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -408,11 +407,11 @@ func TestPersistence(t *testing.T) {
|
||||||
defer cm.Close()
|
defer cm.Close()
|
||||||
|
|
||||||
ref, err = cm.Get(context.TODO(), id)
|
ref, err = cm.Get(context.TODO(), id)
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dgst, err = Checksum(context.TODO(), ref, "foo")
|
dgst, err = Checksum(context.TODO(), ref, "foo")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, dgstFileData0, dgst)
|
require.Equal(t, dgstFileData0, dgst)
|
||||||
}
|
}
|
||||||
|
|
||||||
func createRef(t *testing.T, cm cache.Manager, files []string) cache.ImmutableRef {
|
func createRef(t *testing.T, cm cache.Manager, files []string) cache.ImmutableRef {
|
||||||
|
|
Loading…
Reference in New Issue