package process import "testing" func TestWorkerKeyRoundTrip(t *testing.T) { cases := []struct { local, remote string port int }{ {"web", "frps1", 18080}, {"db", "aliyun-frps", 5432}, {"svc-1", "node.a.example", 80}, } for _, c := range cases { key := WorkerKey(c.local, c.remote, c.port) l, r, p, ok := ParseWorkerKey(key) if !ok || l != c.local || r != c.remote || p != c.port { t.Fatalf("roundtrip %q -> (%q,%q,%d,%v)", key, l, r, p, ok) } } } func TestParseWorkerKeyRejectsBad(t *testing.T) { bad := []string{ "", "srv-a", // legacy per-remote names / empty "a~b", // missing port "a~b~x", // non-numeric port "a~b~0", // port out of range "~b~1", // empty local "a~~1", // empty remote } for _, key := range bad { if _, _, _, ok := ParseWorkerKey(key); ok { t.Fatalf("ParseWorkerKey(%q) accepted, want reject", key) } } }