blob: 1fe790cb494c6b8348690da1bcf7e9a89b8716e1 [file] [log] [blame]
Adam Langleyfa50e742014-04-09 13:57:52 -07001// Copyright 2014 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
JP Sugarbroadc2c80b62013-08-27 13:40:08 -04005package ssh
6
7import (
8 "net"
9 "testing"
10)
11
12func testClientVersion(t *testing.T, config *ClientConfig, expected string) {
13 clientConn, serverConn := net.Pipe()
Adam Langleyfa50e742014-04-09 13:57:52 -070014 defer clientConn.Close()
JP Sugarbroadc2c80b62013-08-27 13:40:08 -040015 receivedVersion := make(chan string, 1)
16 go func() {
17 version, err := readVersion(serverConn)
18 if err != nil {
19 receivedVersion <- ""
20 } else {
21 receivedVersion <- string(version)
22 }
23 serverConn.Close()
24 }()
Adam Langleyfa50e742014-04-09 13:57:52 -070025 NewClientConn(clientConn, "", config)
JP Sugarbroadc2c80b62013-08-27 13:40:08 -040026 actual := <-receivedVersion
27 if actual != expected {
28 t.Fatalf("got %s; want %s", actual, expected)
29 }
30}
31
32func TestCustomClientVersion(t *testing.T) {
33 version := "Test-Client-Version-0.0"
34 testClientVersion(t, &ClientConfig{ClientVersion: version}, version)
35}
36
37func TestDefaultClientVersion(t *testing.T) {
Han-Wen Nienhuysf5f25bd2013-10-17 08:54:15 +110038 testClientVersion(t, &ClientConfig{}, packageVersion)
JP Sugarbroadc2c80b62013-08-27 13:40:08 -040039}