4242 isUPFEnabled = flag .Bool ("upf" , false , "Set UPF enabled" )
4343 isLazyMode = flag .Bool ("lazy" , false , "Set lazy serving on or off" )
4444 //nolint:deadcode,unused,varcheck
45- isWithCache = flag .Bool ("withCache" , false , "Do not drop the cache before measurements" )
45+ isWithCache = flag .Bool ("withCache" , false , "Do not drop the cache before measurements" )
46+ snapshotter = flag .String ("ss" , "devmapper" , "Snapshotter to use" )
47+ dockerCredentials = flag .String ("dockerCredentials" , "" , "Docker credentials for pulling images from inside a microVM" )
48+ testImage = flag .String ("img" , testImageName , "Test image" )
4649)
4750
4851func TestMain (m * testing.M ) {
@@ -71,18 +74,23 @@ func TestStartSnapStopLoad(t *testing.T) {
7174 ctx , cancel := context .WithTimeout (namespaces .WithNamespace (context .Background (), namespaceName ), testTimeout )
7275 defer cancel ()
7376
74- orch := NewOrchestrator ("devmapper" , "" , WithTestModeOn (true ))
77+ orch := NewOrchestrator (
78+ * snapshotter ,
79+ "" ,
80+ WithTestModeOn (true ),
81+ WithDockerCredentials (* dockerCredentials ),
82+ )
7583
7684 vmID := "2"
7785 revision := "myrev-2"
7886
79- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
87+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
8088 require .NoError (t , err , "Failed to start VM" )
8189
8290 err = orch .PauseVM (ctx , vmID )
8391 require .NoError (t , err , "Failed to pause VM" )
8492
85- snap := snapshotting .NewSnapshot (revision , "/fccd/snapshots" , testImageName )
93+ snap := snapshotting .NewSnapshot (revision , "/fccd/snapshots" , * testImage )
8694 err = snap .CreateSnapDir ()
8795 require .NoError (t , err , "Failed to create snapshots directory" )
8896
@@ -121,23 +129,24 @@ func TestPauseSnapResume(t *testing.T) {
121129 defer cancel ()
122130
123131 orch := NewOrchestrator (
124- "devmapper" ,
132+ * snapshotter ,
125133 "" ,
126134 WithTestModeOn (true ),
127135 WithUPF (* isUPFEnabled ),
128136 WithLazyMode (* isLazyMode ),
137+ WithDockerCredentials (* dockerCredentials ),
129138 )
130139
131140 vmID := "4"
132141 revision := "myrev-4"
133142
134- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
143+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
135144 require .NoError (t , err , "Failed to start VM" )
136145
137146 err = orch .PauseVM (ctx , vmID )
138147 require .NoError (t , err , "Failed to pause VM" )
139148
140- snap := snapshotting .NewSnapshot (revision , "/fccd/snapshots" , testImageName )
149+ snap := snapshotting .NewSnapshot (revision , "/fccd/snapshots" , * testImage )
141150 err = snap .CreateSnapDir ()
142151 require .NoError (t , err , "Failed to create snapshots directory" )
143152
@@ -170,16 +179,17 @@ func TestStartStopSerial(t *testing.T) {
170179 defer cancel ()
171180
172181 orch := NewOrchestrator (
173- "devmapper" ,
182+ * snapshotter ,
174183 "" ,
175184 WithTestModeOn (true ),
176185 WithUPF (* isUPFEnabled ),
177186 WithLazyMode (* isLazyMode ),
187+ WithDockerCredentials (* dockerCredentials ),
178188 )
179189
180190 vmID := "5"
181191
182- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
192+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
183193 require .NoError (t , err , "Failed to start VM" )
184194
185195 err = orch .StopSingleVM (ctx , vmID )
@@ -204,16 +214,17 @@ func TestPauseResumeSerial(t *testing.T) {
204214 defer cancel ()
205215
206216 orch := NewOrchestrator (
207- "devmapper" ,
217+ * snapshotter ,
208218 "" ,
209219 WithTestModeOn (true ),
210220 WithUPF (* isUPFEnabled ),
211221 WithLazyMode (* isLazyMode ),
222+ WithDockerCredentials (* dockerCredentials ),
212223 )
213224
214225 vmID := "6"
215226
216- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
227+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
217228 require .NoError (t , err , "Failed to start VM" )
218229
219230 err = orch .PauseVM (ctx , vmID )
@@ -247,16 +258,19 @@ func TestStartStopParallel(t *testing.T) {
247258 vmIDBase := 7
248259
249260 orch := NewOrchestrator (
250- "devmapper" ,
261+ * snapshotter ,
251262 "" ,
252263 WithTestModeOn (true ),
253264 WithUPF (* isUPFEnabled ),
254265 WithLazyMode (* isLazyMode ),
266+ WithDockerCredentials (* dockerCredentials ),
255267 )
256268
257- // Pull image
258- _ , err := orch .getImage (ctx , testImageName )
259- require .NoError (t , err , "Failed to pull image " + testImageName )
269+ if * snapshotter != "proxy" {
270+ // Pull image (with remote snapshotters you can't pull the image before starting the VM)
271+ _ , err := orch .getImage (ctx , * testImage )
272+ require .NoError (t , err , "Failed to pull image " + * testImage )
273+ }
260274
261275 {
262276 var vmGroup sync.WaitGroup
@@ -265,7 +279,7 @@ func TestStartStopParallel(t *testing.T) {
265279 go func (i int ) {
266280 defer vmGroup .Done ()
267281 vmID := fmt .Sprintf ("%d" , i )
268- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
282+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
269283 require .NoError (t , err , "Failed to start VM " + vmID )
270284 }(i )
271285 }
@@ -308,16 +322,19 @@ func TestPauseResumeParallel(t *testing.T) {
308322 vmIDBase := 17
309323
310324 orch := NewOrchestrator (
311- "devmapper" ,
325+ * snapshotter ,
312326 "" ,
313327 WithTestModeOn (true ),
314328 WithUPF (* isUPFEnabled ),
315329 WithLazyMode (* isLazyMode ),
330+ WithDockerCredentials (* dockerCredentials ),
316331 )
317332
318- // Pull image
319- _ , err := orch .getImage (ctx , testImageName )
320- require .NoError (t , err , "Failed to pull image " + testImageName )
333+ if * snapshotter != "proxy" {
334+ // Pull image (with remote snapshotters you can't pull the image before starting the VM)
335+ _ , err := orch .getImage (ctx , * testImage )
336+ require .NoError (t , err , "Failed to pull image " + * testImage )
337+ }
321338
322339 {
323340 var vmGroup sync.WaitGroup
@@ -326,7 +343,7 @@ func TestPauseResumeParallel(t *testing.T) {
326343 go func (i int ) {
327344 defer vmGroup .Done ()
328345 vmID := fmt .Sprintf ("%d" , i )
329- _ , _ , err := orch .StartVM (ctx , vmID , testImageName )
346+ _ , _ , err := orch .StartVM (ctx , vmID , * testImage )
330347 require .NoError (t , err , "Failed to start VM" )
331348 }(i )
332349 }
0 commit comments