mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.6 KiB
77 lines
1.6 KiB
// Copyright 2012 The Go Authors. All rights reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package agent |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/gogits/gogs/modules/crypto/ssh" |
|
) |
|
|
|
func TestServer(t *testing.T) { |
|
c1, c2, err := netPipe() |
|
if err != nil { |
|
t.Fatalf("netPipe: %v", err) |
|
} |
|
defer c1.Close() |
|
defer c2.Close() |
|
client := NewClient(c1) |
|
|
|
go ServeAgent(NewKeyring(), c2) |
|
|
|
testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0) |
|
} |
|
|
|
func TestLockServer(t *testing.T) { |
|
testLockAgent(NewKeyring(), t) |
|
} |
|
|
|
func TestSetupForwardAgent(t *testing.T) { |
|
a, b, err := netPipe() |
|
if err != nil { |
|
t.Fatalf("netPipe: %v", err) |
|
} |
|
|
|
defer a.Close() |
|
defer b.Close() |
|
|
|
_, socket, cleanup := startAgent(t) |
|
defer cleanup() |
|
|
|
serverConf := ssh.ServerConfig{ |
|
NoClientAuth: true, |
|
} |
|
serverConf.AddHostKey(testSigners["rsa"]) |
|
incoming := make(chan *ssh.ServerConn, 1) |
|
go func() { |
|
conn, _, _, err := ssh.NewServerConn(a, &serverConf) |
|
if err != nil { |
|
t.Fatalf("Server: %v", err) |
|
} |
|
incoming <- conn |
|
}() |
|
|
|
conf := ssh.ClientConfig{} |
|
conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) |
|
if err != nil { |
|
t.Fatalf("NewClientConn: %v", err) |
|
} |
|
client := ssh.NewClient(conn, chans, reqs) |
|
|
|
if err := ForwardToRemote(client, socket); err != nil { |
|
t.Fatalf("SetupForwardAgent: %v", err) |
|
} |
|
|
|
server := <-incoming |
|
ch, reqs, err := server.OpenChannel(channelType, nil) |
|
if err != nil { |
|
t.Fatalf("OpenChannel(%q): %v", channelType, err) |
|
} |
|
go ssh.DiscardRequests(reqs) |
|
|
|
agentClient := NewClient(ch) |
|
testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0) |
|
conn.Close() |
|
}
|
|
|