39 lines
969 B
Go
Executable file
39 lines
969 B
Go
Executable file
// Copyright 2014 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 ssh
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func testClientVersion(t *testing.T, config *ClientConfig, expected string) {
|
|
clientConn, serverConn := net.Pipe()
|
|
defer clientConn.Close()
|
|
receivedVersion := make(chan string, 1)
|
|
go func() {
|
|
version, err := readVersion(serverConn)
|
|
if err != nil {
|
|
receivedVersion <- ""
|
|
} else {
|
|
receivedVersion <- string(version)
|
|
}
|
|
serverConn.Close()
|
|
}()
|
|
NewClientConn(clientConn, "", config)
|
|
actual := <-receivedVersion
|
|
if actual != expected {
|
|
t.Fatalf("got %s; want %s", actual, expected)
|
|
}
|
|
}
|
|
|
|
func TestCustomClientVersion(t *testing.T) {
|
|
version := "Test-Client-Version-0.0"
|
|
testClientVersion(t, &ClientConfig{ClientVersion: version}, version)
|
|
}
|
|
|
|
func TestDefaultClientVersion(t *testing.T) {
|
|
testClientVersion(t, &ClientConfig{}, packageVersion)
|
|
}
|