1
0
mirror of https://gitee.com/willfree/mlsr.git synced 2026-06-18 14:06:06 +08:00
Files
mlsr/route/NextHop_test.go
2022-09-11 19:31:03 +08:00

97 lines
2.1 KiB
Go

// Package route
// @Author: Wang Feng
// @Description:
// @Version: 0.1.0
// @Date: 2022/6/16 16:52
// @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
//
package route
import (
"fmt"
"minlib/encoding"
"testing"
)
//
// TestNewNextHop
// @Description: 测试构造
// @param t
//
func TestNewNextHop(t *testing.T) {
nexthop, err := NewNextHop("/test", 543)
if err == nil {
fmt.Println(nexthop.IsHyperbolic)
fmt.Println(nexthop.RouteCost.Cost())
fmt.Println(nexthop.LogicFaceUri())
} else {
fmt.Println("测试NewNextHop报错,", err.Error())
}
}
//
// TestNextHop_WireEncode
// @Description: 测试编码
// @param t
//
func TestNextHop_WireEncode(t *testing.T) {
// 构造
nexthop, err := NewNextHop("/test", 543)
if err != nil {
fmt.Println("NewNextHop报错,", err.Error())
return
}
// 编码
encoder := encoding.Encoder{}
err = encoder.EncoderReset(encoding.MaxPacketSize, 0)
if err != nil {
fmt.Println("NextHop编码报错,", err.Error())
return
}
length, err := nexthop.WireEncode(&encoder)
if err != nil {
t.Fatal("NextHop编码失败", err.Error())
}
// 获取编码
buf, err := encoder.GetBuffer()
if err != nil {
t.Fatal("NextHop获取buffer结果失败", err.Error())
}
// 打印编码结果。如果可以正确解码,则说明编码成功
fmt.Println(length)
for i := 0; i < len(buf); i++ {
fmt.Print(buf[i], ", ")
}
fmt.Println()
}
//
// TestNextHop_WireDecode
// @Description: 测试解码
// @param t
//
func TestNextHop_WireDecode(t *testing.T) {
// 由数组构建block
var buf = [19]byte{241, 1, 187, 15, 241, 1, 186, 2, 2, 31, 241, 1, 185, 5, 47, 116, 101, 115, 116}
block, err := encoding.CreateBlockByBuffer(buf[:], true)
if err != nil {
fmt.Println("创建block失败 ", err.Error())
return
}
// 由Block构建结构体,并打印变量
base := new(NextHop)
err = base.WireDecode(block)
if err != nil {
fmt.Println("线性解码失败 ", err.Error())
return
}
fmt.Println(base.IsHyperbolic)
fmt.Println(base.RouteCost.Cost())
fmt.Println(base.LogicFaceUri())
}