Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
lima-vm
GitHub Repository: lima-vm/lima
Path: blob/master/pkg/limayaml/load_test.go
2601 views
1
// SPDX-FileCopyrightText: Copyright The Lima Authors
2
// SPDX-License-Identifier: Apache-2.0
3
4
package limayaml
5
6
import (
7
"testing"
8
9
"gotest.tools/v3/assert"
10
)
11
12
func TestLoadEmpty(t *testing.T) {
13
_, err := Load(t.Context(), []byte{}, "empty.yaml")
14
assert.NilError(t, err)
15
}
16
17
func TestLoadError(t *testing.T) {
18
// missing a "script:" line
19
s := `
20
provision:
21
- mode: system
22
script: |
23
#!/bin/sh
24
echo one
25
- mode: system
26
#!/bin/sh
27
echo two
28
- mode: system
29
script: |
30
#!/bin/sh
31
echo three
32
`
33
_, err := Load(t.Context(), []byte(s), "error.yaml")
34
assert.ErrorContains(t, err, "map key-value is pre-defined")
35
}
36
37
func TestLoadDiskString(t *testing.T) {
38
s := `
39
additionalDisks:
40
- name
41
`
42
y, err := Load(t.Context(), []byte(s), "disk.yaml")
43
assert.NilError(t, err)
44
assert.Equal(t, len(y.AdditionalDisks), 1)
45
assert.Equal(t, y.AdditionalDisks[0].Name, "name")
46
assert.Assert(t, y.AdditionalDisks[0].Format == nil)
47
assert.Assert(t, y.AdditionalDisks[0].FSType == nil)
48
assert.Assert(t, y.AdditionalDisks[0].FSArgs == nil)
49
}
50
51
func TestLoadDiskStruct(t *testing.T) {
52
s := `
53
additionalDisks:
54
- name: "name"
55
format: false
56
fsType: "xfs"
57
fsArgs: ["-i","size=512"]
58
`
59
y, err := Load(t.Context(), []byte(s), "disk.yaml")
60
assert.NilError(t, err)
61
assert.Assert(t, len(y.AdditionalDisks) == 1)
62
assert.Equal(t, y.AdditionalDisks[0].Name, "name")
63
assert.Assert(t, y.AdditionalDisks[0].Format != nil)
64
assert.Equal(t, *y.AdditionalDisks[0].Format, false)
65
assert.Assert(t, y.AdditionalDisks[0].FSType != nil)
66
assert.Equal(t, *y.AdditionalDisks[0].FSType, "xfs")
67
assert.Assert(t, len(y.AdditionalDisks[0].FSArgs) == 2)
68
assert.Equal(t, y.AdditionalDisks[0].FSArgs[0], "-i")
69
assert.Equal(t, y.AdditionalDisks[0].FSArgs[1], "size=512")
70
}
71
72