From ac253c54c765d6741de2a13f5e1606c12ddd981e Mon Sep 17 00:00:00 2001 From: chantra Date: Fri, 11 Sep 2015 10:24:53 -0700 Subject: [PATCH] Add TestTcRateSpecDeserializeSerialize --- nl/tc_linux_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/nl/tc_linux_test.go b/nl/tc_linux_test.go index a2dfab2..5e93914 100644 --- a/nl/tc_linux_test.go +++ b/nl/tc_linux_test.go @@ -63,3 +63,34 @@ func TestTcActionMsgDeserializeSerialize(t *testing.T) { msg := DeserializeTcActionMsg(orig) testDeserializeSerialize(t, orig, safemsg, msg) } + +func (msg *TcRateSpec) write(b []byte) { + native := NativeEndian() + b[0] = msg.CellLog + b[1] = msg.Linklayer + native.PutUint16(b[2:4], msg.Overhead) + native.PutUint16(b[4:6], uint16(msg.CellAlign)) + native.PutUint16(b[6:8], msg.Mpu) + native.PutUint32(b[8:12], msg.Rate) +} + +func (msg *TcRateSpec) serializeSafe() []byte { + length := SizeofTcRateSpec + b := make([]byte, length) + msg.write(b) + return b +} + +func deserializeTcRateSpecSafe(b []byte) *TcRateSpec { + var msg = TcRateSpec{} + binary.Read(bytes.NewReader(b[0:SizeofTcRateSpec]), NativeEndian(), &msg) + return &msg +} + +func TestTcRateSpecDeserializeSerialize(t *testing.T) { + var orig = make([]byte, SizeofTcRateSpec) + rand.Read(orig) + safemsg := deserializeTcRateSpecSafe(orig) + msg := DeserializeTcRateSpec(orig) + testDeserializeSerialize(t, orig, safemsg, msg) +}