Loading sdk/testing.go +21 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import ( "android/soong/cc" "android/soong/genrule" "android/soong/java" "github.com/google/blueprint/proptools" ) // Prepare for running an sdk test with an apex. Loading Loading @@ -81,6 +83,11 @@ var prepareForSdkTest = android.GroupFixturePreparers( } }), // Add a build number file. android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.BuildNumberFile = proptools.StringPtr(BUILD_NUMBER_FILE) }), // Make sure that every test provides all the source files. android.PrepareForTestDisallowNonExistentPaths, android.MockFS{ Loading Loading @@ -143,6 +150,8 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) copyRules := &strings.Builder{} otherCopyRules := &strings.Builder{} snapshotDirPrefix := sdk.builderForTests.snapshotDir.String() + "/" seenBuildNumberFile := false for _, bp := range buildParams { switch bp.Rule.String() { case android.Cp.String(): Loading @@ -152,8 +161,14 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) src := android.NormalizePathForTesting(bp.Input) // We differentiate between copy rules for the snapshot, and copy rules for the install file. if strings.HasPrefix(output.String(), snapshotDirPrefix) { // Don't include the build-number.txt file in the copy rules as that would break lots of // tests, just verify that it is copied here as it should appear in every snapshot. if output.Base() == BUILD_NUMBER_FILE { seenBuildNumberFile = true } else { // Get source relative to build directory. _, _ = fmt.Fprintf(copyRules, "%s -> %s\n", src, dest) } info.snapshotContents = append(info.snapshotContents, dest) } else { _, _ = fmt.Fprintf(otherCopyRules, "%s -> %s\n", src, dest) Loading Loading @@ -189,6 +204,10 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) } } if !seenBuildNumberFile { panic(fmt.Sprintf("Every snapshot must include the %s file", BUILD_NUMBER_FILE)) } info.copyRules = copyRules.String() info.otherCopyRules = otherCopyRules.String() Loading sdk/update.go +7 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,10 @@ func appendUniqueVariants(variants []android.SdkAware, newVariant android.SdkAwa return append(variants, newVariant) } // BUILD_NUMBER_FILE is the name of the file in the snapshot zip that will contain the number of // the build from which the snapshot was produced. const BUILD_NUMBER_FILE = "snapshot-creation-build-number.txt" // SDK directory structure // <sdk_root>/ // Android.bp : definition of a 'sdk' module is here. This is a hand-made one. Loading Loading @@ -479,6 +483,9 @@ be unnecessary as every module in the sdk already has its own licenses property. bp.build(pctx, ctx, nil) // Copy the build number file into the snapshot. builder.CopyToSnapshot(ctx.Config().BuildNumberFile(ctx), BUILD_NUMBER_FILE) filesToZip := builder.filesToZip // zip them all Loading Loading
sdk/testing.go +21 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import ( "android/soong/cc" "android/soong/genrule" "android/soong/java" "github.com/google/blueprint/proptools" ) // Prepare for running an sdk test with an apex. Loading Loading @@ -81,6 +83,11 @@ var prepareForSdkTest = android.GroupFixturePreparers( } }), // Add a build number file. android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.BuildNumberFile = proptools.StringPtr(BUILD_NUMBER_FILE) }), // Make sure that every test provides all the source files. android.PrepareForTestDisallowNonExistentPaths, android.MockFS{ Loading Loading @@ -143,6 +150,8 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) copyRules := &strings.Builder{} otherCopyRules := &strings.Builder{} snapshotDirPrefix := sdk.builderForTests.snapshotDir.String() + "/" seenBuildNumberFile := false for _, bp := range buildParams { switch bp.Rule.String() { case android.Cp.String(): Loading @@ -152,8 +161,14 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) src := android.NormalizePathForTesting(bp.Input) // We differentiate between copy rules for the snapshot, and copy rules for the install file. if strings.HasPrefix(output.String(), snapshotDirPrefix) { // Don't include the build-number.txt file in the copy rules as that would break lots of // tests, just verify that it is copied here as it should appear in every snapshot. if output.Base() == BUILD_NUMBER_FILE { seenBuildNumberFile = true } else { // Get source relative to build directory. _, _ = fmt.Fprintf(copyRules, "%s -> %s\n", src, dest) } info.snapshotContents = append(info.snapshotContents, dest) } else { _, _ = fmt.Fprintf(otherCopyRules, "%s -> %s\n", src, dest) Loading Loading @@ -189,6 +204,10 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk) } } if !seenBuildNumberFile { panic(fmt.Sprintf("Every snapshot must include the %s file", BUILD_NUMBER_FILE)) } info.copyRules = copyRules.String() info.otherCopyRules = otherCopyRules.String() Loading
sdk/update.go +7 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,10 @@ func appendUniqueVariants(variants []android.SdkAware, newVariant android.SdkAwa return append(variants, newVariant) } // BUILD_NUMBER_FILE is the name of the file in the snapshot zip that will contain the number of // the build from which the snapshot was produced. const BUILD_NUMBER_FILE = "snapshot-creation-build-number.txt" // SDK directory structure // <sdk_root>/ // Android.bp : definition of a 'sdk' module is here. This is a hand-made one. Loading Loading @@ -479,6 +483,9 @@ be unnecessary as every module in the sdk already has its own licenses property. bp.build(pctx, ctx, nil) // Copy the build number file into the snapshot. builder.CopyToSnapshot(ctx.Config().BuildNumberFile(ctx), BUILD_NUMBER_FILE) filesToZip := builder.filesToZip // zip them all Loading