Documentation
¶
Overview ¶
Package testutil provides testing utilities for pgwatch tests.
This package contains mock implementations, test setup helpers, and constants used across test files. It should only be imported by test files (*_test.go) and will not be included in production binaries.
The package includes:
- Mock gRPC receivers for testing sink implementations
- PostgreSQL container setup for integration tests
- gRPC server setup with TLS support for testing
- Test certificates and keys for TLS testing
Index ¶
- Constants
- Variables
- func AuthInterceptor(ctx context.Context, req any, _ *grpc.UnaryServerInfo, ...) (any, error)
- func LoadServerTLSCredentials() (credentials.TransportCredentials, error)
- func SetupEtcdContainer() (*etcd.EtcdContainer, func(), error)
- func SetupPostgresContainer() (*postgres.PostgresContainer, func(), error)
- func SetupPostgresContainerWithConfig(configPath string) (*postgres.PostgresContainer, func(), error)
- func SetupPostgresContainerWithInitScripts(scripts ...string) (*postgres.PostgresContainer, func(), error)
- func SetupRPCServers() (func(), error)
- type MockMetricsReaderWriter
- func (m *MockMetricsReaderWriter) CreateMetric(name string, metric metrics.Metric) error
- func (m *MockMetricsReaderWriter) CreatePreset(name string, preset metrics.Preset) error
- func (m *MockMetricsReaderWriter) DeleteMetric(name string) error
- func (m *MockMetricsReaderWriter) DeletePreset(name string) error
- func (m *MockMetricsReaderWriter) GetMetrics() (*metrics.Metrics, error)
- func (m *MockMetricsReaderWriter) UpdateMetric(name string, metric metrics.Metric) error
- func (m *MockMetricsReaderWriter) UpdatePreset(name string, preset metrics.Preset) error
- func (m *MockMetricsReaderWriter) WriteMetrics(metricDefs *metrics.Metrics) error
- type MockSourcesReaderWriter
- func (m *MockSourcesReaderWriter) CreateSource(md sources.Source) error
- func (m *MockSourcesReaderWriter) DeleteSource(name string) error
- func (m *MockSourcesReaderWriter) GetSources() (sources.Sources, error)
- func (m *MockSourcesReaderWriter) UpdateSource(md sources.Source) error
- func (m *MockSourcesReaderWriter) WriteSources(srcs sources.Sources) error
- type Receiver
- func (receiver *Receiver) DefineMetrics(_ context.Context, metricsStruct *structpb.Struct) (*pb.Reply, error)
- func (receiver *Receiver) SyncMetric(_ context.Context, syncReq *pb.SyncReq) (*pb.Reply, error)
- func (receiver *Receiver) UpdateMeasurements(_ context.Context, msg *pb.MeasurementEnvelope) (*pb.Reply, error)
Constants ¶
View Source
const EtcdImage = "gcr.io/etcd-development/etcd:" + EtcdVersion
View Source
const EtcdVersion = "v3.5.14"
View Source
const MockDatabase = "mydatabase"
View Source
const PlainConnStr = "grpc://localhost:6060"
View Source
const PlainServerAddress = "localhost:6060"
View Source
const PostgresImage = "docker.io/postgres:18-alpine"
View Source
const TLSServerAddress = "localhost:5050"
Variables ¶
View Source
var CA = `` /* 1187-byte string literal not displayed */
View Source
var CAFile = "ca.crt"
View Source
var Cert = []byte(`-----BEGIN CERTIFICATE-----
MIIDZTCCAk2gAwIBAgIQeTQ+4M7xwydf7MvrDnDdsTANBgkqhkiG9w0BAQsFADAS
MRAwDgYDVQQDDAdwZ3dhdGNoMB4XDTI1MDYxMTA1MjUxOFoXDTI3MDkxNDA1MjUx
OFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA69Ja9K4ZHoIdBK+34YE1+0a/sB7YKZJb3+gYFahvszS37Oa6h/0+
d9TCY58bMpPQSQQdvhG/s1H6Yc4BWTfH/ssRmDhKciMmdfMj/lr8TytglIUPPSzb
PKy2t9idpk30PwiV1UlijjlFZxoxcO3Aia8mmrDJzkoHsQL96PhDT25YRinnflg8
vVthasVqGIHNJIXORyz5lgkBW3NeeZPEUSxbvmo63AB1lFJZMz4xlpdN/LVsEOwg
FrrYzb4mpGkAcTenkOfU4W7m7bxpsusW2JDm2O8bsx+v3cazOqJpCLMHP3Vqnzcl
loYmeQauBep6H0wspid0YzMVza75pDx7rQIDAQABo4G0MIGxMAkGA1UdEwQCMAAw
HQYDVR0OBBYEFFcDjPaZMelQIueauIRfo4L4wMehME0GA1UdIwRGMESAFChibOzl
yDXdli+l9pnh/dHiDaCUoRakFDASMRAwDgYDVQQDDAdwZ3dhdGNoghR4Q1CVAVUf
mHsezMUkstaj4oJDBDATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAw
FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCM6tYNxoP2
Gbp3aAPjoA3+U1gWHPHXOOgyhaQw4jJ7xK1MUlrFgSG6cJgO7IRSCIZp7GDZmIjo
+PqWRgMNK2pFCUCqjrAV6NwMjApLzDdSza9xKb3nWXMKnV6j3tNUFUCS68CHAM7Q
E1iuepjIy2VReFfjJoPuhp9OQBWobTo3H9F74Sj+Guu0lDcHWbwn5Y92pnKk0vOh
v1AJ6vwdMpd6DAPlwmY3OcZI2FGYyoPP2CnzHIGP5RoVFp1zkJzoFvnOHnsRMByz
HpGKqYFQVJSAOMCtL2OMiP8MxtiCsdz6j/e3/VOUQuYoM6fXFhZO64xekZdlh/ZR
glsaMXQPWvHX
-----END CERTIFICATE-----`)
View Source
var PrivateKey = []byte(`-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDr0lr0rhkegh0E
r7fhgTX7Rr+wHtgpklvf6BgVqG+zNLfs5rqH/T531MJjnxsyk9BJBB2+Eb+zUfph
zgFZN8f+yxGYOEpyIyZ18yP+WvxPK2CUhQ89LNs8rLa32J2mTfQ/CJXVSWKOOUVn
GjFw7cCJryaasMnOSgexAv3o+ENPblhGKed+WDy9W2FqxWoYgc0khc5HLPmWCQFb
c155k8RRLFu+ajrcAHWUUlkzPjGWl038tWwQ7CAWutjNviakaQBxN6eQ59Thbubt
vGmy6xbYkObY7xuzH6/dxrM6omkIswc/dWqfNyWWhiZ5Bq4F6nofTCymJ3RjMxXN
rvmkPHutAgMBAAECggEAAc8djQJ35VzEqbhKXhO+bQTMLCb0bA84HrXaV3IxFywY
nBviAvCNpeAvNJHwJLlvD9xU+RQMRy0iEVWB+6P6qAj5Q9Rst8buwNliZY1foaDY
zxLdPNAnB2ZgyXTDMtcmwEQJ2DbFp4cnceTIy8+7GiNKlcW06pz1RaWa+opLA+U2
STIxvTEAvqsyE/0KHbeEltwZxeZ83BsX8vhpyrCVvniFJnIMvyYG7iTzLWuTK98Z
R3Baqim8CdWbh2W0OOfphAVlTjG6c0r6FqJIqsds9wf2FfuhgUcNQUXke+uuWbPQ
36RsytymUgqye3DkxrC4dEi27S3cjRh5wK53gqET+QKBgQD8zM5wiindvDRSx+66
ppbl6RJQcL7uv1os9TeNvfqwnhC75y2k4+2s8kiG2ik7aJiRg4dkj3rVJ4S6wQ67
sjRVo5z68J1twP6PqvpJyx/G5Fmy8HPJUmy9FM1AdnYCWGX3bh3qNTkxEVn78yFZ
zfn9CczDAmGErAXPRRDNQQy8ZQKBgQDuzofs5EXTpqw25XveCJKHT3fAis7pkNGu
jwopiR9peKuJ9nNarHH2wWpHRn6zgHmhmAu7oEzo4OEmk4Elo5ffqqRPZZaU8aEo
Ow7cRvedoP/EjJaR8m2uQnh9bWXuEVibfKmkrPswYYUCWmwoALFmzd6Gl0dIdyGk
JXeA/jFZqQKBgQDhFbn5mgsM0rYDvuBgcFOLAaq81KYsDVRNE0kTe0PqXdKoe324
gvjsNA0/hJ+Rtd+iMGosr1O+1iDn510m4dSXK8Zp6DNDtcLySFnxulngzRDQsidl
6W3ILO1TqCYKkIq5c+JO1nTFq51jJ2dafntHQaJ/P290oXXKxsPe/TxJwQKBgD6g
dS8f8lv+Mt22sxRYhSztH0ekX30LWKIBqzWXW2CKn9nvgvL9lGmU8a09hI7Im51Q
RYtwD5tnFkTKnCzlyTeEBdE4oBPxhkUJr+z+w4NYLJs8D2S5AiCYGAc0wG19qRIl
0Et6femDOaGTWxfmjp+aT8hWNgCAFZd5p+xxPTn5AoGBAIeUbCRTe0KcVaKw/Lcj
KHjTih9x9d3f2EbnYbziBZz6fZfWdDIBfA6CbIHil21hNvjDm9Yci5b6FgtUzScb
j3vPa99sMGc2xie07Cd7LTvZeWIVXeW1Dxzex89CqoJzmONrco1ZKQ+xXbPoZCBj
VwAI/SWm7NlxgF6Sr5CIo2KR
-----END PRIVATE KEY-----`)
View Source
var TLSConnStr = fmt.Sprintf("grpc://localhost:5050?sslrootca=%s", CAFile)
View Source
var TestContext = log.WithLogger(context.Background(), log.NewNoopLogger())
Functions ¶
func AuthInterceptor ¶
func AuthInterceptor(ctx context.Context, req any, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error)
func LoadServerTLSCredentials ¶
func LoadServerTLSCredentials() (credentials.TransportCredentials, error)
func SetupEtcdContainer ¶
func SetupEtcdContainer() (*etcd.EtcdContainer, func(), error)
func SetupPostgresContainer ¶
func SetupPostgresContainer() (*postgres.PostgresContainer, func(), error)
func SetupPostgresContainerWithConfig ¶
func SetupPostgresContainerWithConfig(configPath string) (*postgres.PostgresContainer, func(), error)
Creates a PostgreSQL container with CSV logging enabled. This is useful for testing log parsing functionality with server_log_event_counts metric.
func SetupPostgresContainerWithInitScripts ¶
func SetupPostgresContainerWithInitScripts(scripts ...string) (*postgres.PostgresContainer, func(), error)
func SetupRPCServers ¶
func SetupRPCServers() (func(), error)
Types ¶
type MockMetricsReaderWriter ¶
type MockMetricsReaderWriter struct {
GetMetricsFunc func() (*metrics.Metrics, error)
UpdateMetricFunc func(name string, m metrics.Metric) error
CreateMetricFunc func(name string, m metrics.Metric) error
DeleteMetricFunc func(name string) error
DeletePresetFunc func(name string) error
UpdatePresetFunc func(name string, preset metrics.Preset) error
CreatePresetFunc func(name string, preset metrics.Preset) error
WriteMetricsFunc func(metricDefs *metrics.Metrics) error
}
MockMetricsReaderWriter implements MetricsReaderWriter interface
func (*MockMetricsReaderWriter) CreateMetric ¶
func (m *MockMetricsReaderWriter) CreateMetric(name string, metric metrics.Metric) error
func (*MockMetricsReaderWriter) CreatePreset ¶
func (m *MockMetricsReaderWriter) CreatePreset(name string, preset metrics.Preset) error
func (*MockMetricsReaderWriter) DeleteMetric ¶
func (m *MockMetricsReaderWriter) DeleteMetric(name string) error
func (*MockMetricsReaderWriter) DeletePreset ¶
func (m *MockMetricsReaderWriter) DeletePreset(name string) error
func (*MockMetricsReaderWriter) GetMetrics ¶
func (m *MockMetricsReaderWriter) GetMetrics() (*metrics.Metrics, error)
func (*MockMetricsReaderWriter) UpdateMetric ¶
func (m *MockMetricsReaderWriter) UpdateMetric(name string, metric metrics.Metric) error
func (*MockMetricsReaderWriter) UpdatePreset ¶
func (m *MockMetricsReaderWriter) UpdatePreset(name string, preset metrics.Preset) error
func (*MockMetricsReaderWriter) WriteMetrics ¶
func (m *MockMetricsReaderWriter) WriteMetrics(metricDefs *metrics.Metrics) error
type MockSourcesReaderWriter ¶
type MockSourcesReaderWriter struct {
GetSourcesFunc func() (sources.Sources, error)
UpdateSourceFunc func(md sources.Source) error
CreateSourceFunc func(md sources.Source) error
DeleteSourceFunc func(name string) error
WriteSourcesFunc func(sources.Sources) error
}
MockSourcesReaderWriter implements SourcesReaderWriter interface
func (*MockSourcesReaderWriter) CreateSource ¶
func (m *MockSourcesReaderWriter) CreateSource(md sources.Source) error
func (*MockSourcesReaderWriter) DeleteSource ¶
func (m *MockSourcesReaderWriter) DeleteSource(name string) error
func (*MockSourcesReaderWriter) GetSources ¶
func (m *MockSourcesReaderWriter) GetSources() (sources.Sources, error)
func (*MockSourcesReaderWriter) UpdateSource ¶
func (m *MockSourcesReaderWriter) UpdateSource(md sources.Source) error
func (*MockSourcesReaderWriter) WriteSources ¶
func (m *MockSourcesReaderWriter) WriteSources(srcs sources.Sources) error
type Receiver ¶
type Receiver struct {
pb.UnimplementedReceiverServer
}
Receiver implements the ReceiverServer interface for testing purposes
func (*Receiver) DefineMetrics ¶
func (*Receiver) SyncMetric ¶
func (*Receiver) UpdateMeasurements ¶
Click to show internal directories.
Click to hide internal directories.