Documentation ¶
Index ¶
- Constants
- func TestSecret() types.PrefixSecret
- func WithProjectNamespace(c context.Context, proj types.ProjectName, f func(context.Context))
- type ArchivalPublisher
- func (ap *ArchivalPublisher) Clear()
- func (ap *ArchivalPublisher) Close() error
- func (ap *ArchivalPublisher) Hashes() []string
- func (ap *ArchivalPublisher) NewPublishIndex() uint64
- func (ap *ArchivalPublisher) Publish(c context.Context, at *logdog.ArchiveTask) error
- func (ap *ArchivalPublisher) Tasks() []*logdog.ArchiveTask
- type ArchivalStorage
- type BigTableStorage
- type Environment
- func (e *Environment) ClearCoordinatorConfig(c context.Context)
- func (e *Environment) IterateTumbleAll(c context.Context)
- func (e *Environment) JoinGroup(g string)
- func (e *Environment) LeaveAllGroups()
- func (e *Environment) LogIn()
- func (e *Environment) ModProjectConfig(c context.Context, proj types.ProjectName, fn func(*svcconfig.ProjectConfig))
- func (e *Environment) ModServiceConfig(c context.Context, fn func(*svcconfig.Config))
- type GSClient
- func (c GSClient) Attrs(path gs.Path) (*storage.ObjectAttrs, error)
- func (c GSClient) Close() error
- func (c GSClient) Delete(gs.Path) error
- func (c GSClient) Get(path gs.Path) []byte
- func (c GSClient) NewReader(path gs.Path, offset int64, length int64) (io.ReadCloser, error)
- func (c GSClient) NewWriter(gs.Path) (gs.Writer, error)
- func (c GSClient) Put(path gs.Path, d []byte)
- func (c GSClient) Rename(gs.Path, gs.Path) error
- type Services
- func (s *Services) ArchivalPublisher(context.Context) (coordinator.ArchivalPublisher, error)
- func (s *Services) Config(c context.Context) (*config.Config, error)
- func (s *Services) ProjectConfig(c context.Context, project types.ProjectName) (*svcconfig.ProjectConfig, error)
- func (s *Services) StorageForStream(c context.Context, lst *coordinator.LogStreamState) (coordinator.SigningStorage, error)
- type StorageCache
- type StorageCacheStats
- type TestStream
- func (ts *TestStream) DescBytes() []byte
- func (ts *TestStream) Get(c context.Context) (err error)
- func (ts *TestStream) LogEntry(c context.Context, i int) *logpb.LogEntry
- func (ts *TestStream) Put(c context.Context) (err error)
- func (ts *TestStream) Reload(c context.Context)
- func (ts *TestStream) WithProjectNamespace(c context.Context, f func(context.Context))
Constants ¶
const AllAccessProject = "proj-foo"
AllAccessProject is the project name that can be used to get a full-access project (i.e. unauthenticated users have both R and W permissions).
Variables ¶
This section is empty.
Functions ¶
func TestSecret ¶
func TestSecret() types.PrefixSecret
TestSecret returns a testing types.StreamPrefix.
func WithProjectNamespace ¶
WithProjectNamespace runs f in proj's namespace, bypassing authentication checks.
Types ¶
type ArchivalPublisher ¶
type ArchivalPublisher struct { sync.Mutex // Err, if not nil, is the error returned by Publish. Err error // contains filtered or unexported fields }
ArchivalPublisher is a testing implementation of a coordinator.ArchivalPublisher. It records which archival tasks were scheduled and offers accessors to facilitate test assertions.
func (*ArchivalPublisher) Close ¶
func (ap *ArchivalPublisher) Close() error
func (*ArchivalPublisher) Hashes ¶
func (ap *ArchivalPublisher) Hashes() []string
Hashes returns a sorted list of the stream hashes that have had archival tasks submitted.
func (*ArchivalPublisher) NewPublishIndex ¶
func (ap *ArchivalPublisher) NewPublishIndex() uint64
NewPublishIndex implements coordinator.ArchivalPublisher.
func (*ArchivalPublisher) Publish ¶
func (ap *ArchivalPublisher) Publish(c context.Context, at *logdog.ArchiveTask) error
Publish implements coordinator.ArchivalPublisher.
func (*ArchivalPublisher) Tasks ¶
func (ap *ArchivalPublisher) Tasks() []*logdog.ArchiveTask
Tasks returns the dispatched archival tasks in the order in which they were dispatched.
type ArchivalStorage ¶
type ArchivalStorage struct { // Storage is the base (archive) Storage instance. storage.Storage // Opts is the set of archival options that the Storage was instantiated with. Opts archive.Options // contains filtered or unexported fields }
ArchivalStorage is a bound GSClient-backed Storage instance.
func (*ArchivalStorage) Close ¶
func (st *ArchivalStorage) Close()
Close implements storage.Storage.
func (*ArchivalStorage) GetSignedURLs ¶
func (st *ArchivalStorage) GetSignedURLs(c context.Context, req *coordinator.URLSigningRequest) ( *coordinator.URLSigningResponse, error)
GetSignedURLs implements coordinator.SigningStorage.
type BigTableStorage ¶
type BigTableStorage struct { // Testing is the base in-memory BigTable instance that is backing this // Storage. bigtable.Testing // contains filtered or unexported fields }
BigTableStorage is a bound BigTable-backed Storage instance.
func (*BigTableStorage) Close ¶
func (st *BigTableStorage) Close()
Close implements storage.Storage.
func (*BigTableStorage) GetSignedURLs ¶
func (st *BigTableStorage) GetSignedURLs(context.Context, *coordinator.URLSigningRequest) ( *coordinator.URLSigningResponse, error)
GetSignedURLs implements coordinator.Storage.
type Environment ¶
type Environment struct { // Tumble is the Tumble testing instance. Tumble tumble.Testing // Clock is the installed test clock instance. Clock testclock.TestClock // AuthState is the fake authentication state. AuthState authtest.FakeState // Config is the luci-config configuration map that is installed. Config map[config.Set]memory.Files // Services is the set of installed Coordinator services. Services Services // BigTable in-memory testing instance. BigTable bigtable.Testing // GSClient is the test GSClient instance installed (by default) into // Services. GSClient GSClient // ArchivalPublisher is the test ArchivalPublisher instance installed (by // default) into Services. ArchivalPublisher ArchivalPublisher // StorageCache is the default storage cache instance. StorageCache StorageCache }
Environment contains all of the testing facilities that are installed into the Context.
func Install ¶
func Install(useRealIndex bool) (context.Context, *Environment)
Install creates a testing Context and installs common test facilities into it, returning the Environment to which they're bound.
If useRealIndex is true, this will attempt to load the 'index.yaml' file for logdog (but this is loaded from a relative path, so is only really good for the 'coordinator' package). Otherwise this will turn on datastore's automatic indexing functionality.
func (*Environment) ClearCoordinatorConfig ¶
func (e *Environment) ClearCoordinatorConfig(c context.Context)
ClearCoordinatorConfig removes the Coordinator configuration entry, simulating a missing config.
func (*Environment) IterateTumbleAll ¶
func (e *Environment) IterateTumbleAll(c context.Context)
IterateTumbleAll iterates all Tumble instances across all namespaces.
func (*Environment) JoinGroup ¶
func (e *Environment) JoinGroup(g string)
JoinGroup adds the named group the to the list of groups for the current identity.
func (*Environment) LeaveAllGroups ¶
func (e *Environment) LeaveAllGroups()
LeaveAllGroups clears all auth groups that the user is currently a member of.
func (*Environment) LogIn ¶
func (e *Environment) LogIn()
LogIn installs an testing identity into the testing auth state.
func (*Environment) ModProjectConfig ¶
func (e *Environment) ModProjectConfig(c context.Context, proj types.ProjectName, fn func(*svcconfig.ProjectConfig))
ModProjectConfig loads the current configuration for the named project, invokes the callback with its contents, and writes the result back to config.
func (*Environment) ModServiceConfig ¶
func (e *Environment) ModServiceConfig(c context.Context, fn func(*svcconfig.Config))
ModServiceConfig loads the current service configuration, invokes the callback with its contents, and writes the result back to config.
type GSClient ¶
GSClient is a testing Google Storage client implementation.
type Services ¶
type Services struct { // C, if not nil, will be used to get the return values for Config, overriding // local static members. C func() (*config.Config, error) // PC, if not nil, will be used to get the return values for ProjectConfig, // overriding local static members. PC func() (*svcconfig.ProjectConfig, error) // Storage returns an intermediate storage instance for use by this service. // // The caller must close the returned instance if successful. // // By default, this will return a *BigTableStorage instance bound to the // Environment's BigTable instance if the stream is not archived, and an // *ArchivalStorage instance bound to this Environment's GSClient instance // if the stream is archived. ST func(*coordinator.LogStreamState) (coordinator.SigningStorage, error) // ArchivalPublisher returns an ArchivalPublisher instance. AP func() (coordinator.ArchivalPublisher, error) }
Services is a testing stub for a coordinator.Services instance that allows the user to configure the various services that are returned.
func (*Services) ArchivalPublisher ¶
func (s *Services) ArchivalPublisher(context.Context) (coordinator.ArchivalPublisher, error)
ArchivalPublisher implements coordinator.Services.
func (*Services) ProjectConfig ¶
func (s *Services) ProjectConfig(c context.Context, project types.ProjectName) (*svcconfig.ProjectConfig, error)
ProjectConfig implements coordinator.Services.
func (*Services) StorageForStream ¶
func (s *Services) StorageForStream(c context.Context, lst *coordinator.LogStreamState) (coordinator.SigningStorage, error)
StorageForStream implements coordinator.Services.
type StorageCache ¶
StorageCache wraps the default storage cache instance, adding tracking information that is useful for testing.
func (*StorageCache) Clear ¶
func (sc *StorageCache) Clear()
Clear clears the stats for this cache instance.
func (*StorageCache) Stats ¶
func (sc *StorageCache) Stats() StorageCacheStats
Stats returns the stats for this cache instance.
type StorageCacheStats ¶
StorageCacheStats expose stats for a StorageCache instance.
type TestStream ¶
type TestStream struct { // Project is the project name for this stream. Project types.ProjectName // Path is the path of this stream. Path types.StreamPath // Desc is the log stream descriptor. Desc *logpb.LogStreamDescriptor // Prefix is the Coordinator LogPrefix entity. Prefix *coordinator.LogPrefix // Prefix is the Coordinator LogStreamState entity. State *coordinator.LogStreamState // Prefix is the Coordinator LogStream entity. Stream *coordinator.LogStream }
TestStream returns a testing stream.
func MakeStream ¶
func MakeStream(c context.Context, project types.ProjectName, path types.StreamPath) *TestStream
MakeStream builds a new TestStream with the supplied parameters.
func (*TestStream) DescBytes ¶
func (ts *TestStream) DescBytes() []byte
DescBytes returns the marshalled descriptor bytes.
func (*TestStream) Get ¶
func (ts *TestStream) Get(c context.Context) (err error)
Get reloads all of the entities for this TestStream.
func (*TestStream) LogEntry ¶
LogEntry generates a generic testing log entry for this stream with the specific log stream index.
func (*TestStream) Put ¶
func (ts *TestStream) Put(c context.Context) (err error)
Put adds all of the entities for this TestStream to the datastore.
func (*TestStream) Reload ¶
func (ts *TestStream) Reload(c context.Context)
Reload loads derived fields from their base fields.
func (*TestStream) WithProjectNamespace ¶
func (ts *TestStream) WithProjectNamespace(c context.Context, f func(context.Context))
WithProjectNamespace runs f in proj's namespace, bypassing authentication checks.