aboutsummaryrefslogtreecommitdiff
path: root/tun2/server_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tun2/server_test.go')
-rw-r--r--tun2/server_test.go171
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)
- }
- }
-}