Skip to content

Commit 42fcd35

Browse files
committed
Add unit tests for pkg/networks/commands
Signed-off-by: Jan Dubois <[email protected]>
1 parent c96f16b commit 42fcd35

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

pkg/networks/commands_test.go

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package networks
2+
3+
import (
4+
"path/filepath"
5+
"runtime"
6+
"testing"
7+
8+
"github.com/lima-vm/lima/pkg/store/dirnames"
9+
"gotest.tools/v3/assert"
10+
)
11+
12+
func TestCheck(t *testing.T) {
13+
config, err := DefaultConfig()
14+
assert.NilError(t, err)
15+
16+
for _, name := range []string{"bridged", "shared", "host"} {
17+
err = config.Check(name)
18+
assert.NilError(t, err)
19+
}
20+
err = config.Check("unknown")
21+
assert.ErrorContains(t, err, "not defined")
22+
}
23+
24+
func TestVDESock(t *testing.T) {
25+
config, err := DefaultConfig()
26+
assert.NilError(t, err)
27+
28+
vdeSock := config.VDESock("foo")
29+
assert.Equal(t, vdeSock, "/private/var/run/lima/foo.ctl")
30+
}
31+
32+
func TestPIDFile(t *testing.T) {
33+
config, err := DefaultConfig()
34+
assert.NilError(t, err)
35+
36+
pidFile := config.PIDFile("name", "daemon")
37+
assert.Equal(t, pidFile, "/private/var/run/lima/name_daemon.pid")
38+
}
39+
40+
func TestLogFile(t *testing.T) {
41+
config, err := DefaultConfig()
42+
assert.NilError(t, err)
43+
44+
logFile := config.LogFile("name", "daemon", "stream")
45+
networksDir, err := dirnames.LimaNetworksDir()
46+
assert.NilError(t, err)
47+
assert.Equal(t, logFile, filepath.Join(networksDir, "name_daemon.stream.log"))
48+
}
49+
50+
func TestUser(t *testing.T) {
51+
config, err := DefaultConfig()
52+
assert.NilError(t, err)
53+
54+
user, err := config.User(Switch)
55+
assert.NilError(t, err)
56+
assert.Equal(t, user.User, "daemon")
57+
assert.Equal(t, user.Group, config.Group)
58+
if runtime.GOOS == "darwin" {
59+
assert.Equal(t, user.Uid, uint32(1))
60+
}
61+
62+
user, err = config.User(VMNet)
63+
assert.NilError(t, err)
64+
assert.Equal(t, user.User, "root")
65+
if runtime.GOOS == "darwin" {
66+
assert.Equal(t, user.Group, "wheel")
67+
} else {
68+
assert.Equal(t, user.Group, "root")
69+
}
70+
assert.Equal(t, user.Uid, uint32(0))
71+
assert.Equal(t, user.Gid, uint32(0))
72+
}
73+
74+
func TestMkdirCmd(t *testing.T) {
75+
config, err := DefaultConfig()
76+
assert.NilError(t, err)
77+
78+
cmd := config.MkdirCmd()
79+
assert.Equal(t, cmd, "/bin/mkdir -m 775 -p /private/var/run/lima")
80+
}
81+
82+
func TestStartCmd(t *testing.T) {
83+
config, err := DefaultConfig()
84+
assert.NilError(t, err)
85+
86+
cmd := config.StartCmd("shared", Switch)
87+
assert.Equal(t, cmd, "/opt/vde/bin/vde_switch --pidfile=/private/var/run/lima/shared_switch.pid "+
88+
"--sock=/private/var/run/lima/shared.ctl --group=staff --dirmode=0770 --nostdin")
89+
90+
cmd = config.StartCmd("shared", VMNet)
91+
assert.Equal(t, cmd, "/opt/vde/bin/vde_vmnet --pidfile=/private/var/run/lima/shared_vmnet.pid --vde-group=staff --vmnet-mode=shared "+
92+
"--vmnet-gateway=192.168.105.1 --vmnet-dhcp-end=192.168.105.254 --vmnet-mask=255.255.255.0 /private/var/run/lima/shared.ctl")
93+
94+
cmd = config.StartCmd("bridged", VMNet)
95+
assert.Equal(t, cmd, "/opt/vde/bin/vde_vmnet --pidfile=/private/var/run/lima/bridged_vmnet.pid --vde-group=staff --vmnet-mode=bridged "+
96+
"--vmnet-interface=en0 /private/var/run/lima/bridged.ctl")
97+
}
98+
99+
func TestStopCmd(t *testing.T) {
100+
config, err := DefaultConfig()
101+
assert.NilError(t, err)
102+
103+
cmd := config.StopCmd("name", "daemon")
104+
assert.Equal(t, cmd, "/usr/bin/pkill -F /private/var/run/lima/name_daemon.pid")
105+
}

pkg/networks/config.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ import (
1717
//go:embed networks.yaml
1818
var defaultConfig []byte
1919

20+
func DefaultConfig() (NetworksConfig, error) {
21+
var config NetworksConfig
22+
err := yaml.Unmarshal(defaultConfig, &config)
23+
return config, err
24+
}
25+
2026
var cache struct {
2127
sync.Once
2228
config NetworksConfig

0 commit comments

Comments
 (0)