
This ignore "not found" errors that may arise during test cleanup. Since the goal is to make the content "not found", it is okay to skip them and not fail the test. Signed-off-by: Stephen J Day <stephen.day@docker.com>
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package containerd
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/containerd/containerd/content"
|
|
"github.com/containerd/containerd/content/testsuite"
|
|
"github.com/containerd/containerd/errdefs"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func newContentStore(ctx context.Context, root string) (content.Store, func() error, error) {
|
|
client, err := New(address)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
cs := client.ContentStore()
|
|
|
|
return cs, func() error {
|
|
statuses, err := cs.ListStatuses(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, st := range statuses {
|
|
if err := cs.Abort(ctx, st.Ref); err != nil {
|
|
return errors.Wrapf(err, "failed to abort %s", st.Ref)
|
|
}
|
|
}
|
|
return cs.Walk(ctx, func(info content.Info) error {
|
|
if err := cs.Delete(ctx, info.Digest); err != nil {
|
|
if errdefs.IsNotFound(err) {
|
|
return nil
|
|
}
|
|
|
|
return err
|
|
}
|
|
return nil
|
|
})
|
|
|
|
}, nil
|
|
}
|
|
|
|
func TestContentClient(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip()
|
|
}
|
|
testsuite.ContentSuite(t, "ContentClient", newContentStore)
|
|
}
|