diff options
Diffstat (limited to 'tun2/server_test.go')
| -rw-r--r-- | tun2/server_test.go | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/tun2/server_test.go b/tun2/server_test.go deleted file mode 100644 index abae615..0000000 --- a/tun2/server_test.go +++ /dev/null @@ -1,171 +0,0 @@ -package tun2 - -import ( - "context" - "fmt" - "io/ioutil" - "net/http" - "net/http/httptest" - "strings" - "testing" - "time" - - "github.com/pborman/uuid" - "within.website/ln/opname" -) - -// testing constants -const ( - user = "shachi" - token = "orcaz r kewl" - noPermToken = "aw heck" - otherUserToken = "even more heck" - domain = "cetacean.club" -) - -func TestNewServerNullConfig(t *testing.T) { - _, err := NewServer(nil) - if err == nil { - t.Fatalf("expected NewServer(nil) to fail, got non-failure") - } -} - -func TestGen502Page(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - req, err := http.NewRequest("GET", "http://cetacean.club", nil) - if err != nil { - t.Fatal(err) - } - - substring := uuid.New() - - req = req.WithContext(ctx) - req.Header.Add("X-Request-Id", substring) - req.Host = "cetacean.club" - - resp := gen502Page(req) - if resp == nil { - t.Fatalf("expected response to be non-nil") - } - - if resp.Body != nil { - defer resp.Body.Close() - data, err := ioutil.ReadAll(resp.Body) - if err != nil { - t.Fatal(err) - } - - if !strings.Contains(string(data), substring) { - fmt.Println(string(data)) - t.Fatalf("502 page did not contain needed substring %q", substring) - } - } -} - -func TestConnectionsCloseOnServerContextClose(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - s, _, l, err := setupTestServer() - if err != nil { - t.Fatal(err) - } - defer s.Close() - defer l.Close() - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) - defer ts.Close() - - for i := range make([]struct{}, 5) { - ctx := opname.With(ctx, fmt.Sprint(i)) - cc := &ClientConfig{ - ConnType: "tcp", - ServerAddr: l.Addr().String(), - Token: token, - BackendURL: ts.URL, - Domain: domain, - - forceTCPClear: true, - } - - c, err := NewClient(cc) - if err != nil { - t.Fatal(err) - } - - go c.Connect(ctx) // TODO: fix the client library so this ends up actually getting cleaned up - } - - s.cancel() - time.Sleep(125 * time.Millisecond) - bes := s.GetAllBackends() - if l := len(bes); l != 0 { - t.Fatalf("expected len(bes) == 0, got: %d", l) - } -} - -func BenchmarkHTTP200(b *testing.B) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - s, _, l, err := setupTestServer() - if err != nil { - b.Fatal(err) - } - defer s.Close() - defer l.Close() - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) - defer ts.Close() - - cc := &ClientConfig{ - ConnType: "tcp", - ServerAddr: l.Addr().String(), - Token: token, - BackendURL: ts.URL, - Domain: domain, - - forceTCPClear: true, - } - - c, err := NewClient(cc) - if err != nil { - b.Fatal(err) - } - - go c.Connect(ctx) // TODO: fix the client library so this ends up actually getting cleaned up - - for { - r := s.GetBackendsForDomain(domain) - if len(r) == 0 { - time.Sleep(125 * time.Millisecond) - continue - } - - break - } - - req, err := http.NewRequest("GET", "http://cetacean.club/", nil) - if err != nil { - b.Fatal(err) - } - - _, err = s.RoundTrip(req) - if err != nil { - b.Fatalf("got error on initial request exchange: %v", err) - } - - for n := 0; n < b.N; n++ { - resp, err := s.RoundTrip(req) - if err != nil { - b.Fatalf("got error on %d: %v", n, err) - } - - if resp.StatusCode != http.StatusOK { - b.Fail() - b.Logf("got %d instead of 200", resp.StatusCode) - } - } -} |
