telegraf/plugins/inputs/opensmtpd/opensmtpd_test.go

112 lines
3.3 KiB
Go

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`