mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
labels: Extra tests and comment for WithoutLabels method. (#8024)
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
This commit is contained in:
parent
71577e45eb
commit
dee6ac274e
|
@ -275,6 +275,7 @@ func (ls Labels) WithoutEmpty() Labels {
|
||||||
if v.Value != "" {
|
if v.Value != "" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
// Do not copy the slice until it's necessary.
|
||||||
els := make(Labels, 0, len(ls)-1)
|
els := make(Labels, 0, len(ls)-1)
|
||||||
for _, v := range ls {
|
for _, v := range ls {
|
||||||
if v.Value != "" {
|
if v.Value != "" {
|
||||||
|
|
|
@ -210,81 +210,83 @@ func TestLabels_HasDuplicateLabelNames(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLabels_WithoutEmpty(t *testing.T) {
|
func TestLabels_WithoutEmpty(t *testing.T) {
|
||||||
tests := []struct {
|
for _, test := range []struct {
|
||||||
input Labels
|
input Labels
|
||||||
expected Labels
|
expected Labels
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
input: Labels{
|
input: Labels{
|
||||||
{
|
{Name: "foo"},
|
||||||
Name: "__name__",
|
{Name: "bar"},
|
||||||
Value: "test",
|
},
|
||||||
},
|
expected: Labels{},
|
||||||
{
|
},
|
||||||
Name: "foo",
|
{
|
||||||
},
|
input: Labels{
|
||||||
{
|
{Name: "foo"},
|
||||||
Name: "hostname",
|
{Name: "bar"},
|
||||||
Value: "localhost",
|
{Name: "baz"},
|
||||||
},
|
},
|
||||||
{
|
expected: Labels{},
|
||||||
Name: "bar",
|
},
|
||||||
},
|
{
|
||||||
{
|
input: Labels{
|
||||||
Name: "job",
|
{Name: "__name__", Value: "test"},
|
||||||
Value: "check",
|
{Name: "hostname", Value: "localhost"},
|
||||||
},
|
{Name: "job", Value: "check"},
|
||||||
},
|
},
|
||||||
expected: Labels{
|
expected: Labels{
|
||||||
{
|
{Name: "__name__", Value: "test"},
|
||||||
Name: "__name__",
|
{Name: "hostname", Value: "localhost"},
|
||||||
Value: "test",
|
{Name: "job", Value: "check"},
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: "hostname",
|
|
||||||
Value: "localhost",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: "job",
|
|
||||||
Value: "check",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
input: Labels{
|
input: Labels{
|
||||||
{
|
{Name: "__name__", Value: "test"},
|
||||||
Name: "__name__",
|
{Name: "hostname", Value: "localhost"},
|
||||||
Value: "test",
|
{Name: "bar"},
|
||||||
},
|
{Name: "job", Value: "check"},
|
||||||
{
|
|
||||||
Name: "hostname",
|
|
||||||
Value: "localhost",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: "job",
|
|
||||||
Value: "check",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
expected: Labels{
|
expected: Labels{
|
||||||
{
|
{Name: "__name__", Value: "test"},
|
||||||
Name: "__name__",
|
{Name: "hostname", Value: "localhost"},
|
||||||
Value: "test",
|
{Name: "job", Value: "check"},
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: "hostname",
|
|
||||||
Value: "localhost",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Name: "job",
|
|
||||||
Value: "check",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
{
|
||||||
|
input: Labels{
|
||||||
for i, test := range tests {
|
{Name: "__name__", Value: "test"},
|
||||||
got := test.input.WithoutEmpty()
|
{Name: "foo"},
|
||||||
testutil.Equals(t, test.expected, got, "unexpected labelset for test case %d", i)
|
{Name: "hostname", Value: "localhost"},
|
||||||
|
{Name: "bar"},
|
||||||
|
{Name: "job", Value: "check"},
|
||||||
|
},
|
||||||
|
expected: Labels{
|
||||||
|
{Name: "__name__", Value: "test"},
|
||||||
|
{Name: "hostname", Value: "localhost"},
|
||||||
|
{Name: "job", Value: "check"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
input: Labels{
|
||||||
|
{Name: "__name__", Value: "test"},
|
||||||
|
{Name: "foo"},
|
||||||
|
{Name: "baz"},
|
||||||
|
{Name: "hostname", Value: "localhost"},
|
||||||
|
{Name: "bar"},
|
||||||
|
{Name: "job", Value: "check"},
|
||||||
|
},
|
||||||
|
expected: Labels{
|
||||||
|
{Name: "__name__", Value: "test"},
|
||||||
|
{Name: "hostname", Value: "localhost"},
|
||||||
|
{Name: "job", Value: "check"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} {
|
||||||
|
t.Run("", func(t *testing.T) {
|
||||||
|
testutil.Equals(t, test.expected, test.input.WithoutEmpty())
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue