Fix mtime reporting in textfile collector, add tests.
This commit is contained in:
parent
704e8f76d8
commit
e13f910427
9 changed files with 186 additions and 11 deletions
57
collector/textfile_test.go
Normal file
57
collector/textfile_test.go
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
package collector
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
func TestParseTextFiles(t *testing.T) {
|
||||
tests := []struct {
|
||||
path string
|
||||
out string
|
||||
}{
|
||||
{
|
||||
path: "fixtures/textfile/no_metric_files",
|
||||
out: "fixtures/textfile/no_metric_files.out",
|
||||
},
|
||||
{
|
||||
path: "fixtures/textfile/two_metric_files",
|
||||
out: "fixtures/textfile/two_metric_files.out",
|
||||
},
|
||||
{
|
||||
path: "fixtures/textfile/nonexistent_path",
|
||||
out: "fixtures/textfile/nonexistent_path.out",
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
c := textFileCollector{
|
||||
path: test.path,
|
||||
}
|
||||
|
||||
mfs := c.parseTextFiles()
|
||||
textMFs := make([]string, 0, len(mfs))
|
||||
for _, mf := range mfs {
|
||||
if mf.GetName() == "node_textfile_mtime" {
|
||||
mf.GetMetric()[0].GetGauge().Value = proto.Float64(1)
|
||||
mf.GetMetric()[1].GetGauge().Value = proto.Float64(2)
|
||||
}
|
||||
textMFs = append(textMFs, proto.MarshalTextString(mf))
|
||||
}
|
||||
sort.Strings(textMFs)
|
||||
got := strings.Join(textMFs, "")
|
||||
|
||||
want, err := ioutil.ReadFile(test.out)
|
||||
if err != nil {
|
||||
t.Fatalf("%d. error reading fixture file %s: %s", i, test.out, err)
|
||||
}
|
||||
|
||||
if string(want) != got {
|
||||
t.Fatalf("%d. want:\n\n%s\n\ngot:\n\n%s", i, string(want), got)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue