mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-21 05:43:09 -06:00
Sort keys when serialising log tokens
This commit is contained in:
parent
17afe4dfd0
commit
389520f678
|
|
@ -18,6 +18,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
|
@ -129,15 +130,14 @@ func (t *StreamingToken) EDUPosition() StreamPosition {
|
||||||
return t.Positions[1]
|
return t.Positions[1]
|
||||||
}
|
}
|
||||||
func (t *StreamingToken) String() string {
|
func (t *StreamingToken) String() string {
|
||||||
logStrings := []string{
|
var logStrings []string
|
||||||
t.syncToken.String(),
|
|
||||||
}
|
|
||||||
for name, lp := range t.logs {
|
for name, lp := range t.logs {
|
||||||
logStr := fmt.Sprintf("%s-%d-%d", name, lp.Partition, lp.Offset)
|
logStr := fmt.Sprintf("%s-%d-%d", name, lp.Partition, lp.Offset)
|
||||||
logStrings = append(logStrings, logStr)
|
logStrings = append(logStrings, logStr)
|
||||||
}
|
}
|
||||||
|
sort.Strings(logStrings)
|
||||||
// E.g s11_22_33.dl0-134.ab1-441
|
// E.g s11_22_33.dl0-134.ab1-441
|
||||||
return strings.Join(logStrings, ".")
|
return strings.Join(append([]string{t.syncToken.String()}, logStrings...), ".")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsAfter returns true if ANY position in this token is greater than `other`.
|
// IsAfter returns true if ANY position in this token is greater than `other`.
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ func TestNewSyncTokenWithLogs(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"s4_0.dl-0-123.ab-1-14419482332": &StreamingToken{
|
"s4_0.ab-1-14419482332.dl-0-123": &StreamingToken{
|
||||||
syncToken: syncToken{Type: "s", Positions: []StreamPosition{4, 0}},
|
syncToken: syncToken{Type: "s", Positions: []StreamPosition{4, 0}},
|
||||||
logs: map[string]*LogPosition{
|
logs: map[string]*LogPosition{
|
||||||
"ab": &LogPosition{
|
"ab": &LogPosition{
|
||||||
|
|
@ -46,8 +46,9 @@ func TestNewSyncTokenWithLogs(t *testing.T) {
|
||||||
if !reflect.DeepEqual(got, *want) {
|
if !reflect.DeepEqual(got, *want) {
|
||||||
t.Errorf("%s mismatch: got %v want %v", tok, got, want)
|
t.Errorf("%s mismatch: got %v want %v", tok, got, want)
|
||||||
}
|
}
|
||||||
if got.String() != tok {
|
gotStr := got.String()
|
||||||
t.Errorf("%s reserialisation mismatch: got %s want %s", tok, got.String(), tok)
|
if gotStr != tok {
|
||||||
|
t.Errorf("%s reserialisation mismatch: got %s want %s", tok, gotStr, tok)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue