@@ -18,27 +18,46 @@ import (
18
18
"log"
19
19
"net/http"
20
20
"os"
21
+ "os/exec"
21
22
"path/filepath"
22
23
"strings"
23
24
"testing"
25
+ "time"
24
26
)
25
27
26
28
const (
27
29
importPrefix = "importd-test-"
28
30
)
29
31
32
+ func cleanupImport (t * testing.T , name string ) {
33
+ t .Cleanup (func () {
34
+ var (
35
+ out []byte
36
+ err error
37
+ dur = 500 * time .Millisecond
38
+ )
39
+ for range 5 {
40
+ time .Sleep (dur )
41
+ out , err = exec .Command ("machinectl" , "remove" , name ).CombinedOutput ()
42
+ if err == nil {
43
+ return
44
+ }
45
+ dur *= 2
46
+ }
47
+ t .Fatalf ("machinectl remove %s failed: %v\n output: %s" , name , err , out )
48
+ })
49
+ }
50
+
30
51
func TestImportTar (t * testing.T ) {
31
52
conn , err := New ()
32
53
if err != nil {
33
54
t .Fatal (err )
34
55
}
35
56
36
- f , err := os .Open (findFixture ("image.tar.xz" , t ))
37
- if err != nil {
38
- t .Fatal (err )
39
- }
40
-
41
- _ , err = conn .ImportTar (f , importPrefix + "ImportTar" , true , true )
57
+ f := openFixture (t , "image.tar.xz" )
58
+ name := importPrefix + "ImportTar"
59
+ cleanupImport (t , name )
60
+ _ , err = conn .ImportTar (f , name , true , true )
42
61
if err != nil {
43
62
t .Fatal (err )
44
63
}
@@ -50,12 +69,10 @@ func TestImportRaw(t *testing.T) {
50
69
t .Fatal (err )
51
70
}
52
71
53
- f , err := os .Open (findFixture ("image.raw.xz" , t ))
54
- if err != nil {
55
- t .Fatal (err )
56
- }
57
-
58
- _ , err = conn .ImportRaw (f , importPrefix + "ImportRaw" , true , true )
72
+ f := openFixture (t , "image.raw.xz" )
73
+ name := importPrefix + "ImportRaw"
74
+ cleanupImport (t , name )
75
+ _ , err = conn .ImportRaw (f , name , true , true )
59
76
if err != nil {
60
77
t .Fatal (err )
61
78
}
@@ -67,11 +84,7 @@ func TestExportTar(t *testing.T) {
67
84
t .Fatal (err )
68
85
}
69
86
70
- err = os .MkdirAll ("tmp/" , os .ModeDir | 0o755 )
71
- if err != nil {
72
- t .Fatal (err )
73
- }
74
- f , err := os .Create ("tmp/image-export.tar.xz" )
87
+ f , err := os .Create (t .TempDir () + "image-export.tar.xz" )
75
88
if err != nil {
76
89
t .Fatal (err )
77
90
}
@@ -88,11 +101,7 @@ func TestExportRaw(t *testing.T) {
88
101
t .Fatal (err )
89
102
}
90
103
91
- err = os .MkdirAll ("tmp/" , os .ModeDir | 0o755 )
92
- if err != nil {
93
- t .Fatal (err )
94
- }
95
- f , err := os .Create ("tmp/image-export.raw.xz" )
104
+ f , err := os .Create (t .TempDir () + "image-export.raw.xz" )
96
105
if err != nil {
97
106
t .Fatal (err )
98
107
}
@@ -158,12 +167,18 @@ func TestListAndCancelTransfers(t *testing.T) {
158
167
}
159
168
}
160
169
161
- func findFixture ( target string , t * testing.T ) string {
170
+ func openFixture ( t * testing.T , target string ) * os. File {
162
171
abs , err := filepath .Abs ("../fixtures/" + target )
163
172
if err != nil {
164
173
t .Fatal (err )
165
174
}
166
- return abs
175
+
176
+ f , err := os .Open (abs )
177
+ if err != nil {
178
+ t .Fatal (err )
179
+ }
180
+
181
+ return f
167
182
}
168
183
169
184
func init () {
0 commit comments