package opensmtpd import ( "bytes" "testing" "time" "github.com/influxdata/telegraf/internal" "github.com/influxdata/telegraf/testutil" "github.com/stretchr/testify/assert" ) var TestTimeout = internal.Duration{Duration: time.Second} func SmtpCTL(output string, Timeout internal.Duration, useSudo bool) func(string, internal.Duration, bool) (*bytes.Buffer, error) { return func(string, internal.Duration, bool) (*bytes.Buffer, error) { return bytes.NewBuffer([]byte(output)), nil } } func TestFilterSomeStats(t *testing.T) { acc := &testutil.Accumulator{} v := &Opensmtpd{ run: SmtpCTL(fullOutput, TestTimeout, false), } err := v.Gather(acc) assert.NoError(t, err) assert.True(t, acc.HasMeasurement("opensmtpd")) assert.Equal(t, acc.NMetrics(), uint64(1)) assert.Equal(t, acc.NFields(), 36) acc.AssertContainsFields(t, "opensmtpd", parsedFullOutput) } var parsedFullOutput = map[string]interface{}{ "bounce_envelope": float64(0), "bounce_message": float64(0), "bounce_session": float64(0), "control_session": float64(1), "mda_envelope": float64(0), "mda_pending": float64(0), "mda_running": float64(0), "mda_user": float64(0), "mta_connector": float64(1), "mta_domain": float64(1), "mta_envelope": float64(0), "mta_host": float64(6), "mta_relay": float64(1), "mta_route": float64(1), "mta_session": float64(1), "mta_source": float64(1), "mta_task": float64(0), "mta_task_running": float64(5), "queue_bounce": float64(11495), "queue_evpcache_load_hit": float64(3927539), "queue_evpcache_size": float64(0), "queue_evpcache_update_hit": float64(508), "scheduler_delivery_ok": float64(1922951), "scheduler_delivery_permfail": float64(45967), "scheduler_delivery_tempfail": float64(493), "scheduler_envelope": float64(0), "scheduler_envelope_expired": float64(17), "scheduler_envelope_incoming": float64(0), "scheduler_envelope_inflight": float64(0), "scheduler_ramqueue_envelope": float64(0), "scheduler_ramqueue_message": float64(0), "scheduler_ramqueue_update": float64(0), "smtp_session": float64(0), "smtp_session_inet4": float64(1903412), "smtp_session_local": float64(10827), "uptime": float64(9253995), } var fullOutput = `bounce.envelope=0 bounce.message=0 bounce.session=0 control.session=1 mda.envelope=0 mda.pending=0 mda.running=0 mda.user=0 mta.connector=1 mta.domain=1 mta.envelope=0 mta.host=6 mta.relay=1 mta.route=1 mta.session=1 mta.source=1 mta.task=0 mta.task.running=5 queue.bounce=11495 queue.evpcache.load.hit=3927539 queue.evpcache.size=0 queue.evpcache.update.hit=508 scheduler.delivery.ok=1922951 scheduler.delivery.permfail=45967 scheduler.delivery.tempfail=493 scheduler.envelope=0 scheduler.envelope.expired=17 scheduler.envelope.incoming=0 scheduler.envelope.inflight=0 scheduler.ramqueue.envelope=0 scheduler.ramqueue.message=0 scheduler.ramqueue.update=0 smtp.session=0 smtp.session.inet4=1903412 smtp.session.local=10827 uptime=9253995 uptime.human=107d2h33m15s`