Skip to content

Commit d83dd0e

Browse files
authored
1 parent 289d766 commit d83dd0e

File tree

3 files changed

+40
-29
lines changed

3 files changed

+40
-29
lines changed

client_integration_test.go

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -95,35 +95,39 @@ func TestIntegration_Connect(t *testing.T) {
9595
}
9696

9797
func TestIntegration_Publish(t *testing.T) {
98-
for name, url := range urls {
99-
t.Run(name, func(t *testing.T) {
100-
cli, err := Dial(url, WithTLSConfig(&tls.Config{InsecureSkipVerify: true}))
101-
if err != nil {
102-
t.Fatalf("Unexpected error: '%v'", err)
103-
}
98+
for _, size := range []int{0x100, 0x3FF7, 0x3FF8, 0x7FF7, 0x7FF8, 0x20000} {
99+
t.Run(fmt.Sprintf("%dBytes", size), func(t *testing.T) {
100+
for name, url := range urls {
101+
t.Run(name, func(t *testing.T) {
102+
cli, err := Dial(url, WithTLSConfig(&tls.Config{InsecureSkipVerify: true}))
103+
if err != nil {
104+
t.Fatalf("Unexpected error: '%v'", err)
105+
}
104106

105-
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
106-
defer cancel()
107-
if _, err := cli.Connect(ctx, "Client"); err != nil {
108-
t.Fatalf("Unexpected error: '%v'", err)
109-
}
107+
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
108+
defer cancel()
109+
if _, err := cli.Connect(ctx, fmt.Sprintf("Client%s%x", name, size)); err != nil {
110+
t.Fatalf("Unexpected error: '%v'", err)
111+
}
110112

111-
if err := cli.Publish(ctx, &Message{
112-
Topic: "test",
113-
Payload: []byte("message"),
114-
}); err != nil {
115-
t.Fatalf("Unexpected error: '%v'", err)
116-
}
117-
if err := cli.Publish(ctx, &Message{
118-
Topic: "test",
119-
QoS: QoS1,
120-
Payload: []byte("message"),
121-
}); err != nil {
122-
t.Fatalf("Unexpected error: '%v'", err)
123-
}
113+
if err := cli.Publish(ctx, &Message{
114+
Topic: "test",
115+
Payload: make([]byte, size),
116+
}); err != nil {
117+
t.Fatalf("Unexpected error: '%v'", err)
118+
}
119+
if err := cli.Publish(ctx, &Message{
120+
Topic: "test",
121+
QoS: QoS1,
122+
Payload: make([]byte, size),
123+
}); err != nil {
124+
t.Fatalf("Unexpected error: '%v'", err)
125+
}
124126

125-
if err := cli.Disconnect(ctx); err != nil {
126-
t.Fatalf("Unexpected error: '%v'", err)
127+
if err := cli.Disconnect(ctx); err != nil {
128+
t.Fatalf("Unexpected error: '%v'", err)
129+
}
130+
})
127131
}
128132
})
129133
}

packet.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,18 +93,18 @@ func remainingLength(n int) []byte {
9393
switch {
9494
case n <= 0x7F:
9595
return []byte{byte(n)}
96-
case n <= 0x7FFF:
96+
case n <= 0x3FFF:
9797
return []byte{
9898
byte(n) | 0x80,
9999
byte(n>>7) & 0x7F,
100100
}
101-
case n <= 0x7FFFFF:
101+
case n <= 0x1FFFFF:
102102
return []byte{
103103
byte(n) | 0x80,
104104
byte(n>>7) | 0x80,
105105
byte(n>>14) & 0x7F,
106106
}
107-
case n <= 0x7FFFFFFF:
107+
case n <= 0xFFFFFFF:
108108
return []byte{
109109
byte(n) | 0x80,
110110
byte(n>>7) | 0x80,

packet_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,16 @@ func TestRemainingLength(t *testing.T) {
3333
n int
3434
b []byte
3535
}{
36+
{0, []byte{0x00}},
3637
{64, []byte{0x40}},
38+
{127, []byte{0x7F}},
39+
{128, []byte{0x80, 0x01}},
3740
{321, []byte{0xC1, 0x02}},
41+
{16383, []byte{0xFF, 0x7F}},
42+
{16384, []byte{0x80, 0x80, 0x01}},
3843
{100000, []byte{0xA0, 0x8D, 0x06}},
44+
{2097151, []byte{0xFF, 0xFF, 0x7F}},
45+
{2097152, []byte{0x80, 0x80, 0x80, 0x01}},
3946
{268435455, []byte{0xFF, 0xFF, 0xFF, 0x7F}},
4047
}
4148

0 commit comments

Comments
 (0)