Skip to content

Commit 602cd40

Browse files
authored
Merge branch 'develop' into dependabot/go_modules/develop/github.com/evanw/esbuild-0.25.12
2 parents 2e6b351 + da0dcaf commit 602cd40

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+2920
-566
lines changed

kafka/apiVersion/apiVersion.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package apiVersion
22

33
import (
4+
"math"
45
"mokapi/kafka"
56
)
67

@@ -16,7 +17,7 @@ func init() {
1617
// https://github.com/a0x8o/kafka/blob/master/clients/src/main/resources/common/message/ApiVersionsResponse.json
1718
// Tagged fields are only supported in the body but
1819
// not in the header
19-
4,
20+
math.MaxInt16,
2021
)
2122
}
2223

kafka/apiVersion/apiVersion_test.go

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package apiVersion_test
22

33
import (
4-
"github.com/stretchr/testify/require"
4+
"bytes"
5+
"encoding/binary"
56
"mokapi/kafka"
67
"mokapi/kafka/apiVersion"
8+
"mokapi/kafka/kafkatest"
79
"testing"
10+
11+
"github.com/stretchr/testify/require"
812
)
913

1014
func TestInit(t *testing.T) {
@@ -19,3 +23,86 @@ func TestNewApiKeyResponse(t *testing.T) {
1923
require.Equal(t, int16(0), res.MinVersion)
2024
require.Equal(t, int16(3), res.MaxVersion)
2125
}
26+
27+
func TestRequest(t *testing.T) {
28+
kafkatest.TestRequest(t, 2, &apiVersion.Request{})
29+
30+
kafkatest.TestRequest(t, 3, &apiVersion.Request{
31+
ClientSwName: "foo",
32+
ClientSwVersion: "1.1",
33+
})
34+
35+
b := kafkatest.WriteRequest(t, 3, 123, "me", &apiVersion.Request{
36+
ClientSwName: "foo",
37+
ClientSwVersion: "1.1",
38+
})
39+
expected := new(bytes.Buffer)
40+
// header
41+
_ = binary.Write(expected, binary.BigEndian, int32(22)) // length
42+
_ = binary.Write(expected, binary.BigEndian, int16(kafka.ApiVersions)) // ApiKey
43+
_ = binary.Write(expected, binary.BigEndian, int16(3)) // ApiVersion
44+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // correlationId
45+
_ = binary.Write(expected, binary.BigEndian, int16(2)) // ClientId length
46+
_ = binary.Write(expected, binary.BigEndian, []byte("me")) // ClientId
47+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
48+
// message
49+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Key length
50+
_ = binary.Write(expected, binary.BigEndian, []byte("foo")) // Key
51+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Key length
52+
_ = binary.Write(expected, binary.BigEndian, []byte("1.1")) // Key
53+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
54+
require.Equal(t, expected.Bytes(), b)
55+
}
56+
57+
func TestResponse(t *testing.T) {
58+
kafkatest.TestResponse(t, 2, &apiVersion.Response{
59+
ErrorCode: 0,
60+
ApiKeys: []apiVersion.ApiKeyResponse{
61+
{
62+
ApiKey: kafka.Produce,
63+
MinVersion: 0,
64+
MaxVersion: 3,
65+
},
66+
},
67+
ThrottleTimeMs: 123,
68+
})
69+
70+
kafkatest.TestResponse(t, 3, &apiVersion.Response{
71+
ErrorCode: 0,
72+
ApiKeys: []apiVersion.ApiKeyResponse{
73+
{
74+
ApiKey: kafka.Produce,
75+
MinVersion: 0,
76+
MaxVersion: 3,
77+
},
78+
},
79+
ThrottleTimeMs: 123,
80+
})
81+
82+
b := kafkatest.WriteResponse(t, 3, 123, &apiVersion.Response{
83+
ErrorCode: 0,
84+
ApiKeys: []apiVersion.ApiKeyResponse{
85+
{
86+
ApiKey: kafka.Produce,
87+
MinVersion: 0,
88+
MaxVersion: 3,
89+
},
90+
},
91+
ThrottleTimeMs: 123,
92+
})
93+
expected := new(bytes.Buffer)
94+
// header
95+
_ = binary.Write(expected, binary.BigEndian, int32(19)) // length
96+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // correlationId
97+
// no tag in header
98+
// message
99+
_ = binary.Write(expected, binary.BigEndian, int16(0)) // ErrorCode
100+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Array length
101+
_ = binary.Write(expected, binary.BigEndian, int16(kafka.Produce)) // ApiKey
102+
_ = binary.Write(expected, binary.BigEndian, int16(0)) // MinVersion
103+
_ = binary.Write(expected, binary.BigEndian, int16(3)) // MaxVersion
104+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
105+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // ThrottleTimeMs
106+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
107+
require.Equal(t, expected.Bytes(), b)
108+
}
Lines changed: 195 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,207 @@
11
package createTopics_test
22

33
import (
4-
"github.com/stretchr/testify/require"
4+
"bytes"
5+
"encoding/binary"
56
"mokapi/kafka"
7+
"mokapi/kafka/createTopics"
8+
"mokapi/kafka/kafkatest"
69
"testing"
10+
11+
"github.com/stretchr/testify/require"
712
)
813

914
func TestInit(t *testing.T) {
1015
reg := kafka.ApiTypes[kafka.CreateTopics]
1116
require.Equal(t, int16(0), reg.MinVersion)
1217
require.Equal(t, int16(7), reg.MaxVersion)
1318
}
19+
20+
func TestRequest(t *testing.T) {
21+
kafkatest.TestRequest(t, 4, &createTopics.Request{
22+
Topics: []createTopics.Topic{
23+
{
24+
Name: "foo",
25+
NumPartitions: 2,
26+
ReplicationFactor: 1,
27+
Assignments: []createTopics.Assignment{
28+
{
29+
Index: 0,
30+
BrokerIds: []int32{0, 1},
31+
},
32+
},
33+
Configs: []createTopics.Config{
34+
{
35+
Name: "foo",
36+
Value: "bar",
37+
},
38+
},
39+
},
40+
},
41+
TimeoutMs: 123,
42+
ValidateOnly: false,
43+
})
44+
45+
kafkatest.TestRequest(t, 5, &createTopics.Request{
46+
Topics: []createTopics.Topic{
47+
{
48+
Name: "foo",
49+
NumPartitions: 2,
50+
ReplicationFactor: 1,
51+
Assignments: []createTopics.Assignment{
52+
{
53+
Index: 0,
54+
BrokerIds: []int32{0, 1},
55+
},
56+
},
57+
Configs: []createTopics.Config{
58+
{
59+
Name: "foo",
60+
Value: "bar",
61+
},
62+
},
63+
},
64+
},
65+
TimeoutMs: 123,
66+
ValidateOnly: false,
67+
})
68+
69+
b := kafkatest.WriteRequest(t, 5, 123, "me", &createTopics.Request{
70+
Topics: []createTopics.Topic{
71+
{
72+
Name: "foo",
73+
NumPartitions: 2,
74+
ReplicationFactor: 1,
75+
Assignments: []createTopics.Assignment{
76+
{
77+
Index: 0,
78+
BrokerIds: []int32{0, 1},
79+
},
80+
},
81+
Configs: []createTopics.Config{
82+
{
83+
Name: "foo",
84+
Value: "bar",
85+
},
86+
},
87+
},
88+
},
89+
TimeoutMs: 123,
90+
ValidateOnly: false,
91+
})
92+
expected := new(bytes.Buffer)
93+
// header
94+
_ = binary.Write(expected, binary.BigEndian, int32(56)) // length
95+
_ = binary.Write(expected, binary.BigEndian, int16(kafka.CreateTopics)) // ApiKey
96+
_ = binary.Write(expected, binary.BigEndian, int16(5)) // ApiVersion
97+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // correlationId
98+
_ = binary.Write(expected, binary.BigEndian, int16(2)) // ClientId length
99+
_ = binary.Write(expected, binary.BigEndian, []byte("me")) // ClientId
100+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
101+
// message
102+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Topics length
103+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Topic name length
104+
_ = binary.Write(expected, binary.BigEndian, []byte("foo")) // Topic name
105+
_ = binary.Write(expected, binary.BigEndian, int32(2)) // NumPartitions
106+
_ = binary.Write(expected, binary.BigEndian, int16(1)) // ReplicationFactor
107+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Assignments length
108+
_ = binary.Write(expected, binary.BigEndian, int32(0)) // Index
109+
_ = binary.Write(expected, binary.BigEndian, int8(3)) // BrokerIds length
110+
_ = binary.Write(expected, binary.BigEndian, int32(0)) // BrokerId 0
111+
_ = binary.Write(expected, binary.BigEndian, int32(1)) // BrokerId 1
112+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
113+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Configs length
114+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Name length
115+
_ = binary.Write(expected, binary.BigEndian, []byte("foo")) // Name
116+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Value length
117+
_ = binary.Write(expected, binary.BigEndian, []byte("bar")) // Value
118+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
119+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // Topics tag buffer
120+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // TimeoutMs
121+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // ValidateOnly
122+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
123+
require.Equal(t, expected.Bytes(), b)
124+
}
125+
126+
func TestResponse(t *testing.T) {
127+
kafkatest.TestResponse(t, 4, &createTopics.Response{
128+
ThrottleTimeMs: 123,
129+
Topics: []createTopics.TopicResponse{
130+
{
131+
Name: "foo",
132+
ErrorCode: 0,
133+
ErrorMessage: "",
134+
},
135+
},
136+
})
137+
138+
kafkatest.TestResponse(t, 5, &createTopics.Response{
139+
ThrottleTimeMs: 123,
140+
Topics: []createTopics.TopicResponse{
141+
{
142+
Name: "foo",
143+
ErrorCode: 0,
144+
ErrorMessage: "",
145+
NumPartitions: 2,
146+
ReplicationFactor: 1,
147+
Configs: []createTopics.ConfigResponse{
148+
{
149+
Name: "foo",
150+
Value: "bar",
151+
ReadOnly: false,
152+
ConfigSource: 0,
153+
IsSensitive: false,
154+
},
155+
},
156+
},
157+
},
158+
})
159+
160+
b := kafkatest.WriteResponse(t, 5, 123, &createTopics.Response{
161+
ThrottleTimeMs: 123,
162+
Topics: []createTopics.TopicResponse{
163+
{
164+
Name: "foo",
165+
ErrorCode: 0,
166+
ErrorMessage: "",
167+
NumPartitions: 2,
168+
ReplicationFactor: 1,
169+
Configs: []createTopics.ConfigResponse{
170+
{
171+
Name: "foo",
172+
Value: "bar",
173+
ReadOnly: false,
174+
ConfigSource: 0,
175+
IsSensitive: false,
176+
},
177+
},
178+
},
179+
},
180+
})
181+
expected := new(bytes.Buffer)
182+
// header
183+
_ = binary.Write(expected, binary.BigEndian, int32(38)) // length
184+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // correlationId
185+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
186+
// message
187+
_ = binary.Write(expected, binary.BigEndian, int32(123)) // ThrottleTimeMs
188+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Topics length
189+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Topic name length
190+
_ = binary.Write(expected, binary.BigEndian, []byte("foo")) // Topic name
191+
_ = binary.Write(expected, binary.BigEndian, int16(0)) // ErrorCode
192+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // ErrorMessage length
193+
_ = binary.Write(expected, binary.BigEndian, int32(2)) // NumPartitions
194+
_ = binary.Write(expected, binary.BigEndian, int16(1)) // ReplicationFactor
195+
_ = binary.Write(expected, binary.BigEndian, int8(2)) // Configs length
196+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Name length
197+
_ = binary.Write(expected, binary.BigEndian, []byte("foo")) // Name
198+
_ = binary.Write(expected, binary.BigEndian, int8(4)) // Value length
199+
_ = binary.Write(expected, binary.BigEndian, []byte("bar")) // Value
200+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // ReadOnly
201+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // ConfigSource
202+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // IsSensitive
203+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // Configs tag buffer
204+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // Topics tag buffer
205+
_ = binary.Write(expected, binary.BigEndian, int8(0)) // tag buffer
206+
require.Equal(t, expected.Bytes(), b)
207+
}

kafka/createTopics/createTopics.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func init() {
1818
}
1919

2020
type Request struct {
21-
Topics []Topic `kafka:""`
21+
Topics []Topic `kafka:"compact=5"`
2222
TimeoutMs int32 `kafka:""`
2323
ValidateOnly bool `kafka:"min=1"`
2424
TagFields map[int64]string `kafka:"type=TAG_BUFFER,min=5"`
@@ -28,14 +28,14 @@ type Topic struct {
2828
Name string `kafka:"compact=5"`
2929
NumPartitions int32 `kafka:""`
3030
ReplicationFactor int16 `kafka:""`
31-
Assignments []Assignment `kafka:""`
32-
Configs []Config `kafka:""`
31+
Assignments []Assignment `kafka:"compact=5"`
32+
Configs []Config `kafka:"compact=5"`
3333
TagFields map[int64]string `kafka:"type=TAG_BUFFER,min=5"`
3434
}
3535

3636
type Assignment struct {
3737
Index int32 `kafka:""`
38-
BrokerIds []int32 `kafka:""`
38+
BrokerIds []int32 `kafka:"compact=5"`
3939
TagFields map[int64]string `kafka:"type=TAG_BUFFER,min=5"`
4040
}
4141

@@ -47,7 +47,7 @@ type Config struct {
4747

4848
type Response struct {
4949
ThrottleTimeMs int32 `kafka:"min=2"`
50-
Topics []TopicResponse `kafka:""`
50+
Topics []TopicResponse `kafka:"compact=5"`
5151
TagFields map[int64]string `kafka:"type=TAG_BUFFER,min=5"`
5252
}
5353

@@ -57,7 +57,7 @@ type TopicResponse struct {
5757
ErrorMessage string `kafka:"min=1,compact=5,nullable"`
5858
NumPartitions int32 `kafka:"min=5"`
5959
ReplicationFactor int16 `kafka:"min=5"`
60-
Configs []ConfigResponse `kafka:"min=5"`
60+
Configs []ConfigResponse `kafka:"min=5,compact=5"`
6161
TagFields map[int64]string `kafka:"type=TAG_BUFFER,min=5"`
6262
}
6363

0 commit comments

Comments
 (0)