40 lines
		
	
	
		
			969 B
		
	
	
	
		
			Go
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			40 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)
 | 
						|
}
 |