labels: Extra tests and comment for WithoutLabels method. (#8024)

Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
This commit is contained in:
Bartlomiej Plotka 2020-10-13 09:57:53 +02:00 committed by GitHub
parent 71577e45eb
commit dee6ac274e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 60 deletions

View file

@ -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 != "" {

View file

@ -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())
})
} }
} }