@@ -47,7 +47,7 @@ func testCustomizeImageVerityHelper(t *testing.T, testName string, imageType bas
4747 return
4848 }
4949
50- verityRootVerity (t , imageType , imageVersion , buildDir , outImageFilePath )
50+ verifyRootVerity (t , imageType , imageVersion , buildDir , outImageFilePath )
5151
5252 // Recustomize the image.
5353 err = CustomizeImageWithConfigFile (buildDir , configFile , outImageFilePath , nil , outImageFilePath , "raw" ,
@@ -56,10 +56,10 @@ func testCustomizeImageVerityHelper(t *testing.T, testName string, imageType bas
5656 return
5757 }
5858
59- verityRootVerity (t , imageType , imageVersion , buildDir , outImageFilePath )
59+ verifyRootVerity (t , imageType , imageVersion , buildDir , outImageFilePath )
6060}
6161
62- func verityRootVerity (t * testing.T , imageType baseImageType , imageVersion baseImageVersion , buildDir string ,
62+ func verifyRootVerity (t * testing.T , imageType baseImageType , imageVersion baseImageVersion , buildDir string ,
6363 outImageFilePath string ,
6464) {
6565 // Connect to customized image.
@@ -449,3 +449,83 @@ func testCustomizeImageVerityUsr2StageHelper(t *testing.T, testName string, imag
449449
450450 verityUsrVerity (t , imageType , imageVersion , buildDir , stage2FilePath , "panic-on-corruption" )
451451}
452+
453+ func TestCustomizeImageVerityReinitRoot (t * testing.T ) {
454+ for _ , version := range supportedAzureLinuxVersions {
455+ t .Run (string (version ), func (t * testing.T ) {
456+ testCustomizeImageVerityReinitRootHelper (t , "TestCustomizeImageVerityReinitRoot" + string (version ),
457+ baseImageTypeCoreEfi , version )
458+ })
459+ }
460+ }
461+
462+ func testCustomizeImageVerityReinitRootHelper (t * testing.T , testName string , imageType baseImageType ,
463+ imageVersion baseImageVersion ,
464+ ) {
465+ baseImage := checkSkipForCustomizeImage (t , imageType , imageVersion )
466+
467+ testTempDir := filepath .Join (tmpDir , testName )
468+ buildDir := filepath .Join (testTempDir , "build" )
469+ stage1ConfigFile := filepath .Join (testDir , "verity-config.yaml" )
470+ stage2ConfigFile := filepath .Join (testDir , "verity-reinit.yaml" )
471+ stage1FilePath := filepath .Join (testTempDir , "image.raw" )
472+ stage2FilePath := filepath .Join (testTempDir , "image.raw" )
473+
474+ // Stage 1: Initialize verity.
475+ err := CustomizeImageWithConfigFile (buildDir , stage1ConfigFile , baseImage , nil , stage1FilePath , "raw" ,
476+ "" /*outputPXEArtifactsDir*/ , true /*useBaseImageRpmRepos*/ )
477+ if ! assert .NoError (t , err ) {
478+ return
479+ }
480+
481+ verifyRootVerity (t , imageType , imageVersion , buildDir , stage2FilePath )
482+
483+ // Stage 2: Reinitialize verity.
484+ err = CustomizeImageWithConfigFile (buildDir , stage2ConfigFile , stage1FilePath , nil , stage2FilePath , "raw" ,
485+ "" /*outputPXEArtifactsDir*/ , true /*useBaseImageRpmRepos*/ )
486+ if ! assert .NoError (t , err ) {
487+ return
488+ }
489+
490+ verifyRootVerity (t , imageType , imageVersion , buildDir , stage2FilePath )
491+ }
492+
493+ func TestCustomizeImageVerityReinitUsr (t * testing.T ) {
494+ for _ , version := range supportedAzureLinuxVersions {
495+ t .Run (string (version ), func (t * testing.T ) {
496+ testCustomizeImageVerityReinitUsrHelper (t , "TestCustomizeImageVerityReinitUsr" + string (version ),
497+ baseImageTypeCoreEfi , version )
498+ })
499+ }
500+ }
501+
502+ func testCustomizeImageVerityReinitUsrHelper (t * testing.T , testName string , imageType baseImageType ,
503+ imageVersion baseImageVersion ,
504+ ) {
505+ baseImage := checkSkipForCustomizeImage (t , imageType , imageVersion )
506+
507+ testTempDir := filepath .Join (tmpDir , testName )
508+ buildDir := filepath .Join (testTempDir , "build" )
509+ stage1ConfigFile := filepath .Join (testDir , "verity-usr-config.yaml" )
510+ stage2ConfigFile := filepath .Join (testDir , "verity-reinit.yaml" )
511+ stage1FilePath := filepath .Join (testTempDir , "image.raw" )
512+ stage2FilePath := filepath .Join (testTempDir , "image.raw" )
513+
514+ // Stage 1: Initialize verity.
515+ err := CustomizeImageWithConfigFile (buildDir , stage1ConfigFile , baseImage , nil , stage1FilePath , "raw" ,
516+ "" /*outputPXEArtifactsDir*/ , true /*useBaseImageRpmRepos*/ )
517+ if ! assert .NoError (t , err ) {
518+ return
519+ }
520+
521+ verityUsrVerity (t , imageType , imageVersion , buildDir , stage1FilePath , "" )
522+
523+ // Stage 2: Reinitialize verity.
524+ err = CustomizeImageWithConfigFile (buildDir , stage2ConfigFile , stage1FilePath , nil , stage2FilePath , "raw" ,
525+ "" /*outputPXEArtifactsDir*/ , true /*useBaseImageRpmRepos*/ )
526+ if ! assert .NoError (t , err ) {
527+ return
528+ }
529+
530+ verityUsrVerity (t , imageType , imageVersion , buildDir , stage2FilePath , "" )
531+ }
0 commit comments