139 lines
2.7 KiB
Go
139 lines
2.7 KiB
Go
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
//go:build plus
|
|
|
|
package nodes
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
|
|
"github.com/TeaOSLab/EdgeDNS/internal/dbs"
|
|
"github.com/TeaOSLab/EdgeDNS/internal/events"
|
|
"github.com/TeaOSLab/EdgeDNS/internal/models"
|
|
"github.com/iwind/TeaGo/Tea"
|
|
_ "github.com/iwind/TeaGo/bootstrap"
|
|
"github.com/iwind/TeaGo/logs"
|
|
"testing"
|
|
)
|
|
|
|
func TestRouteManager_Loop(t *testing.T) {
|
|
var db = dbs.NewDB(Tea.Root + "/data/data.db")
|
|
err := db.Init()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var manager = NewRouteManager(db)
|
|
for i := 0; i < 10; i++ {
|
|
_, err := manager.Loop()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
logs.PrintAsJSON(manager.allRouteMap, t)
|
|
}
|
|
|
|
func TestRouteManager_Load(t *testing.T) {
|
|
var db = dbs.NewDB(Tea.Root + "/data/data.db")
|
|
err := db.Init()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var manager = NewRouteManager(db)
|
|
err = manager.Load()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
logs.PrintAsJSON(manager.allRouteMap, t)
|
|
t.Log("version:", manager.version)
|
|
}
|
|
|
|
func TestRouteManager_AddRoute(t *testing.T) {
|
|
var manager = NewRouteManager(nil)
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 1,
|
|
UserId: 0,
|
|
Priority: 0,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 2,
|
|
UserId: 0,
|
|
Priority: 1,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 3,
|
|
UserId: 0,
|
|
Priority: 2,
|
|
Order: 1,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 4,
|
|
UserId: 0,
|
|
Priority: 2,
|
|
Order: 1,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 4,
|
|
UserId: 0,
|
|
Priority: 2,
|
|
Order: 1,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 4,
|
|
UserId: 1,
|
|
Priority: 2,
|
|
Order: 1,
|
|
})
|
|
manager.addRoute(&models.NSRoute{
|
|
Id: 5,
|
|
UserId: 1,
|
|
Priority: 2,
|
|
Order: 1,
|
|
})
|
|
logs.PrintAsJSON(manager.allRouteMap, t)
|
|
logs.PrintAsJSON(manager.userRouteMap, t)
|
|
}
|
|
|
|
func TestRouteManager_FindRouteCodes(t *testing.T) {
|
|
events.Notify(events.EventLoaded)
|
|
|
|
var manager = NewRouteManager(nil)
|
|
manager.loadDefaultRoutes()
|
|
{
|
|
var r = &models.NSRoute{
|
|
Id: 1,
|
|
Ranges: []dnsconfigs.NSRouteRangeInterface{
|
|
&dnsconfigs.NSRouteRangeIPRange{
|
|
IPFrom: "192.168.1.1",
|
|
IPTo: "192.168.1.200",
|
|
},
|
|
&dnsconfigs.NSRouteRangeIPRange{
|
|
IPFrom: "192.168.1.200",
|
|
IPTo: "192.168.1.255",
|
|
},
|
|
&dnsconfigs.NSRouteRangeIPRange{
|
|
IPFrom: "127.0.0.1",
|
|
IPTo: "127.0.0.1",
|
|
},
|
|
},
|
|
}
|
|
for _, rr := range r.Ranges {
|
|
err := rr.Init()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
manager.addRoute(r)
|
|
}
|
|
for _, ip := range []string{
|
|
"192.168.1.100",
|
|
"192.168.1.201",
|
|
"192.168.2.1",
|
|
"127.0.0.1",
|
|
"111.197.174.111",
|
|
"202.109.116.116",
|
|
"8.8.8.8",
|
|
} {
|
|
t.Log(ip+": ", manager.FindRouteCodes(ip, 0))
|
|
}
|
|
}
|