func newTestRegistry( ctx context.Context, osClient client.Interface, storageDriver driver.StorageDriver, blobrepositorycachettl time.Duration, pullthrough bool, useBlobDescriptorCacheProvider bool, ) (*testRegistry, error) { if storageDriver == nil { storageDriver = inmemory.New() } dockerStorageDriver = storageDriver opts := []storage.RegistryOption{ storage.BlobDescriptorServiceFactory(&blobDescriptorServiceFactory{}), storage.EnableDelete, storage.EnableRedirect, } if useBlobDescriptorCacheProvider { cacheProvider := cache.BlobDescriptorCacheProvider(memory.NewInMemoryBlobDescriptorCacheProvider()) opts = append(opts, storage.BlobDescriptorCacheProvider(cacheProvider)) } reg, err := storage.NewRegistry(ctx, dockerStorageDriver, opts...) if err != nil { return nil, err } dockerRegistry = reg return &testRegistry{ Namespace: dockerRegistry, osClient: osClient, blobrepositorycachettl: blobrepositorycachettl, pullthrough: pullthrough, }, nil }
func init() { middleware.RegisterOptions(storage.BlobDescriptorServiceFactory(&blobDescriptorServiceFactory{})) }
// fakeBlobDescriptorService installs a fake blob descriptor on top of blobDescriptorService that collects // stats of method invocations. unsetRepository commands the controller to remove repository object from // context passed down to blobDescriptorService if true. func fakeBlobDescriptorService(t *testing.T) *testBlobDescriptorManager { m := NewTestBlobDescriptorManager() middleware.RegisterOptions(storage.BlobDescriptorServiceFactory(&testBlobDescriptorServiceFactory{t: t, m: m})) return m }