github.com/deis/deis@v1.13.5-0.20170519182049-1d9e59fbdbfc/Godeps/_workspace/src/golang.org/x/crypto/ssh/agent/server_test.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package agent 6 7 import ( 8 "testing" 9 10 "golang.org/x/crypto/ssh" 11 ) 12 13 func TestServer(t *testing.T) { 14 c1, c2, err := netPipe() 15 if err != nil { 16 t.Fatalf("netPipe: %v", err) 17 } 18 defer c1.Close() 19 defer c2.Close() 20 client := NewClient(c1) 21 22 go ServeAgent(NewKeyring(), c2) 23 24 testAgentInterface(t, client, testPrivateKeys["rsa"], nil) 25 } 26 27 func TestLockServer(t *testing.T) { 28 testLockAgent(NewKeyring(), t) 29 } 30 31 func TestSetupForwardAgent(t *testing.T) { 32 a, b, err := netPipe() 33 if err != nil { 34 t.Fatalf("netPipe: %v", err) 35 } 36 37 defer a.Close() 38 defer b.Close() 39 40 _, socket, cleanup := startAgent(t) 41 defer cleanup() 42 43 serverConf := ssh.ServerConfig{ 44 NoClientAuth: true, 45 } 46 serverConf.AddHostKey(testSigners["rsa"]) 47 incoming := make(chan *ssh.ServerConn, 1) 48 go func() { 49 conn, _, _, err := ssh.NewServerConn(a, &serverConf) 50 if err != nil { 51 t.Fatalf("Server: %v", err) 52 } 53 incoming <- conn 54 }() 55 56 conf := ssh.ClientConfig{} 57 conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) 58 if err != nil { 59 t.Fatalf("NewClientConn: %v", err) 60 } 61 client := ssh.NewClient(conn, chans, reqs) 62 63 if err := ForwardToRemote(client, socket); err != nil { 64 t.Fatalf("SetupForwardAgent: %v", err) 65 } 66 67 server := <-incoming 68 ch, reqs, err := server.OpenChannel(channelType, nil) 69 if err != nil { 70 t.Fatalf("OpenChannel(%q): %v", channelType, err) 71 } 72 go ssh.DiscardRequests(reqs) 73 74 agentClient := NewClient(ch) 75 testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil) 76 conn.Close() 77 }