Skip to content

Commit

Permalink
Fix integration tests relied on series being sorted in a particular o…
Browse files Browse the repository at this point in the history
…rder.
  • Loading branch information
charleskorn committed Mar 2, 2023
1 parent 1955ef4 commit c29269b
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions integration/querier_tenant_federation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ package integration

import (
"fmt"
"sort"
"strings"
"testing"
"time"
Expand Down Expand Up @@ -154,7 +155,9 @@ func runQuerierTenantFederationTest(t *testing.T, cfg querierTenantFederationCon
result, err := c.Query("series_1", now)
require.NoError(t, err)

assert.Equal(t, mergeResults(tenantIDs, expectedVectors), result.(model.Vector))
// We don't guarantee series will be sorted in any particular order, so we ensure they're sorted consistently here
// to avoid assertion failures.
assert.Equal(t, sortVector(mergeResults(tenantIDs, expectedVectors)), sortVector(result.(model.Vector)))

// query exemplars for all tenants
exemplars, err := c.QueryExemplars("series_1", now.Add(-1*time.Hour), now.Add(1*time.Hour))
Expand Down Expand Up @@ -195,11 +198,17 @@ func mergeResults(tenantIDs []string, resultsPerTenant []model.Vector) model.Vec
var v model.Vector
for pos, tenantID := range tenantIDs {
for _, r := range resultsPerTenant[pos] {
var s model.Sample = *r
s := *r
s.Metric = r.Metric.Clone()
s.Metric[model.LabelName("__tenant_id__")] = model.LabelValue(tenantID)
v = append(v, &s)
}
}
return v
}

func sortVector(vector model.Vector) model.Vector {
sort.Sort(vector)

return vector
}

0 comments on commit c29269b

Please sign in to comment.