Files
EdgeNode/internal/firewalls/nftables/conn_test.go

93 lines
1.6 KiB
Go
Raw Normal View History

2024-05-17 18:30:33 +08:00
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved.
2022-05-18 21:03:51 +08:00
//go:build linux
// +build linux
package nftables_test
import (
2024-07-27 15:42:50 +08:00
"testing"
2022-05-18 21:03:51 +08:00
"github.com/TeaOSLab/EdgeNode/internal/firewalls/nftables"
executils "github.com/TeaOSLab/EdgeNode/internal/utils/exec"
2022-05-18 21:03:51 +08:00
)
func TestConn_Test(t *testing.T) {
_, err := executils.LookPath("nft")
2022-05-18 21:03:51 +08:00
if err == nil {
t.Log("ok")
return
}
t.Log(err)
}
func TestConn_GetTable_NotFound(t *testing.T) {
2024-03-07 19:31:35 +08:00
conn, err := nftables.NewConn()
if err != nil {
t.Fatal(err)
}
2022-05-18 21:03:51 +08:00
table, err := conn.GetTable("a", nftables.TableFamilyIPv4)
if err != nil {
if err == nftables.ErrTableNotFound {
t.Log("table not found")
} else {
t.Fatal(err)
}
} else {
t.Log("table:", table)
}
}
func TestConn_GetTable(t *testing.T) {
2024-03-07 19:31:35 +08:00
conn, err := nftables.NewConn()
if err != nil {
t.Fatal(err)
}
2022-05-18 21:03:51 +08:00
table, err := conn.GetTable("myFilter", nftables.TableFamilyIPv4)
if err != nil {
if err == nftables.ErrTableNotFound {
t.Log("table not found")
} else {
t.Fatal(err)
}
} else {
t.Log("table:", table)
}
}
func TestConn_AddTable(t *testing.T) {
2024-03-07 19:31:35 +08:00
conn, err := nftables.NewConn()
if err != nil {
t.Fatal(err)
}
2022-05-18 21:03:51 +08:00
{
table, err := conn.AddIPv4Table("test_ipv4")
if err != nil {
t.Fatal(err)
}
t.Log(table.Name())
}
{
table, err := conn.AddIPv6Table("test_ipv6")
if err != nil {
t.Fatal(err)
}
t.Log(table.Name())
}
}
func TestConn_DeleteTable(t *testing.T) {
2024-03-07 19:31:35 +08:00
conn, err := nftables.NewConn()
if err != nil {
t.Fatal(err)
}
err = conn.DeleteTable("test_ipv4", nftables.TableFamilyIPv4)
2022-05-18 21:03:51 +08:00
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}