You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"io/ioutil"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
yaml "gopkg.in/yaml.v2"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestConf(t *testing.T) {
|
|
|
|
data, err := ioutil.ReadFile("config.sample.yaml")
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
var c conf
|
|
|
|
if err := yaml.Unmarshal(data, &c); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
fmt.Printf("%+v\n", c)
|
|
|
|
var testdata = map[string]string{
|
|
|
|
"www.example.com": "127.0.0.1:8443 proxy-v2",
|
|
|
|
"b.example.com": "127.0.0.1:8542",
|
|
|
|
}
|
|
|
|
r := forwardRules(c.ForwardRules)
|
|
|
|
for k, v := range testdata {
|
|
|
|
s := r.Get(k)
|
|
|
|
if s != v {
|
|
|
|
t.Errorf("expected: %s, got: %s", v, s)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if r.GetN("a.com", 9999) != "a.com:443" {
|
|
|
|
t.Errorf("expected a.com:9999, got %s", r.GetN("a.com", 9999))
|
|
|
|
}
|
|
|
|
}
|