@@ -66,27 +66,41 @@ func TestSnapLoad(t *testing.T) {
6666 )
6767
6868 vmID := "1"
69- revisionID := "myrev-1"
69+ snapId := vmID
70+ if * isFullLocal {
71+ snapId = "myrev-1"
72+ }
7073
71- _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , false , false )
74+ _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , * isSparseSnaps , * isFullLocal )
7275 require .NoError (t , err , "Failed to start VM" )
7376
7477 err = orch .PauseVM (ctx , vmID )
7578 require .NoError (t , err , "Failed to pause VM" )
7679
77- snap := snapshotting .NewSnapshot (revisionID , "/fccd/snapshots" , TestImageName , 0 , 0 , false )
78- err = orch .CreateSnapshot (ctx , vmID , snap , false )
80+ snap := snapshotting .NewSnapshot (snapId , "/fccd/snapshots" , TestImageName , 256 , 1 , * isSparseSnaps )
81+ err = orch .CreateSnapshot (ctx , vmID , snap , * isFullLocal )
7982 require .NoError (t , err , "Failed to create snapshot of VM" )
8083
8184 _ , err = orch .ResumeVM (ctx , vmID )
8285 require .NoError (t , err , "Failed to resume VM" )
8386
84- _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , false )
87+ if * isFullLocal {
88+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
89+ require .NoError (t , err , "Failed to stop VM" )
90+ } else {
91+ err = orch .OffloadVM (ctx , vmID , * isFullLocal )
92+ require .NoError (t , err , "Failed to offload VM" )
93+ }
94+
95+ _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , * isFullLocal )
8596 require .NoError (t , err , "Failed to load snapshot of VM" )
8697
8798 _ , err = orch .ResumeVM (ctx , vmID )
8899 require .NoError (t , err , "Failed to resume VM" )
89100
101+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
102+ require .NoError (t , err , "Failed to stop VM" )
103+
90104 orch .Cleanup ()
91105}
92106
@@ -118,30 +132,52 @@ func TestSnapLoadMultiple(t *testing.T) {
118132 )
119133
120134 vmID := "3"
121- revisionID := "myrev-3"
135+ snapId := vmID
136+ if * isFullLocal {
137+ snapId = "myrev-3"
138+ }
122139
123- _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , false , false )
140+ _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , * isSparseSnaps , * isFullLocal )
124141 require .NoError (t , err , "Failed to start VM" )
125142
126143 err = orch .PauseVM (ctx , vmID )
127144 require .NoError (t , err , "Failed to pause VM" )
128145
129- snap := snapshotting .NewSnapshot (revisionID , "/fccd/snapshots" , TestImageName , 0 , 0 , false )
130- err = orch .CreateSnapshot (ctx , vmID , snap , false )
146+ snap := snapshotting .NewSnapshot (snapId , "/fccd/snapshots" , TestImageName , 256 , 1 , * isSparseSnaps )
147+ err = orch .CreateSnapshot (ctx , vmID , snap , * isFullLocal )
131148 require .NoError (t , err , "Failed to create snapshot of VM" )
132149
133- _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , false )
150+ if * isFullLocal {
151+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
152+ require .NoError (t , err , "Failed to stop VM" )
153+ } else {
154+ err = orch .OffloadVM (ctx , vmID , * isFullLocal )
155+ require .NoError (t , err , "Failed to offload VM" )
156+ }
157+
158+ _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , * isFullLocal )
134159 require .NoError (t , err , "Failed to load snapshot of VM" )
135160
136161 _ , err = orch .ResumeVM (ctx , vmID )
137162 require .NoError (t , err , "Failed to resume VM" )
138163
139- _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , false )
164+ if * isFullLocal {
165+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
166+ require .NoError (t , err , "Failed to stop VM" )
167+ } else {
168+ err = orch .OffloadVM (ctx , vmID , * isFullLocal )
169+ require .NoError (t , err , "Failed to offload VM" )
170+ }
171+
172+ _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , * isFullLocal )
140173 require .NoError (t , err , "Failed to load snapshot of VM" )
141174
142175 _ , err = orch .ResumeVM (ctx , vmID )
143176 require .NoError (t , err , "Failed to resume VM, " )
144177
178+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
179+ require .NoError (t , err , "Failed to stop VM" )
180+
145181 orch .Cleanup ()
146182}
147183
@@ -185,23 +221,37 @@ func TestParallelSnapLoad(t *testing.T) {
185221 go func (i int ) {
186222 defer vmGroup .Done ()
187223 vmID := fmt .Sprintf ("%d" , i + vmIDBase )
188- revisionID := fmt .Sprintf ("myrev-%d" , i + vmIDBase )
224+ snapId := vmID
225+ if * isFullLocal {
226+ snapId = fmt .Sprintf ("myrev-%d" , i + vmIDBase )
227+ }
189228
190- _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , false , false )
229+ _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , * isSparseSnaps , * isFullLocal )
191230 require .NoError (t , err , "Failed to start VM, " + vmID )
192231
193232 err = orch .PauseVM (ctx , vmID )
194233 require .NoError (t , err , "Failed to pause VM, " + vmID )
195234
196- snap := snapshotting .NewSnapshot (revisionID , "/fccd/snapshots" , TestImageName , 0 , 0 , false )
197- err = orch .CreateSnapshot (ctx , vmID , snap , false )
235+ snap := snapshotting .NewSnapshot (snapId , "/fccd/snapshots" , TestImageName , 256 , 1 , * isSparseSnaps )
236+ err = orch .CreateSnapshot (ctx , vmID , snap , * isFullLocal )
198237 require .NoError (t , err , "Failed to create snapshot of VM, " + vmID )
199238
200- _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , false )
239+ if * isFullLocal {
240+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
241+ require .NoError (t , err , "Failed to stop VM, " + vmID )
242+ } else {
243+ err = orch .OffloadVM (ctx , vmID , * isFullLocal )
244+ require .NoError (t , err , "Failed to offload VM, " + vmID )
245+ }
246+
247+ _ , _ , err = orch .LoadSnapshot (ctx , vmID , snap , * isFullLocal )
201248 require .NoError (t , err , "Failed to load snapshot of VM, " + vmID )
202249
203250 _ , err = orch .ResumeVM (ctx , vmID )
204251 require .NoError (t , err , "Failed to resume VM, " + vmID )
252+
253+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
254+ require .NoError (t , err , "Failed to stop VM, " + vmID )
205255 }(i )
206256 }
207257 vmGroup .Wait ()
@@ -250,7 +300,7 @@ func TestParallelPhasedSnapLoad(t *testing.T) {
250300 go func (i int ) {
251301 defer vmGroup .Done ()
252302 vmID := fmt .Sprintf ("%d" , i + vmIDBase )
253- _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , false , false )
303+ _ , _ , err := orch .StartVM (ctx , vmID , TestImageName , 256 , 1 , * isSparseSnaps , * isFullLocal )
254304 require .NoError (t , err , "Failed to start VM, " + vmID )
255305 }(i )
256306 }
@@ -278,9 +328,12 @@ func TestParallelPhasedSnapLoad(t *testing.T) {
278328 go func (i int ) {
279329 defer vmGroup .Done ()
280330 vmID := fmt .Sprintf ("%d" , i + vmIDBase )
281- revisionID := fmt .Sprintf ("myrev-%d" , i + vmIDBase )
282- snap := snapshotting .NewSnapshot (revisionID , "/fccd/snapshots" , TestImageName , 0 , 0 , false )
283- err = orch .CreateSnapshot (ctx , vmID , snap , false )
331+ snapId := vmID
332+ if * isFullLocal {
333+ snapId = fmt .Sprintf ("myrev-%d" , i + vmIDBase )
334+ }
335+ snap := snapshotting .NewSnapshot (snapId , "/fccd/snapshots" , TestImageName , 256 , 1 , * isSparseSnaps )
336+ err = orch .CreateSnapshot (ctx , vmID , snap , * isFullLocal )
284337 require .NoError (t , err , "Failed to create snapshot of VM, " + vmID )
285338 }(i )
286339 }
@@ -294,9 +347,31 @@ func TestParallelPhasedSnapLoad(t *testing.T) {
294347 go func (i int ) {
295348 defer vmGroup .Done ()
296349 vmID := fmt .Sprintf ("%d" , i + vmIDBase )
297- revisionID := fmt .Sprintf ("myrev-%d" , i + vmIDBase )
298- snap := snapshotting .NewSnapshot (revisionID , "/fccd/snapshots" , TestImageName , 0 , 0 , false )
299- _ , _ , err := orch .LoadSnapshot (ctx , vmID , snap , false )
350+ if * isFullLocal {
351+ err = orch .StopSingleVM (ctx , vmID , * isFullLocal )
352+ require .NoError (t , err , "Failed to stop VM, " + vmID )
353+ } else {
354+ err = orch .OffloadVM (ctx , vmID , * isFullLocal )
355+ require .NoError (t , err , "Failed to offload VM, " + vmID )
356+ }
357+ }(i )
358+ }
359+ vmGroup .Wait ()
360+ }
361+
362+ {
363+ var vmGroup sync.WaitGroup
364+ for i := 0 ; i < vmNum ; i ++ {
365+ vmGroup .Add (1 )
366+ go func (i int ) {
367+ defer vmGroup .Done ()
368+ vmID := fmt .Sprintf ("%d" , i + vmIDBase )
369+ snapId := vmID
370+ if * isFullLocal {
371+ snapId = fmt .Sprintf ("myrev-%d" , i + vmIDBase )
372+ }
373+ snap := snapshotting .NewSnapshot (snapId , "/fccd/snapshots" , TestImageName , 256 , 1 , * isSparseSnaps )
374+ _ , _ , err := orch .LoadSnapshot (ctx , vmID , snap , * isFullLocal )
300375 require .NoError (t , err , "Failed to load snapshot of VM, " + vmID )
301376 }(i )
302377 }
@@ -317,5 +392,19 @@ func TestParallelPhasedSnapLoad(t *testing.T) {
317392 vmGroup .Wait ()
318393 }
319394
395+ {
396+ var vmGroup sync.WaitGroup
397+ for i := 0 ; i < vmNum ; i ++ {
398+ vmGroup .Add (1 )
399+ go func (i int ) {
400+ defer vmGroup .Done ()
401+ vmID := fmt .Sprintf ("%d" , i + vmIDBase )
402+ err := orch .StopSingleVM (ctx , vmID , * isFullLocal )
403+ require .NoError (t , err , "Failed to stop VM, " + vmID )
404+ }(i )
405+ }
406+ vmGroup .Wait ()
407+ }
408+
320409 orch .Cleanup ()
321410}
0 commit comments