Fix parsing TopologyTokens

This commit is contained in:
Till Faelligen 2024-01-29 19:42:42 +01:00
parent 87f028db27
commit 27a20ec00d
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E
2 changed files with 17 additions and 2 deletions

View file

@ -286,8 +286,8 @@ func NewTopologyTokenFromString(tok string) (token TopologyToken, err error) {
if i > len(positions) {
break
}
var pos int
pos, err = strconv.Atoi(p)
var pos int64
pos, err = strconv.ParseInt(p, 10, 64)
if err != nil {
return
}

View file

@ -33,12 +33,27 @@ func TestSyncTokens(t *testing.T) {
"s3_1_0_0_0_0_2_0_5": StreamingToken{3, 1, 0, 0, 0, 0, 2, 0, 5}.String(),
"s3_1_2_3_5_0_0_0_6": StreamingToken{3, 1, 2, 3, 5, 0, 0, 0, 6}.String(),
"t3_1": TopologyToken{3, 1}.String(),
"t9223372036854775807_9223372036854775807": TopologyToken{Depth: 9223372036854775807, PDUPosition: 9223372036854775807}.String(),
}
for a, b := range shouldPass {
if a != b {
t.Errorf("expected %q, got %q", a, b)
}
// parse as topology token
if a[0] == 't' {
if _, err := NewTopologyTokenFromString(a); err != nil {
t.Errorf("expected %q to pass, but got %q", a, err)
}
}
// parse as sync token
if a[0] == 's' {
if _, err := NewStreamTokenFromString(a); err != nil {
t.Errorf("expected %q to pass, but got %q", a, err)
}
}
}
shouldFail := []string{