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)
 | 
						|
}
 |