1
1
package replication
2
2
3
3
import (
4
+ "fmt"
4
5
"testing"
5
6
7
+ "github.com/stretchr/testify/assert"
6
8
"github.com/stretchr/testify/require"
7
9
)
8
10
@@ -49,6 +51,9 @@ func TestMariadbGTIDEvent(t *testing.T) {
49
51
require .True (t , ev .IsStandalone ())
50
52
require .True (t , ev .IsGroupCommit ())
51
53
require .Equal (t , uint64 (0x1716151413121110 ), ev .CommitID )
54
+ set , err := ev .GTIDNext ()
55
+ require .NoError (t , err )
56
+ require .Equal (t , "70975786-0-578437695752307201" , set .String ())
52
57
}
53
58
54
59
func TestGTIDEventMysql8NewFields (t * testing.T ) {
@@ -59,6 +64,9 @@ func TestGTIDEventMysql8NewFields(t *testing.T) {
59
64
expectTransactionLength uint64
60
65
expectImmediateServerVersion uint32
61
66
expectOriginalServerVersion uint32
67
+ expectGTID string
68
+ expectSequnceNumber int64
69
+ expectLastCommitted int64
62
70
}{
63
71
{
64
72
// master: mysql-5.7, slave: mysql-8.0
@@ -68,6 +76,9 @@ func TestGTIDEventMysql8NewFields(t *testing.T) {
68
76
expectTransactionLength : 965 ,
69
77
expectImmediateServerVersion : 80019 ,
70
78
expectOriginalServerVersion : 0 ,
79
+ expectGTID : "5aa72a7f-44a8-11ea-947f-0242ac190002:258" ,
80
+ expectSequnceNumber : 119 ,
81
+ expectLastCommitted : 118 ,
71
82
},
72
83
{
73
84
// mysql-5.7 only
@@ -77,6 +88,9 @@ func TestGTIDEventMysql8NewFields(t *testing.T) {
77
88
expectTransactionLength : 0 ,
78
89
expectImmediateServerVersion : 0 ,
79
90
expectOriginalServerVersion : 0 ,
91
+ expectGTID : "5aa72a7f-44a8-11ea-947f-0242ac190002:259" ,
92
+ expectSequnceNumber : 54 ,
93
+ expectLastCommitted : 53 ,
80
94
},
81
95
{
82
96
// mysql-8.0 only
@@ -86,10 +100,13 @@ func TestGTIDEventMysql8NewFields(t *testing.T) {
86
100
expectTransactionLength : 963 ,
87
101
expectImmediateServerVersion : 80019 ,
88
102
expectOriginalServerVersion : 80019 ,
103
+ expectGTID : "5ccc1033-44a8-11ea-bd59-0242ac190003:119" ,
104
+ expectSequnceNumber : 121 ,
105
+ expectLastCommitted : 120 ,
89
106
},
90
107
}
91
108
92
- for _ , tc := range testcases {
109
+ for i , tc := range testcases {
93
110
ev := new (GTIDEvent )
94
111
err := ev .Decode (tc .data )
95
112
require .NoError (t , err )
@@ -98,6 +115,11 @@ func TestGTIDEventMysql8NewFields(t *testing.T) {
98
115
require .Equal (t , tc .expectTransactionLength , ev .TransactionLength )
99
116
require .Equal (t , tc .expectImmediateServerVersion , ev .ImmediateServerVersion )
100
117
require .Equal (t , tc .expectOriginalServerVersion , ev .OriginalServerVersion )
118
+ set , err := ev .GTIDNext ()
119
+ require .NoError (t , err )
120
+ assert .Equal (t , tc .expectGTID , set .String (), fmt .Sprintf ("testcase: %d" , i ))
121
+ assert .Equal (t , tc .expectSequnceNumber , ev .SequenceNumber , fmt .Sprintf ("testcase: %d" , i ))
122
+ assert .Equal (t , tc .expectLastCommitted , ev .LastCommitted , fmt .Sprintf ("testcase: %d" , i ))
101
123
}
102
124
}
103
125
0 commit comments