mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
67 lines
2.2 KiB
Go
67 lines
2.2 KiB
Go
// SPDX-FileCopyrightText: 2022 Free Mobile
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
package bmp
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"akvorado/common/helpers"
|
|
|
|
"github.com/osrg/gobgp/v4/pkg/packet/bgp"
|
|
)
|
|
|
|
func TestASPathFlat(t *testing.T) {
|
|
cases := []struct {
|
|
AsPath *bgp.PathAttributeAsPath
|
|
Expected []uint32
|
|
}{
|
|
{
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{}),
|
|
Expected: []uint32{},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_SEQ, []uint16{65402, 65403, 65404}),
|
|
}),
|
|
Expected: []uint32{65402, 65403, 65404},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAs4PathParam(bgp.BGP_ASPATH_ATTR_TYPE_SEQ, []uint32{65402, 65536, 65537}),
|
|
}),
|
|
Expected: []uint32{65402, 65536, 65537},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_SET, []uint16{65402, 65403, 65404}),
|
|
}),
|
|
Expected: []uint32{65402},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_CONFED_SEQ, []uint16{65402, 65403, 65404}),
|
|
}),
|
|
Expected: []uint32{65402, 65403, 65404},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_CONFED_SET, []uint16{65402, 65403, 65404}),
|
|
}),
|
|
Expected: []uint32{65402},
|
|
}, {
|
|
AsPath: bgp.NewPathAttributeAsPath([]bgp.AsPathParamInterface{
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_SEQ, []uint16{65402, 65403, 65404}),
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_SET, []uint16{65405, 65406}),
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_CONFED_SEQ, []uint16{65407, 65408}),
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_CONFED_SET, []uint16{65409, 65410}),
|
|
bgp.NewAsPathParam(bgp.BGP_ASPATH_ATTR_TYPE_SEQ, []uint16{65411}),
|
|
}),
|
|
Expected: []uint32{65402, 65403, 65404, 65405, 65407, 65408, 65409, 65411},
|
|
},
|
|
}
|
|
for _, tc := range cases {
|
|
t.Run(tc.AsPath.String(), func(t *testing.T) {
|
|
got := asPathFlat(tc.AsPath)
|
|
if diff := helpers.Diff(got, tc.Expected); diff != "" {
|
|
t.Fatalf("asPathFlat() (-got, +want):\n%s", diff)
|
|
}
|
|
})
|
|
}
|
|
}
|