summaryrefslogtreecommitdiff
path: root/satp/packet_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'satp/packet_test.go')
-rw-r--r--satp/packet_test.go56
1 files changed, 55 insertions, 1 deletions
diff --git a/satp/packet_test.go b/satp/packet_test.go
index 1284880..2ae7aad 100644
--- a/satp/packet_test.go
+++ b/satp/packet_test.go
@@ -69,7 +69,7 @@ var (
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA8, 0x2A, 0x01}
)
-func TestPlainPacketPayloadType(t *testing.T) {
+func TestPlainPacketHeader(t *testing.T) {
testvectors := []uint16{0, IPv4Type, IPv6Type, EthernetType, 0xAA55, 0xF00F}
for _, vector := range testvectors {
@@ -195,6 +195,60 @@ func TestPlainPacketReadWrite(t *testing.T) {
}
}
+func TestEncryptedPacketHeader(t *testing.T) {
+ testvectors := []struct {
+ SequenceNumber uint32
+ SenderID uint16
+ Mux uint16
+ }{
+ {0, 0, 0},
+ {23, 0, 0},
+ {0, 12, 0},
+ {0, 0, 42},
+ {1, 2, 3},
+ {4294967295, 0, 0},
+ {0, 65535, 0},
+ {0, 0, 65535},
+ {1254234, 2, 23},
+ }
+
+ for _, vector := range testvectors {
+ pkt := NewEncryptedPacket()
+ if vector.SequenceNumber > 0 {
+ pkt.SetSequenceNumber(vector.SequenceNumber)
+ }
+ if vector.SenderID > 0 {
+ pkt.SetSenderID(vector.SenderID)
+ }
+ if vector.Mux > 0 {
+ pkt.SetMux(vector.Mux)
+ }
+ result := pkt.getPacket()
+ expected := []byte{
+ byte(vector.SequenceNumber >> 24), byte(vector.SequenceNumber >> 16),
+ byte(vector.SequenceNumber >> 8), byte(vector.SequenceNumber),
+ byte(vector.SenderID >> 8), byte(vector.SenderID),
+ byte(vector.Mux >> 8), byte(vector.Mux)}
+
+ if bytes.Compare(result, expected) != 0 {
+ t.Fatalf("resulting packet is invalid, is: '%v', should be '%v'", result, expected)
+ }
+
+ sequenceNumber := pkt.GetSequenceNumber()
+ if vector.SequenceNumber != sequenceNumber {
+ t.Fatalf("resulting sequence number is invalid, is: 0x%04X, should be 0x%04X", sequenceNumber, vector.SequenceNumber)
+ }
+ senderID := pkt.GetSenderID()
+ if vector.SenderID != senderID {
+ t.Fatalf("resulting sequence number is invalid, is: 0x%04X, should be 0x%04X", senderID, vector.SenderID)
+ }
+ Mux := pkt.GetMux()
+ if vector.Mux != Mux {
+ t.Fatalf("resulting sequence number is invalid, is: 0x%04X, should be 0x%04X", Mux, vector.Mux)
+ }
+ }
+}
+
// func TestEncryptedPacketMarshal(t *testing.T) {
// testvectors := []struct {
// packet EncryptedPacket