From 22cfa10685886d5e041704902a46b9d53fea7464 Mon Sep 17 00:00:00 2001 From: Julien Pivotto Date: Fri, 19 Feb 2021 11:13:32 +0100 Subject: [PATCH] Add hashmod relabeling test with hasmod and a newline Currently hashmod hashes all the labels, even if there is a newline. To ensure it still works in the future, let's add a test. Signed-off-by: Julien Pivotto --- pkg/relabel/relabel_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pkg/relabel/relabel_test.go b/pkg/relabel/relabel_test.go index 21cfeed7c..868699122 100644 --- a/pkg/relabel/relabel_test.go +++ b/pkg/relabel/relabel_test.go @@ -233,6 +233,24 @@ func TestRelabel(t *testing.T) { "d": "976", }), }, + { + input: labels.FromMap(map[string]string{ + "a": "foo\nbar", + }), + relabel: []*Config{ + { + SourceLabels: model.LabelNames{"a"}, + TargetLabel: "b", + Separator: ";", + Action: HashMod, + Modulus: 1000, + }, + }, + output: labels.FromMap(map[string]string{ + "a": "foo\nbar", + "b": "734", + }), + }, { input: labels.FromMap(map[string]string{ "a": "foo", @@ -413,6 +431,22 @@ func TestRelabel(t *testing.T) { } for _, test := range tests { + // Setting default fields, mimicking the behaviour in Prometheus. + for _, cfg := range test.relabel { + if cfg.Action == "" { + cfg.Action = DefaultRelabelConfig.Action + } + if cfg.Separator == "" { + cfg.Separator = DefaultRelabelConfig.Separator + } + if cfg.Regex.original == "" { + cfg.Regex = DefaultRelabelConfig.Regex + } + if cfg.Replacement == "" { + cfg.Replacement = DefaultRelabelConfig.Replacement + } + } + res := Process(test.input, test.relabel...) require.Equal(t, test.output, res) }