platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package app
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestParseTransportConntrackLockLine(t *testing.T) {
|
||||
line := "tcp 6 431999 ESTABLISHED src=10.0.0.2 dst=10.1.0.11 sport=12345 dport=443 src=10.1.0.11 dst=10.0.0.2 sport=443 dport=12345 [ASSURED] mark=0x120 use=1"
|
||||
dst, mark, proto, ok := parseTransportConntrackLockLine(line)
|
||||
if !ok {
|
||||
t.Fatalf("expected line to parse")
|
||||
}
|
||||
if dst.String() != "10.1.0.11" {
|
||||
t.Fatalf("unexpected dst: %s", dst.String())
|
||||
}
|
||||
if mark != 0x120 {
|
||||
t.Fatalf("unexpected mark: %#x", mark)
|
||||
}
|
||||
if proto != "tcp" {
|
||||
t.Fatalf("unexpected proto: %s", proto)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseTransportOwnerLocksFromConntrack(t *testing.T) {
|
||||
raw := "" +
|
||||
"tcp 6 431999 ESTABLISHED src=10.0.0.2 dst=10.1.0.11 sport=1 dport=2 mark=0x120 use=1\n" +
|
||||
"udp 17 60 src=10.0.0.2 dst=10.1.0.12 sport=1 dport=2 mark=288 use=1\n" +
|
||||
"udp 17 60 src=10.0.0.2 dst=10.9.0.12 sport=1 dport=2 mark=0x222 use=1\n"
|
||||
markOwner := map[uint32]transportPolicyMarkOwner{
|
||||
0x120: {
|
||||
ClientID: "c1",
|
||||
ClientKind: "singbox",
|
||||
IfaceID: "edge-a",
|
||||
MarkHex: "0x120",
|
||||
},
|
||||
}
|
||||
st := parseTransportOwnerLocksFromConntrack(raw, markOwner, 13)
|
||||
if st.PolicyRevision != 13 {
|
||||
t.Fatalf("unexpected revision: %d", st.PolicyRevision)
|
||||
}
|
||||
if len(st.Items) != 2 {
|
||||
t.Fatalf("expected 2 locks, got %d (%#v)", len(st.Items), st.Items)
|
||||
}
|
||||
for _, item := range st.Items {
|
||||
if item.ClientID != "c1" {
|
||||
t.Fatalf("unexpected client id: %q", item.ClientID)
|
||||
}
|
||||
if item.MarkHex != "0x120" {
|
||||
t.Fatalf("unexpected mark hex: %q", item.MarkHex)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseTransportConntrackMark(t *testing.T) {
|
||||
if v, ok := parseTransportConntrackMark("0x120"); !ok || v != 0x120 {
|
||||
t.Fatalf("hex mark parse failed: %v %v", v, ok)
|
||||
}
|
||||
if v, ok := parseTransportConntrackMark("288"); !ok || v != 288 {
|
||||
t.Fatalf("dec mark parse failed: %v %v", v, ok)
|
||||
}
|
||||
if _, ok := parseTransportConntrackMark("bad"); ok {
|
||||
t.Fatalf("expected parse error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user