perf(go): avoid mqtt raw hex duplication
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"encoding/hex"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
@@ -193,7 +192,6 @@ func (c *MQTTClient) handleMessage(ctx context.Context, topic string, payload []
|
|||||||
EventTimeMS: receivedAtMS,
|
EventTimeMS: receivedAtMS,
|
||||||
ReceivedAtMS: receivedAtMS,
|
ReceivedAtMS: receivedAtMS,
|
||||||
RawText: string(payload),
|
RawText: string(payload),
|
||||||
RawHex: strings.ToUpper(hex.EncodeToString(payload)),
|
|
||||||
ParseStatus: envelope.ParseBadFrame,
|
ParseStatus: envelope.ParseBadFrame,
|
||||||
ParseError: err.Error(),
|
ParseError: err.Error(),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,12 @@ func TestMQTTClientHandleMessagePublishesOnlyRawByDefault(t *testing.T) {
|
|||||||
if sink.raw[0].Protocol != envelope.ProtocolYutongMQTT || sink.raw[0].VIN != "LTEST000000000001" {
|
if sink.raw[0].Protocol != envelope.ProtocolYutongMQTT || sink.raw[0].VIN != "LTEST000000000001" {
|
||||||
t.Fatalf("unexpected raw envelope: %#v", sink.raw[0])
|
t.Fatalf("unexpected raw envelope: %#v", sink.raw[0])
|
||||||
}
|
}
|
||||||
|
if sink.raw[0].RawText == "" {
|
||||||
|
t.Fatal("mqtt raw envelope should keep text payload")
|
||||||
|
}
|
||||||
|
if sink.raw[0].RawHex != "" {
|
||||||
|
t.Fatalf("mqtt raw envelope should not duplicate text payload as hex: %q", sink.raw[0].RawHex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMQTTClientRecordsMessageMetrics(t *testing.T) {
|
func TestMQTTClientRecordsMessageMetrics(t *testing.T) {
|
||||||
@@ -104,6 +110,12 @@ func TestMQTTClientHandleBadPayloadPublishesOnlyRaw(t *testing.T) {
|
|||||||
if sink.raw[0].ParseStatus != envelope.ParseBadFrame {
|
if sink.raw[0].ParseStatus != envelope.ParseBadFrame {
|
||||||
t.Fatalf("parse status = %q", sink.raw[0].ParseStatus)
|
t.Fatalf("parse status = %q", sink.raw[0].ParseStatus)
|
||||||
}
|
}
|
||||||
|
if sink.raw[0].RawText == "" {
|
||||||
|
t.Fatal("bad mqtt raw envelope should keep text payload")
|
||||||
|
}
|
||||||
|
if sink.raw[0].RawHex != "" {
|
||||||
|
t.Fatalf("bad mqtt raw envelope should not duplicate text payload as hex: %q", sink.raw[0].RawHex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMQTTClientUsesUncancelledMessageContextForReceivedMessage(t *testing.T) {
|
func TestMQTTClientUsesUncancelledMessageContextForReceivedMessage(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user