mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-05 15:26:57 +08:00
73 lines
1.3 KiB
Go
73 lines
1.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"net"
|
|
"reflect"
|
|
"sort"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/google/gopacket/routing"
|
|
"github.com/libp2p/go-netroute"
|
|
v1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
func TestRoute(t *testing.T) {
|
|
var r routing.Router
|
|
var err error
|
|
r, err = netroute.New()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
iface, gateway, src, err := r.Route(net.ParseIP("8.8.8.8"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Logf("iface: %s, gateway: %s, src: %s", iface.Name, gateway, src)
|
|
}
|
|
|
|
func TestSort(t *testing.T) {
|
|
list := v1.PodList{
|
|
Items: []v1.Pod{
|
|
{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "a",
|
|
DeletionTimestamp: nil,
|
|
},
|
|
},
|
|
{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "b",
|
|
DeletionTimestamp: &metav1.Time{
|
|
Time: time.Now(),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "c",
|
|
DeletionTimestamp: nil,
|
|
},
|
|
},
|
|
{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "d",
|
|
DeletionTimestamp: nil,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
sort.SliceStable(list.Items, func(i, j int) bool {
|
|
return list.Items[i].DeletionTimestamp != nil
|
|
})
|
|
var names []string
|
|
for _, item := range list.Items {
|
|
names = append(names, item.Name)
|
|
}
|
|
equal := reflect.DeepEqual(names, []string{"b", "a", "c", "d"})
|
|
if !equal {
|
|
t.Fatal()
|
|
}
|
|
}
|