mirror of
https://github.com/containers/podman.git
synced 2025-08-01 05:54:53 +08:00

the way machine was written was very adjunct and as such is in dire need of refactoring to better structures and structure methods where appropriate. the weekest part is specifically around all the files that machine requires and how some are just dynamically built on the fly. this pr defines a new machinefile type which allows us to work with the file and also takes into account the use of symlinks which are going to be needed on macos due to its relatively short file length restriction. also, added unit tests for new methods as well as anywhere else I saw a need. Signed-off-by: Brent Baude <bbaude@redhat.com>
72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package machine
|
|
|
|
import (
|
|
"net"
|
|
"net/url"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestRemoteConnectionType_MakeSSHURL(t *testing.T) {
|
|
var (
|
|
host = "foobar"
|
|
path = "/path/to/socket"
|
|
rc = "ssh"
|
|
username = "core"
|
|
)
|
|
type args struct {
|
|
host string
|
|
path string
|
|
port string
|
|
userName string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
rc RemoteConnectionType
|
|
args args
|
|
want url.URL
|
|
}{
|
|
{
|
|
name: "Good no port",
|
|
rc: "ssh",
|
|
args: args{
|
|
host: host,
|
|
path: path,
|
|
port: "",
|
|
userName: username,
|
|
},
|
|
want: url.URL{
|
|
Scheme: rc,
|
|
User: url.User(username),
|
|
Host: host,
|
|
Path: path,
|
|
ForceQuery: false,
|
|
},
|
|
},
|
|
{
|
|
name: "Good with port",
|
|
rc: "ssh",
|
|
args: args{
|
|
host: host,
|
|
path: path,
|
|
port: "222",
|
|
userName: username,
|
|
},
|
|
want: url.URL{
|
|
Scheme: rc,
|
|
User: url.User(username),
|
|
Host: net.JoinHostPort(host, "222"),
|
|
Path: path,
|
|
ForceQuery: false,
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := tt.rc.MakeSSHURL(tt.args.host, tt.args.path, tt.args.port, tt.args.userName); !reflect.DeepEqual(got, tt.want) { //nolint: scopelint
|
|
t.Errorf("MakeSSHURL() = %v, want %v", got, tt.want) //nolint: scopelint
|
|
}
|
|
})
|
|
}
|
|
}
|