Fix host resolution and concurrent cache updates
This commit is contained in:
1 parent
92b1c40cb8
commit
fa7446e5f7
11 files changed
+648
-113
No files matched your search
@@ -0,0 +1,46 @@
|
||||
package ssh
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestParseOptionClusters(t *testing.T) {
|
||||
for _, args := range [][]string{
|
||||
{"-vp", "2222", "server"},
|
||||
{"-vp2222", "server"},
|
||||
{"-vAl", "admin", "server"},
|
||||
{"-vladmin", "server"},
|
||||
{"-B", "eth0", "server"},
|
||||
{"-P", "production", "server"},
|
||||
} {
|
||||
t.Run(args[0], func(t *testing.T) {
|
||||
assertParsed(t, Parse(args), "server", "", len(args)-1)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestExplicitSSHOptions(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
args []string
|
||||
user, port bool
|
||||
}{
|
||||
{"cluster port separated", []string{"-vp", "2222", "server"}, false, true},
|
||||
{"cluster user attached", []string{"-vladmin", "server"}, true, false},
|
||||
{"o separated", []string{"-o", "User=admin", "-o", "Port=2222", "server"}, true, true},
|
||||
{"o attached and case insensitive", []string{"-ouSeR=admin", "-oport=2222", "server"}, true, true},
|
||||
{"o whitespace", []string{"-o", " User = admin", "-o", "Port\t2222", "server"}, true, true},
|
||||
{"cluster o", []string{"-voUser=admin", "server"}, true, false},
|
||||
{"option value looks like flag", []string{"-i", "-lroot", "-F", "-p2222", "server"}, false, false},
|
||||
{"remote flags", []string{"server", "-p2222", "-o", "User=admin"}, false, false},
|
||||
{"after double dash", []string{"--", "-lroot", "-p2222"}, false, false},
|
||||
{"missing value", []string{"-vp"}, false, false},
|
||||
} {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
if got := HasUserFlag(tc.args); got != tc.user {
|
||||
t.Errorf("HasUserFlag(%v) = %v, want %v", tc.args, got, tc.user)
|
||||
}
|
||||
if got := HasPortFlag(tc.args); got != tc.port {
|
||||
t.Errorf("HasPortFlag(%v) = %v, want %v", tc.args, got, tc.port)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user