Documentation
¶
Overview ¶
Package testutil builds real local snapshot and content stores for transfer tests. The stores need no privileges: see inplace.go for what that costs.
Index ¶
Constants ¶
const Namespace = "snapshot-transfer-test"
Variables ¶
var FileTime = time.Unix(1700000000, 0).UTC()
Functions ¶
func RequireNativeMount ¶
RequireNativeMount skips the test with the reason when the host denies the read-only bind mount that a native snapshot read needs. Tests that read a snapshot through core.MountRef (File.Contents, Directory.Entries, the evaluation of a subdirectory) call it first; the in-place store makes every other store test independent of mount privileges, and this probe marks the remaining ones as unexecuted, not failed, on hosts and CI runners without them.
Types ¶
type Provider ¶
type Provider struct {
content.InfoReaderProvider
Reads atomic.Int64
BeforeRead func(context.Context, ocispecs.Descriptor) error
}
type Store ¶
type Store struct {
Manager bkcache.SnapshotManager
Content *containerdsnapshot.Store
Snapshots bkcache.Snapshotter
Leases leases.Manager
DB *metadata.DB
Applies atomic.Int64
Diffs atomic.Int64
BeforeWrite func([]byte) error
BeforeApply func(context.Context, ocispecs.Descriptor) error
BeforeDiff func(context.Context) error
// BeforeSnapshotUpdate runs before each snapshot label update.
BeforeSnapshotUpdate func(context.Context, ctdsnapshots.Info) error
// Builtin, when set before the manager is (re)opened, plays the engine's
// builtin image store for chain imports.
Builtin content.InfoReaderProvider
BeforeAdd func(context.Context, leases.Lease, leases.Resource) error
AfterAdd func(context.Context, leases.Lease, leases.Resource)
AfterCreate func(leases.Lease)
// contains filtered or unexported fields
}
func (*Store) Build ¶
func (s *Store) Build(t testing.TB, parent bkcache.ImmutableRef, name, value string) (bkcache.ImmutableRef, string)
Build writes through an ordinary mutable ref, commits, and keeps an ordinary owner lease. The caller can release that owner independently of returned refs.
func (*Store) WithBuiltin ¶
func (s *Store) WithBuiltin(t testing.TB, provider content.InfoReaderProvider)
WithBuiltin reopens the manager with provider as the builtin image store, keeping the persistent metadata.