Fix host resolution and concurrent cache updates

This commit is contained in:
Sebastian Unterschütz committed 2026-10-27 22:23:59 +01:00
1 parent 92b1c40cb8
commit fa7446e5f7
11 files changed
+648 -113

No files matched your search

+46
View File
@@ -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)
}
})
}
}