Skip to content

Commit c56c140

Browse files
committed
Add test unregistered callback is not called
1 parent db62d9e commit c56c140

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

sdk/metric/meter_test.go

+47
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,53 @@ func TestMetersProvideScope(t *testing.T) {
532532
metricdatatest.AssertEqual(t, want, got, metricdatatest.IgnoreTimestamp())
533533
}
534534

535+
func TestUnregisterUnregisters(t *testing.T) {
536+
r := NewManualReader()
537+
mp := NewMeterProvider(WithReader(r))
538+
m := mp.Meter("TestUnregisterUnregisters")
539+
540+
int64Counter, err := m.AsyncInt64().Counter("int64.counter")
541+
require.NoError(t, err)
542+
543+
int64UpDownCounter, err := m.AsyncInt64().UpDownCounter("int64.up_down_counter")
544+
require.NoError(t, err)
545+
546+
int64Gauge, err := m.AsyncInt64().Gauge("int64.gauge")
547+
require.NoError(t, err)
548+
549+
floag64Counter, err := m.AsyncFloat64().Counter("floag64.counter")
550+
require.NoError(t, err)
551+
552+
floag64UpDownCounter, err := m.AsyncFloat64().UpDownCounter("floag64.up_down_counter")
553+
require.NoError(t, err)
554+
555+
floag64Gauge, err := m.AsyncFloat64().Gauge("floag64.gauge")
556+
require.NoError(t, err)
557+
558+
var called bool
559+
reg, err := m.RegisterCallback([]instrument.Asynchronous{
560+
int64Counter,
561+
int64UpDownCounter,
562+
int64Gauge,
563+
floag64Counter,
564+
floag64UpDownCounter,
565+
floag64Gauge,
566+
}, func(context.Context) { called = true })
567+
require.NoError(t, err)
568+
569+
ctx := context.Background()
570+
_, err = r.Collect(ctx)
571+
require.NoError(t, err)
572+
assert.True(t, called, "callback not called for registered callback")
573+
574+
called = false
575+
require.NoError(t, reg.Unregister(), "unregister")
576+
577+
_, err = r.Collect(ctx)
578+
require.NoError(t, err)
579+
assert.False(t, called, "callback called for unregistered callback")
580+
}
581+
535582
func TestRegisterCallbackDropAggregations(t *testing.T) {
536583
aggFn := func(InstrumentKind) aggregation.Aggregation {
537584
return aggregation.Drop{}

0 commit comments

Comments
 (0)