Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/prometheus/exporter/process/process_test.go
4095 views
1
package process
2
3
import (
4
"testing"
5
6
"github.com/grafana/agent/pkg/river"
7
"github.com/ncabatoff/process-exporter/config"
8
"github.com/stretchr/testify/require"
9
)
10
11
func TestRiverConfigUnmarshal(t *testing.T) {
12
var exampleRiverConfig = `
13
matcher {
14
name = "flow"
15
comm = ["grafana-agent"]
16
cmdline = ["*run*"]
17
}
18
track_children = false
19
track_threads = false
20
gather_smaps = true
21
recheck_on_scrape = true
22
`
23
24
var args Arguments
25
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
26
require.NoError(t, err)
27
28
require.False(t, args.Children)
29
require.False(t, args.Threads)
30
require.True(t, args.SMaps)
31
require.True(t, args.Recheck)
32
33
expected := []MatcherGroup{
34
{
35
Name: "flow",
36
CommRules: []string{"grafana-agent"},
37
CmdlineRules: []string{"*run*"},
38
},
39
}
40
require.Equal(t, expected, args.ProcessExporter)
41
}
42
43
func TestRiverConfigConvert(t *testing.T) {
44
var exampleRiverConfig = `
45
matcher {
46
name = "static"
47
comm = ["grafana-agent"]
48
cmdline = ["*config.file*"]
49
}
50
track_children = true
51
track_threads = true
52
gather_smaps = false
53
recheck_on_scrape = false
54
`
55
56
var args Arguments
57
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
58
require.NoError(t, err)
59
60
require.True(t, args.Children)
61
require.True(t, args.Threads)
62
require.False(t, args.SMaps)
63
require.False(t, args.Recheck)
64
65
expected := []MatcherGroup{
66
{
67
Name: "static",
68
CommRules: []string{"grafana-agent"},
69
CmdlineRules: []string{"*config.file*"},
70
},
71
}
72
require.Equal(t, expected, args.ProcessExporter)
73
74
c := args.Convert()
75
require.True(t, c.Children)
76
require.True(t, c.Threads)
77
require.False(t, c.SMaps)
78
require.False(t, c.Recheck)
79
80
e := config.MatcherRules{
81
{
82
Name: "static",
83
CommRules: []string{"grafana-agent"},
84
CmdlineRules: []string{"*config.file*"},
85
},
86
}
87
require.Equal(t, e, c.ProcessExporter)
88
}
89
90