From 725385ea05378830d1917b57395ff7d2cdeef9e1 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Wed, 14 Dec 2016 15:47:05 +0100 Subject: [PATCH] Fix compareLabels, add test --- querier.go | 2 +- querier_test.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 querier_test.go diff --git a/querier.go b/querier.go index ab8d95458b..3b049332bb 100644 --- a/querier.go +++ b/querier.go @@ -182,7 +182,7 @@ func compareLabels(a, b Labels) int { } } // If all labels so far were in common, the set with fewer labels comes first. - return len(b) - len(a) + return len(a) - len(b) } func (s *shardSeriesSet) Series() Series { diff --git a/querier_test.go b/querier_test.go new file mode 100644 index 0000000000..f67878e436 --- /dev/null +++ b/querier_test.go @@ -0,0 +1,46 @@ +package tsdb + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestCompareLabels(t *testing.T) { + cases := []struct { + a, b []Label + res int + }{ + { + a: []Label{}, + b: []Label{}, + res: 0, + }, + { + a: []Label{{"a", ""}}, + b: []Label{{"a", ""}, {"b", ""}}, + res: -1, + }, + { + a: []Label{{"a", ""}}, + b: []Label{{"a", ""}}, + res: 0, + }, + { + a: []Label{{"aa", ""}, {"aa", ""}}, + b: []Label{{"aa", ""}, {"ab", ""}}, + res: -1, + }, + { + a: []Label{{"aa", ""}, {"abb", ""}}, + b: []Label{{"aa", ""}, {"ab", ""}}, + res: 1, + }, + } + for _, c := range cases { + // Use constructor to ensure sortedness. + a, b := NewLabels(c.a...), NewLabels(c.b...) + + require.Equal(t, c.res, compareLabels(a, b)) + } +}