@@ -802,17 +802,23 @@ async def _test_018_preload_global(self):
802802 self .log_preload ()
803803 logger .info ("end" )
804804
805- def test_019_preload_refresh (self ):
806- """Refresh preload on volume change."""
807- self .loop .run_until_complete (self ._test_019_preload_refresh ())
805+ def test_019_preload_discard_outdated_volumes (self ):
806+ """Discard preload if volumes are outdated compared to its templates."""
807+ self .loop .run_until_complete (
808+ self ._test_019_preload_discard_outdated_volumes ()
809+ )
808810
809- async def _test_019_preload_refresh (self ):
811+ async def _test_019_preload_discard_outdated_volumes (self ):
810812 logger .info ("start" )
811813 self .log_preload ()
812814 preload_max = 1
813815
814816 self .disp_base .features ["preload-dispvm-max" ] = str (preload_max )
815817 for qube in [self .disp_base , self .disp_base .template ]:
818+ logger .info (
819+ "discard because of outdated volume originating from %s" ,
820+ qube .name ,
821+ )
816822 await self .wait_preload (preload_max )
817823 old_preload = self .disp_base .get_feat_preload ()
818824 await qube .start ()
@@ -832,25 +838,47 @@ async def _test_019_preload_refresh(self):
832838 self .log_preload ()
833839 logger .info ("end" )
834840
835- def test_020_preload_discard_outdated (self ):
836- """Discard preload if properties differ from the disposable template."""
837- self .loop .run_until_complete (self ._test_020_preload_discard_outdated ())
841+ def test_020_preload_discard_outdated_volume_size (self ):
842+ """Discard preload if private size differs with disposable template."""
843+ self .loop .run_until_complete (
844+ self ._test_020_preload_discard_outdated_volume_size ()
845+ )
838846
839- async def _test_020_preload_discard_outdated (self ):
847+ async def _test_020_preload_discard_outdated_volume_size (self ):
848+ logger .info ("start" )
849+ self .log_preload ()
850+ preload_max = 1
851+ self .disp_base .features ["preload-dispvm-max" ] = str (preload_max )
852+ await self .wait_preload (preload_max )
853+ preload_dispvm = self .disp_base .get_feat_preload ()
854+ old_size = self .disp_base .volume_config ["private" ]["size" ]
855+ size = int (old_size ) + 512
856+ self .disp_base .storage .resize ("private" , size )
857+ self .app .save ()
858+ dispvm = await asyncio .wait_for (
859+ qubes .vm .dispvm .DispVM .from_appvm (self .disp_base ), 30
860+ )
861+ self .assertNotIn (dispvm .name , preload_dispvm )
862+ logger .info ("end" )
863+
864+ def test_021_preload_discard_outdated_setting (self ):
865+ """Discard preload if properties differ with the disposable template."""
866+ self .loop .run_until_complete (
867+ self ._test_020_preload_discard_outdated_setting ()
868+ )
869+
870+ async def _test_021_preload_discard_outdated_setting (self ):
840871 logger .info ("start" )
841872 self .log_preload ()
842873 preload_max = 1
843874 self .disp_base .features ["preload-dispvm-max" ] = str (preload_max )
844875 await self .wait_preload (preload_max )
845876 preload_dispvm = self .disp_base .get_feat_preload ()
846877 self .disp_base .netvm = None
847- try :
848- dispvm = await asyncio .wait_for (
849- qubes .vm .dispvm .DispVM .from_appvm (self .disp_base ), 30
850- )
851- self .assertNotIn (dispvm .name , preload_dispvm )
852- finally :
853- await dispvm .cleanup ()
878+ dispvm = await asyncio .wait_for (
879+ qubes .vm .dispvm .DispVM .from_appvm (self .disp_base ), 30
880+ )
881+ self .assertNotIn (dispvm .name , preload_dispvm )
854882 logger .info ("end" )
855883
856884 @unittest .skipUnless (which ("xdotool" ), "xdotool not installed" )
0 commit comments