Versions in this module Expand all Collapse all v1 v1.1.0 Jan 30, 2024 Changes in this version + var ErrInvalidIndex = errors.New("invalid database index (id)") + var ErrInvalidState = errors.New("database state is not valid for this operation") + var ErrPoolFull = errors.New("database pool is full") + var ErrTestDBInUse = errors.New("test database is in use, close the connection before dropping") + var ErrTimeout = errors.New("timeout when waiting for ready db") + var ErrUnknownHash = errors.New("no database pool exists for this hash") + type HashPool struct + func NewHashPool(cfg PoolConfig, templateDB db.Database, initDBFunc RecreateDBFunc) *HashPool + func (pool *HashPool) GetTestDatabase(ctx context.Context, timeout time.Duration) (db db.TestDatabase, err error) + func (pool *HashPool) RecreateTestDatabase(ctx context.Context, id int) error + func (pool *HashPool) RemoveAll(ctx context.Context, removeFunc RemoveDBFunc) error + func (pool *HashPool) ReturnTestDatabase(ctx context.Context, id int) error + func (pool *HashPool) Start() + func (pool *HashPool) Stop() + type PoolCollection struct + func NewPoolCollection(cfg PoolConfig) *PoolCollection + func (p *PoolCollection) GetTestDatabase(ctx context.Context, hash string, timeout time.Duration) (db db.TestDatabase, err error) + func (p *PoolCollection) InitHashPool(_ context.Context, templateDB db.Database, initDBFunc RecreateDBFunc) + func (p *PoolCollection) MakeDBName(hash string, id int) string + func (p *PoolCollection) RecreateTestDatabase(ctx context.Context, hash string, id int) error + func (p *PoolCollection) RemoveAll(ctx context.Context, removeFunc RemoveDBFunc) error + func (p *PoolCollection) RemoveAllWithHash(ctx context.Context, hash string, removeFunc RemoveDBFunc) error + func (p *PoolCollection) ReturnTestDatabase(ctx context.Context, hash string, id int) error + func (p *PoolCollection) Start() + func (p *PoolCollection) Stop() + type PoolConfig struct + InitialPoolSize int + MaxParallelTasks int + MaxPoolSize int + TestDBNamePrefix string + TestDatabaseMinimalLifetime time.Duration + TestDatabaseRetryRecreateSleepMax time.Duration + TestDatabaseRetryRecreateSleepMin time.Duration + type RecreateDBFunc func(ctx context.Context, testDB db.TestDatabase, templateName string) error + type RemoveDBFunc func(ctx context.Context, testDB db.TestDatabase) error