MCPcopy
hub / github.com/lima-vm/lima / TestConvertToRaw

Function TestConvertToRaw

pkg/imgutil/nativeimgutil/nativeimgutil_test.go:40–98  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

38}
39
40func TestConvertToRaw(t *testing.T) {
41 _, err := exec.LookPath("qemu-img")
42 if err != nil {
43 t.Skipf("qemu-img does not seem installed: %v", err)
44 }
45 tmpDir := t.TempDir()
46 ctx := t.Context()
47
48 qcowImage, err := os.Create(filepath.Join(tmpDir, "qcow.img"))
49 assert.NilError(t, err)
50 defer qcowImage.Close()
51 err = createImg(ctx, qcowImage.Name(), "qcow2", "1M")
52 assert.NilError(t, err)
53
54 rawImage, err := os.Create(filepath.Join(tmpDir, "raw.img"))
55 assert.NilError(t, err)
56 defer rawImage.Close()
57 err = createImg(ctx, rawImage.Name(), "raw", "1M")
58 assert.NilError(t, err)
59
60 rawImageExtended, err := os.Create(filepath.Join(tmpDir, "raw_extended.img"))
61 assert.NilError(t, err)
62 defer rawImageExtended.Close()
63 err = createImg(ctx, rawImageExtended.Name(), "raw", "2M")
64 assert.NilError(t, err)
65
66 t.Run("qcow without backing file", func(t *testing.T) {
67 resultImage := filepath.Join(tmpDir, strings.ReplaceAll(strings.ReplaceAll(t.Name(), string(os.PathSeparator), "_"), "/", "_"))
68
69 err = convertTo(raw.Type, qcowImage.Name(), resultImage, nil, false)
70 assert.NilError(t, err)
71 assertFileEquals(t, rawImage.Name(), resultImage)
72 })
73
74 t.Run("qcow with backing file", func(t *testing.T) {
75 resultImage := filepath.Join(tmpDir, strings.ReplaceAll(strings.ReplaceAll(t.Name(), string(os.PathSeparator), "_"), "/", "_"))
76
77 err = convertTo(raw.Type, qcowImage.Name(), resultImage, nil, true)
78 assert.NilError(t, err)
79 assertFileEquals(t, rawImage.Name(), resultImage)
80 })
81
82 t.Run("qcow with extra size", func(t *testing.T) {
83 resultImage := filepath.Join(tmpDir, strings.ReplaceAll(strings.ReplaceAll(t.Name(), string(os.PathSeparator), "_"), "/", "_"))
84
85 size := int64(2_097_152) // 2mb
86 err = convertTo(raw.Type, qcowImage.Name(), resultImage, &size, false)
87 assert.NilError(t, err)
88 assertFileEquals(t, rawImageExtended.Name(), resultImage)
89 })
90
91 t.Run("raw", func(t *testing.T) {
92 resultImage := filepath.Join(tmpDir, strings.ReplaceAll(strings.ReplaceAll(t.Name(), string(os.PathSeparator), "_"), "/", "_"))
93
94 err = convertTo(raw.Type, rawImage.Name(), resultImage, nil, false)
95 assert.NilError(t, err)
96 assertFileEquals(t, rawImage.Name(), resultImage)
97 })

Callers

nothing calls this directly

Calls 7

createImgFunction · 0.85
convertToFunction · 0.85
assertFileEqualsFunction · 0.85
CreateMethod · 0.65
NameMethod · 0.65
CloseMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected