func TestAddAndPushOnePeriod(t *testing.T) { a := &TestAggregator{} ra := NewRunningAggregator(a, &AggregatorConfig{ Name: "TestRunningAggregator", Filter: Filter{ NamePass: []string{"*"}, }, Period: time.Millisecond * 500, }) assert.NoError(t, ra.Config.Filter.Compile()) acc := testutil.Accumulator{} shutdown := make(chan struct{}) var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() ra.Run(&acc, shutdown) }() m := ra.MakeMetric( "RITest", map[string]interface{}{"value": int(101)}, map[string]string{}, telegraf.Untyped, time.Now().Add(time.Millisecond*100), ) assert.False(t, ra.Add(m)) for { time.Sleep(time.Millisecond) if acc.NMetrics() > 0 { break } } acc.AssertContainsFields(t, "TestMetric", map[string]interface{}{"sum": int64(101)}) close(shutdown) wg.Wait() }