summaryrefslogtreecommitdiff
path: root/pkg/test
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/test')
-rw-r--r--pkg/test/env_test.go26
-rw-r--r--pkg/test/test.go34
2 files changed, 60 insertions, 0 deletions
diff --git a/pkg/test/env_test.go b/pkg/test/env_test.go
new file mode 100644
index 0000000..b03a5c5
--- /dev/null
+++ b/pkg/test/env_test.go
@@ -0,0 +1,26 @@
+package test
+
+import (
+ "testing"
+)
+
+func TestEnv(t *testing.T) {
+ const msg = "Hello, World!"
+
+ c, s, err := newClientServer()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ defer s.Stop()
+ defer c.Close()
+
+ r, err := c.Send([]string{"echo", msg})
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if r != msg {
+ t.Errorf("wrong reply: send '%s', recv '%s'", msg, r)
+ }
+}
diff --git a/pkg/test/test.go b/pkg/test/test.go
new file mode 100644
index 0000000..6a2c776
--- /dev/null
+++ b/pkg/test/test.go
@@ -0,0 +1,34 @@
+package test
+
+import (
+ "os"
+ "path/filepath"
+ "strconv"
+
+ "tunnel/pkg/client"
+ "tunnel/pkg/server"
+)
+
+func getSocketPath() string {
+ s := "tunnel.test." + strconv.Itoa(os.Getpid())
+ return filepath.Join(os.TempDir(), s)
+}
+
+func newClientServer() (*client.Client, *server.Server, error) {
+ socket := getSocketPath()
+
+ s, err := server.New(socket)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ go s.Serve()
+
+ c, err := client.New(socket)
+ if err != nil {
+ s.Stop()
+ return nil, nil, err
+ }
+
+ return c, s, nil
+}