Fix data race in plugins/inputs/stackdriver/stackdriver_test.go (#7744)
This commit is contained in:
parent
84ac738168
commit
6d120168fe
|
|
@ -2,6 +2,7 @@ package stackdriver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
|
@ -27,6 +28,7 @@ type MockStackdriverClient struct {
|
||||||
CloseF func() error
|
CloseF func() error
|
||||||
|
|
||||||
calls []*Call
|
calls []*Call
|
||||||
|
sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockStackdriverClient) ListMetricDescriptors(
|
func (m *MockStackdriverClient) ListMetricDescriptors(
|
||||||
|
|
@ -34,7 +36,9 @@ func (m *MockStackdriverClient) ListMetricDescriptors(
|
||||||
req *monitoringpb.ListMetricDescriptorsRequest,
|
req *monitoringpb.ListMetricDescriptorsRequest,
|
||||||
) (<-chan *metricpb.MetricDescriptor, error) {
|
) (<-chan *metricpb.MetricDescriptor, error) {
|
||||||
call := &Call{name: "ListMetricDescriptors", args: []interface{}{ctx, req}}
|
call := &Call{name: "ListMetricDescriptors", args: []interface{}{ctx, req}}
|
||||||
|
m.Lock()
|
||||||
m.calls = append(m.calls, call)
|
m.calls = append(m.calls, call)
|
||||||
|
m.Unlock()
|
||||||
return m.ListMetricDescriptorsF(ctx, req)
|
return m.ListMetricDescriptorsF(ctx, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -43,13 +47,17 @@ func (m *MockStackdriverClient) ListTimeSeries(
|
||||||
req *monitoringpb.ListTimeSeriesRequest,
|
req *monitoringpb.ListTimeSeriesRequest,
|
||||||
) (<-chan *monitoringpb.TimeSeries, error) {
|
) (<-chan *monitoringpb.TimeSeries, error) {
|
||||||
call := &Call{name: "ListTimeSeries", args: []interface{}{ctx, req}}
|
call := &Call{name: "ListTimeSeries", args: []interface{}{ctx, req}}
|
||||||
|
m.Lock()
|
||||||
m.calls = append(m.calls, call)
|
m.calls = append(m.calls, call)
|
||||||
|
m.Unlock()
|
||||||
return m.ListTimeSeriesF(ctx, req)
|
return m.ListTimeSeriesF(ctx, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockStackdriverClient) Close() error {
|
func (m *MockStackdriverClient) Close() error {
|
||||||
call := &Call{name: "Close", args: []interface{}{}}
|
call := &Call{name: "Close", args: []interface{}{}}
|
||||||
|
m.Lock()
|
||||||
m.calls = append(m.calls, call)
|
m.calls = append(m.calls, call)
|
||||||
|
m.Unlock()
|
||||||
return m.CloseF()
|
return m.CloseF()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -752,9 +760,8 @@ func TestGatherAlign(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for listCall, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
listCall := 0
|
|
||||||
var acc testutil.Accumulator
|
var acc testutil.Accumulator
|
||||||
client := &MockStackdriverClient{
|
client := &MockStackdriverClient{
|
||||||
ListMetricDescriptorsF: func(ctx context.Context, req *monitoringpb.ListMetricDescriptorsRequest) (<-chan *metricpb.MetricDescriptor, error) {
|
ListMetricDescriptorsF: func(ctx context.Context, req *monitoringpb.ListMetricDescriptorsRequest) (<-chan *metricpb.MetricDescriptor, error) {
|
||||||
|
|
@ -766,7 +773,6 @@ func TestGatherAlign(t *testing.T) {
|
||||||
ListTimeSeriesF: func(ctx context.Context, req *monitoringpb.ListTimeSeriesRequest) (<-chan *monitoringpb.TimeSeries, error) {
|
ListTimeSeriesF: func(ctx context.Context, req *monitoringpb.ListTimeSeriesRequest) (<-chan *monitoringpb.TimeSeries, error) {
|
||||||
ch := make(chan *monitoringpb.TimeSeries, 1)
|
ch := make(chan *monitoringpb.TimeSeries, 1)
|
||||||
ch <- tt.timeseries[listCall]
|
ch <- tt.timeseries[listCall]
|
||||||
listCall++
|
|
||||||
close(ch)
|
close(ch)
|
||||||
return ch, nil
|
return ch, nil
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue