diff options
| -rw-r--r-- | pkg/test/auth_test.go | 24 | ||||
| -rw-r--r-- | pkg/test/defer_test.go | 32 | ||||
| -rw-r--r-- | pkg/test/env_test.go | 8 | ||||
| -rw-r--r-- | pkg/test/hook_test.go | 33 | ||||
| -rw-r--r-- | pkg/test/test.go | 10 |
5 files changed, 71 insertions, 36 deletions
diff --git a/pkg/test/auth_test.go b/pkg/test/auth_test.go index cf5f28b..41d1c2d 100644 --- a/pkg/test/auth_test.go +++ b/pkg/test/auth_test.go @@ -5,32 +5,32 @@ import ( ) func TestAuthHook(t *testing.T) { - const msg = "Hello, World!" - c, s := newClientServer(t) defer closeClientServer(c, s) - listen := xListen(t, "tcp", "127.0.0.1:0") - defer listen.Close() - - xaddr := c.AddListenTunnel("X", "-aes -auth dial,addr=%s", listen.Addr()) - taddr := c.AddListenTunnel("T", "auth aes dial,addr=%s", xaddr) + c.Exec("add name T listen,addr=-:0 auth aes dial,addr=@[tunnel.X.listen]") + c.Exec("add name X listen,addr=-:0 -aes -auth dial,addr=@[addr]") c.Exec("set tunnel.X.secret secret") c.Exec("set tunnel.T.secret secret") - out := xDial(t, "tcp", taddr) + listen := xListen(t, "tcp", "127.0.0.1:0") + defer listen.Close() + + c.Set("addr", listen.Addr()) + + out := xDial(t, "tcp", c.Get("tunnel.T.listen")) defer out.Close() in := xAccept(t, listen) defer in.Close() - xWrite(t, out, msg) + xWrite(t, out, xData) - buf := make([]byte, len(msg)) + buf := make([]byte, len(xData)) xReadFull(t, in, buf) - if r := string(buf); r != msg { - t.Fatalf("wrong reply: send '%s', recv '%s'", msg, r) + if r := string(buf); r != xData { + t.Fatalf("wrong reply: send '%s', recv '%s'", xData, r) } } diff --git a/pkg/test/defer_test.go b/pkg/test/defer_test.go new file mode 100644 index 0000000..215e0b1 --- /dev/null +++ b/pkg/test/defer_test.go @@ -0,0 +1,32 @@ +package test + +import ( + "testing" +) + +func TestDeferSocket(t *testing.T) { + c, s := newClientServer(t) + defer closeClientServer(c, s) + + c.Exec("add name T listen,addr=-:0 defer,addr=@[addr]") + + out := xDial(t, "tcp", c.Get("tunnel.T.listen")) + defer out.Close() + + listen := xListen(t, "tcp", "127.0.0.1:0") + defer listen.Close() + + c.Set("addr", listen.Addr()) + + xWrite(t, out, xData) + + in := xAccept(t, listen) + defer in.Close() + + buf := make([]byte, len(xData)) + xReadFull(t, in, buf) + + if r := string(buf); r != xData { + t.Fatalf("wrong reply: send '%s', recv '%s'", xData, r) + } +} diff --git a/pkg/test/env_test.go b/pkg/test/env_test.go index 5d6f03e..7a1cd64 100644 --- a/pkg/test/env_test.go +++ b/pkg/test/env_test.go @@ -5,13 +5,11 @@ import ( ) func TestEnv(t *testing.T) { - const msg = "Hello, World!" - c, s := newClientServer(t) defer closeClientServer(c, s) - r := c.Send("echo %s", msg) - if r != msg { - t.Errorf("wrong reply: send '%s', recv '%s'", msg, r) + r := c.Send("echo %s", xData) + if r != xData { + t.Errorf("wrong reply: send '%s', recv '%s'", xData, r) } } diff --git a/pkg/test/hook_test.go b/pkg/test/hook_test.go index 06204bb..31e74f7 100644 --- a/pkg/test/hook_test.go +++ b/pkg/test/hook_test.go @@ -8,52 +8,47 @@ import ( ) func TestUpperHook(t *testing.T) { - const msg = "Hello, World!" - c, s := newClientServer(t) defer closeClientServer(c, s) - tunnel := "add name %s listen,addr=127.0.0.1:0 upper loop" - c.Exec(tunnel, t.Name()) - - addr := c.Send("get tunnel.%s.listen", t.Name()) + c.Exec("add name T listen,addr=-:0 upper loop") - conn := xDial(t, "tcp", addr) + conn := xDial(t, "tcp", c.Get("tunnel.T.listen")) defer conn.Close() - xWrite(t, conn, msg) + xWrite(t, conn, xData) - buf := make([]byte, len(msg)) + buf := make([]byte, len(xData)) xReadFull(t, conn, buf) - if r := string(buf); r != strings.ToUpper(msg) { - t.Fatalf("wrong reply: send '%s', recv '%s'", msg, r) + if r := string(buf); r != strings.ToUpper(xData) { + t.Fatalf("wrong reply: send '%s', recv '%s'", xData, r) } } func TestHexHook(t *testing.T) { - const msg = "Hello, World!" - c, s := newClientServer(t) defer closeClientServer(c, s) + c.Exec("add name T listen,addr=-:0 hex dial,addr=@[addr]") + listen := xListen(t, "tcp", "127.0.0.1:0") defer listen.Close() - addr := c.AddListenTunnel(t.Name(), "hex dial,addr=%s", listen.Addr()) + c.Set("addr", listen.Addr()) - out := xDial(t, "tcp", addr) + out := xDial(t, "tcp", c.Get("tunnel.T.listen")) defer out.Close() in := xAccept(t, listen) defer in.Close() - xWrite(t, out, msg) + xWrite(t, out, xData) - buf := make([]byte, 2*len(msg)) + buf := make([]byte, 2*len(xData)) xReadFull(t, in, buf) - if r := string(buf); r != hex.EncodeToString([]byte(msg)) { - t.Fatalf("wrong reply: send '%s', recv '%s'", msg, r) + if r := string(buf); r != hex.EncodeToString([]byte(xData)) { + t.Fatalf("wrong reply: send '%s', recv '%s'", xData, r) } } diff --git a/pkg/test/test.go b/pkg/test/test.go index 89722fd..44289c9 100644 --- a/pkg/test/test.go +++ b/pkg/test/test.go @@ -14,6 +14,8 @@ import ( "tunnel/pkg/server" ) +const xData = "Hello, World!" + type env struct { *testing.T } @@ -69,6 +71,14 @@ func (c *Client) Send(format string, args ...interface{}) string { return r } +func (c *Client) Get(name string) string { + return c.Send("get %s", name) +} + +func (c *Client) Set(name string, value interface{}) { + c.Exec("set %s %s", name, value) +} + func (c *Client) Exec(format string, args ...interface{}) { s := c.Send(format, args...) if s != "" { |
