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  }