Merge pull request #5283 from n0npax/improve-sshutil-test-coverage

improve test coverage for sshutil package
pull/5356/head
Thomas Strömberg 2019-09-19 13:59:21 -07:00 committed by GitHub
commit 3e2958d7f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 69 additions and 6 deletions

View File

@ -17,6 +17,7 @@ limitations under the License.
package sshutil
import (
"fmt"
"testing"
"github.com/docker/machine/libmachine/drivers"
@ -24,6 +25,12 @@ import (
"k8s.io/minikube/pkg/minikube/tests"
)
type MockDriverBadPort struct{ tests.MockDriver }
func (MockDriverBadPort) GetSSHPort() (int, error) {
return 22, fmt.Errorf("bad port err")
}
func TestNewSSHClient(t *testing.T) {
s, err := tests.NewSSHServer(t)
if err != nil {
@ -67,6 +74,54 @@ func TestNewSSHClient(t *testing.T) {
}
}
func TestNewSSHClientError(t *testing.T) {
t.Run("Bad Port", func(t *testing.T) {
d := MockDriverBadPort{}
_, err := NewSSHClient(&d)
if err == nil {
t.Fatalf("Expected to fail dor driver: %v", d)
}
})
t.Run("Bad ssh key path", func(t *testing.T) {
s, err := tests.NewSSHServer(t)
if err != nil {
t.Fatalf("NewSSHServer: %v", err)
}
port, err := s.Start()
if err != nil {
t.Fatalf("Error starting ssh server: %v", err)
}
defer s.Stop()
d := &tests.MockDriver{
Port: port,
BaseDriver: drivers.BaseDriver{
IPAddress: "127.0.0.1",
SSHKeyPath: "/etc/hosts",
},
T: t,
}
_, err = NewSSHClient(d)
if err == nil {
t.Fatalf("Expected to fail for driver: %v", d)
}
})
t.Run("Dial err", func(t *testing.T) {
d := &tests.MockDriver{
Port: 22,
BaseDriver: drivers.BaseDriver{
IPAddress: "127.0.0.1",
SSHKeyPath: "",
},
T: t,
}
_, err := NewSSHClient(d)
if err == nil {
t.Fatalf("Expected to fail for driver: %v", d)
}
})
}
func TestNewSSHHost(t *testing.T) {
sshKeyPath := "mypath"
ip := "localhost"
@ -96,10 +151,18 @@ func TestNewSSHHost(t *testing.T) {
}
func TestNewSSHHostError(t *testing.T) {
d := tests.MockDriver{HostError: true}
_, err := newSSHHost(&d)
if err == nil {
t.Fatal("Expected error creating host, got nil")
}
t.Run("Host error", func(t *testing.T) {
d := tests.MockDriver{HostError: true}
_, err := newSSHHost(&d)
if err == nil {
t.Fatal("Expected error for creating newSSHHost with host error, but got nil")
}
})
t.Run("Bad port", func(t *testing.T) {
d := MockDriverBadPort{}
_, err := newSSHHost(&d)
if err == nil {
t.Fatal("Expected error for creating newSSHHost with bad port, but got nil")
}
})
}