Loading aconfig/codegen/rust_aconfig_library_test.go +3 −3 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ import ( func TestRustAconfigLibrary(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk, rust.PrepareForIntegrationTestWithRust, android.PrepareForTestWithArchMutator, android.PrepareForTestWithDefaults, android.PrepareForTestWithPrebuilts, Loading Loading @@ -100,7 +100,7 @@ func testRustCodegenModeHelper(t *testing.T, bpMode string, ruleMode string) { t.Helper() result := android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk). rust.PrepareForIntegrationTestWithRust). ExtendWithErrorHandler(android.FixtureExpectsNoErrors). RunTestWithBp(t, fmt.Sprintf(` rust_library { Loading Loading @@ -162,7 +162,7 @@ func testIncorrectRustCodegenModeHelper(t *testing.T, bpMode string, err string) t.Helper() android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk). rust.PrepareForIntegrationTestWithRust). ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(err)). RunTestWithBp(t, fmt.Sprintf(` rust_library { Loading etc/prebuilt_etc_test.go +0 −121 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package etc import ( "fmt" "os" "path/filepath" "testing" Loading @@ -23,7 +22,6 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" "android/soong/snapshot" ) func TestMain(m *testing.M) { Loading @@ -40,18 +38,6 @@ var prepareForPrebuiltEtcTest = android.GroupFixturePreparers( }), ) var prepareForPrebuiltEtcSnapshotTest = android.GroupFixturePreparers( prepareForPrebuiltEtcTest, android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { snapshot.VendorSnapshotImageSingleton.Init(ctx) snapshot.RecoverySnapshotImageSingleton.Init(ctx) }), android.FixtureModifyConfig(func(config android.Config) { config.TestProductVariables.DeviceVndkVersion = proptools.StringPtr("current") config.TestProductVariables.RecoverySnapshotVersion = proptools.StringPtr("current") }), ) func TestPrebuiltEtcVariants(t *testing.T) { result := prepareForPrebuiltEtcTest.RunTestWithBp(t, ` prebuilt_etc { Loading Loading @@ -415,110 +401,3 @@ func TestPrebuiltRFSADirPath(t *testing.T) { }) } } func checkIfSnapshotTaken(t *testing.T, result *android.TestResult, image string, moduleName string) { checkIfSnapshotExistAsExpected(t, result, image, moduleName, true) } func checkIfSnapshotNotTaken(t *testing.T, result *android.TestResult, image string, moduleName string) { checkIfSnapshotExistAsExpected(t, result, image, moduleName, false) } func checkIfSnapshotExistAsExpected(t *testing.T, result *android.TestResult, image string, moduleName string, expectToExist bool) { snapshotSingleton := result.SingletonForTests(image + "-snapshot") archType := "arm64" archVariant := "armv8-a" archDir := fmt.Sprintf("arch-%s", archType) snapshotDir := fmt.Sprintf("%s-snapshot", image) snapshotVariantPath := filepath.Join(snapshotDir, archType) outputDir := filepath.Join(snapshotVariantPath, archDir, "etc") imageVariant := "" if image == "recovery" { imageVariant = "recovery_" } mod := result.ModuleForTests(moduleName, fmt.Sprintf("android_%s%s_%s", imageVariant, archType, archVariant)) outputFiles := mod.OutputFiles(t, "") if len(outputFiles) != 1 { t.Errorf("%q must have single output\n", moduleName) return } snapshotPath := filepath.Join(outputDir, moduleName) if expectToExist { out := snapshotSingleton.Output(snapshotPath) if out.Input.String() != outputFiles[0].String() { t.Errorf("The input of snapshot %q must be %q, but %q", "prebuilt_vendor", out.Input.String(), outputFiles[0]) } snapshotJsonPath := snapshotPath + ".json" if snapshotSingleton.MaybeOutput(snapshotJsonPath).Rule == nil { t.Errorf("%q expected but not found", snapshotJsonPath) } } else { out := snapshotSingleton.MaybeOutput(snapshotPath) if out.Rule != nil { t.Errorf("There must be no rule for module %q output file %q", moduleName, outputFiles[0]) } } } func TestPrebuiltTakeSnapshot(t *testing.T) { var testBp = ` prebuilt_etc { name: "prebuilt_vendor", src: "foo.conf", vendor: true, } prebuilt_etc { name: "prebuilt_vendor_indirect", src: "foo.conf", vendor: true, } prebuilt_etc { name: "prebuilt_recovery", src: "bar.conf", recovery: true, } prebuilt_etc { name: "prebuilt_recovery_indirect", src: "bar.conf", recovery: true, } ` t.Run("prebuilt: vendor and recovery snapshot", func(t *testing.T) { result := prepareForPrebuiltEtcSnapshotTest.RunTestWithBp(t, testBp) checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor") checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor_indirect") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery_indirect") }) t.Run("prebuilt: directed snapshot", func(t *testing.T) { prepareForPrebuiltEtcDirectedSnapshotTest := android.GroupFixturePreparers( prepareForPrebuiltEtcSnapshotTest, android.FixtureModifyConfig(func(config android.Config) { config.TestProductVariables.DirectedVendorSnapshot = true config.TestProductVariables.VendorSnapshotModules = make(map[string]bool) config.TestProductVariables.VendorSnapshotModules["prebuilt_vendor"] = true config.TestProductVariables.DirectedRecoverySnapshot = true config.TestProductVariables.RecoverySnapshotModules = make(map[string]bool) config.TestProductVariables.RecoverySnapshotModules["prebuilt_recovery"] = true }), ) result := prepareForPrebuiltEtcDirectedSnapshotTest.RunTestWithBp(t, testBp) checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor") checkIfSnapshotNotTaken(t, result, "vendor", "prebuilt_vendor_indirect") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery") checkIfSnapshotNotTaken(t, result, "recovery", "prebuilt_recovery_indirect") }) } rust/image_test.go +8 −8 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import ( // Test that cc modules can link against vendor_available rust_ffi_static libraries. func TestVendorLinkage(t *testing.T) { ctx := testRustVndk(t, ` ctx := testRust(t, ` cc_binary { name: "fizz_vendor", static_libs: ["libfoo_vendor"], Loading @@ -38,7 +38,7 @@ func TestVendorLinkage(t *testing.T) { } `) vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_vendor.29_arm64_armv8-a").Module().(*cc.Module) vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_vendor_arm64_armv8-a").Module().(*cc.Module) if !android.InList("libfoo_vendor.vendor", vendorBinary.Properties.AndroidMkStaticLibs) { t.Errorf("vendorBinary should have a dependency on libfoo_vendor: %#v", vendorBinary.Properties.AndroidMkStaticLibs) Loading @@ -46,8 +46,8 @@ func TestVendorLinkage(t *testing.T) { } // Test that variants which use the vndk emit the appropriate cfg flag. func TestImageVndkCfgFlag(t *testing.T) { ctx := testRustVndk(t, ` func TestImageCfgFlag(t *testing.T) { ctx := testRust(t, ` rust_ffi_static { name: "libfoo", crate_name: "foo", Loading @@ -57,7 +57,7 @@ func TestImageVndkCfgFlag(t *testing.T) { } `) vendor := ctx.ModuleForTests("libfoo", "android_vendor.29_arm64_armv8-a_static").Rule("rustc") vendor := ctx.ModuleForTests("libfoo", "android_vendor_arm64_armv8-a_static").Rule("rustc") if !strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_vndk'") { t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) Loading @@ -69,7 +69,7 @@ func TestImageVndkCfgFlag(t *testing.T) { t.Errorf("unexpected \"--cfg 'android_product'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) } product := ctx.ModuleForTests("libfoo", "android_product.29_arm64_armv8-a_static").Rule("rustc") product := ctx.ModuleForTests("libfoo", "android_product_arm64_armv8-a_static").Rule("rustc") if !strings.Contains(product.Args["rustcFlags"], "--cfg 'android_vndk'") { t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo product variant, rustcFlags: %#v", product.Args["rustcFlags"]) } Loading @@ -95,7 +95,7 @@ func TestImageVndkCfgFlag(t *testing.T) { // Test that cc modules can link against vendor_ramdisk_available rust_ffi_static libraries. func TestVendorRamdiskLinkage(t *testing.T) { ctx := testRustVndk(t, ` ctx := testRust(t, ` cc_library_static { name: "libcc_vendor_ramdisk", static_libs: ["libfoo_vendor_ramdisk"], Loading @@ -119,7 +119,7 @@ func TestVendorRamdiskLinkage(t *testing.T) { // Test that prebuilt libraries cannot be made vendor available. func TestForbiddenVendorLinkage(t *testing.T) { testRustVndkError(t, "Rust prebuilt modules not supported for non-system images.", ` testRustError(t, "Rust prebuilt modules not supported for non-system images.", ` rust_prebuilt_library { name: "librust_prebuilt", crate_name: "rust_prebuilt", Loading rust/rust_test.go +7 −71 Original line number Diff line number Diff line Loading @@ -37,11 +37,7 @@ var prepareForRustTest = android.GroupFixturePreparers( genrule.PrepareForTestWithGenRuleBuildComponents, PrepareForTestWithRustIncludeVndk, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr("current") variables.Platform_vndk_version = StringPtr("29") }), PrepareForIntegrationTestWithRust, ) var rustMockedFiles = android.MockFS{ Loading Loading @@ -73,60 +69,21 @@ func testRust(t *testing.T, bp string) *android.TestContext { return result.TestContext } func testRustVndk(t *testing.T, bp string) *android.TestContext { return testRustVndkFs(t, bp, rustMockedFiles) } const ( sharedVendorVariant = "android_vendor.29_arm64_armv8-a_shared" rlibVendorVariant = "android_vendor.29_arm64_armv8-a_rlib_rlib-std" rlibDylibStdVendorVariant = "android_vendor.29_arm64_armv8-a_rlib_rlib-std" dylibVendorVariant = "android_vendor.29_arm64_armv8-a_dylib" sharedVendorVariant = "android_vendor_arm64_armv8-a_shared" rlibVendorVariant = "android_vendor_arm64_armv8-a_rlib_rlib-std" rlibDylibStdVendorVariant = "android_vendor_arm64_armv8-a_rlib_rlib-std" dylibVendorVariant = "android_vendor_arm64_armv8-a_dylib" sharedRecoveryVariant = "android_recovery_arm64_armv8-a_shared" rlibRecoveryVariant = "android_recovery_arm64_armv8-a_rlib_dylib-std" rlibRlibStdRecoveryVariant = "android_recovery_arm64_armv8-a_rlib_rlib-std" dylibRecoveryVariant = "android_recovery_arm64_armv8-a_dylib" binaryCoreVariant = "android_arm64_armv8-a" binaryVendorVariant = "android_vendor.29_arm64_armv8-a" binaryProductVariant = "android_product.29_arm64_armv8-a" binaryVendorVariant = "android_vendor_arm64_armv8-a" binaryProductVariant = "android_product_arm64_armv8-a" binaryRecoveryVariant = "android_recovery_arm64_armv8-a" ) func testRustVndkFs(t *testing.T, bp string, fs android.MockFS) *android.TestContext { return testRustVndkFsVersions(t, bp, fs, "current", "current", "29") } func testRustVndkFsVersions(t *testing.T, bp string, fs android.MockFS, device_version, product_version, vndk_version string) *android.TestContext { skipTestIfOsNotSupported(t) result := android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr(device_version) variables.Platform_vndk_version = StringPtr(vndk_version) }, ), ).RunTestWithBp(t, bp) return result.TestContext } func testRustRecoveryFsVersions(t *testing.T, bp string, fs android.MockFS, device_version, vndk_version, recovery_version string) *android.TestContext { skipTestIfOsNotSupported(t) result := android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr(device_version) variables.RecoverySnapshotVersion = StringPtr(recovery_version) variables.Platform_vndk_version = StringPtr(vndk_version) }, ), ).RunTestWithBp(t, bp) return result.TestContext } // testRustCov returns a TestContext in which a basic environment has been // setup. This environment explicitly enables coverage. func testRustCov(t *testing.T, bp string) *android.TestContext { Loading Loading @@ -158,27 +115,6 @@ func testRustError(t *testing.T, pattern string, bp string) { RunTestWithBp(t, bp) } // testRustVndkError is similar to testRustError, but can be used to test VNDK-related errors. func testRustVndkError(t *testing.T, pattern string, bp string) { testRustVndkFsError(t, pattern, bp, rustMockedFiles) } func testRustVndkFsError(t *testing.T, pattern string, bp string, fs android.MockFS) { skipTestIfOsNotSupported(t) android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr("current") variables.Platform_vndk_version = StringPtr("VER") }, ), ). ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(pattern)). RunTestWithBp(t, bp) } // testRustCtx is used to build a particular test environment. Unless your // tests requires a specific setup, prefer the wrapping functions: testRust, // testRustCov or testRustError. Loading rust/testing.go +0 −4 Original line number Diff line number Diff line Loading @@ -43,10 +43,6 @@ var PrepareForTestWithRustDefaultModules = android.GroupFixturePreparers( // Preparer that will allow use of all rust modules fully. var PrepareForIntegrationTestWithRust = android.GroupFixturePreparers( PrepareForTestWithRustDefaultModules, ) var PrepareForTestWithRustIncludeVndk = android.GroupFixturePreparers( PrepareForIntegrationTestWithRust, cc.PrepareForIntegrationTestWithCc, ) Loading Loading
aconfig/codegen/rust_aconfig_library_test.go +3 −3 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ import ( func TestRustAconfigLibrary(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk, rust.PrepareForIntegrationTestWithRust, android.PrepareForTestWithArchMutator, android.PrepareForTestWithDefaults, android.PrepareForTestWithPrebuilts, Loading Loading @@ -100,7 +100,7 @@ func testRustCodegenModeHelper(t *testing.T, bpMode string, ruleMode string) { t.Helper() result := android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk). rust.PrepareForIntegrationTestWithRust). ExtendWithErrorHandler(android.FixtureExpectsNoErrors). RunTestWithBp(t, fmt.Sprintf(` rust_library { Loading Loading @@ -162,7 +162,7 @@ func testIncorrectRustCodegenModeHelper(t *testing.T, bpMode string, err string) t.Helper() android.GroupFixturePreparers( PrepareForTestWithAconfigBuildComponents, rust.PrepareForTestWithRustIncludeVndk). rust.PrepareForIntegrationTestWithRust). ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(err)). RunTestWithBp(t, fmt.Sprintf(` rust_library { Loading
etc/prebuilt_etc_test.go +0 −121 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package etc import ( "fmt" "os" "path/filepath" "testing" Loading @@ -23,7 +22,6 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" "android/soong/snapshot" ) func TestMain(m *testing.M) { Loading @@ -40,18 +38,6 @@ var prepareForPrebuiltEtcTest = android.GroupFixturePreparers( }), ) var prepareForPrebuiltEtcSnapshotTest = android.GroupFixturePreparers( prepareForPrebuiltEtcTest, android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { snapshot.VendorSnapshotImageSingleton.Init(ctx) snapshot.RecoverySnapshotImageSingleton.Init(ctx) }), android.FixtureModifyConfig(func(config android.Config) { config.TestProductVariables.DeviceVndkVersion = proptools.StringPtr("current") config.TestProductVariables.RecoverySnapshotVersion = proptools.StringPtr("current") }), ) func TestPrebuiltEtcVariants(t *testing.T) { result := prepareForPrebuiltEtcTest.RunTestWithBp(t, ` prebuilt_etc { Loading Loading @@ -415,110 +401,3 @@ func TestPrebuiltRFSADirPath(t *testing.T) { }) } } func checkIfSnapshotTaken(t *testing.T, result *android.TestResult, image string, moduleName string) { checkIfSnapshotExistAsExpected(t, result, image, moduleName, true) } func checkIfSnapshotNotTaken(t *testing.T, result *android.TestResult, image string, moduleName string) { checkIfSnapshotExistAsExpected(t, result, image, moduleName, false) } func checkIfSnapshotExistAsExpected(t *testing.T, result *android.TestResult, image string, moduleName string, expectToExist bool) { snapshotSingleton := result.SingletonForTests(image + "-snapshot") archType := "arm64" archVariant := "armv8-a" archDir := fmt.Sprintf("arch-%s", archType) snapshotDir := fmt.Sprintf("%s-snapshot", image) snapshotVariantPath := filepath.Join(snapshotDir, archType) outputDir := filepath.Join(snapshotVariantPath, archDir, "etc") imageVariant := "" if image == "recovery" { imageVariant = "recovery_" } mod := result.ModuleForTests(moduleName, fmt.Sprintf("android_%s%s_%s", imageVariant, archType, archVariant)) outputFiles := mod.OutputFiles(t, "") if len(outputFiles) != 1 { t.Errorf("%q must have single output\n", moduleName) return } snapshotPath := filepath.Join(outputDir, moduleName) if expectToExist { out := snapshotSingleton.Output(snapshotPath) if out.Input.String() != outputFiles[0].String() { t.Errorf("The input of snapshot %q must be %q, but %q", "prebuilt_vendor", out.Input.String(), outputFiles[0]) } snapshotJsonPath := snapshotPath + ".json" if snapshotSingleton.MaybeOutput(snapshotJsonPath).Rule == nil { t.Errorf("%q expected but not found", snapshotJsonPath) } } else { out := snapshotSingleton.MaybeOutput(snapshotPath) if out.Rule != nil { t.Errorf("There must be no rule for module %q output file %q", moduleName, outputFiles[0]) } } } func TestPrebuiltTakeSnapshot(t *testing.T) { var testBp = ` prebuilt_etc { name: "prebuilt_vendor", src: "foo.conf", vendor: true, } prebuilt_etc { name: "prebuilt_vendor_indirect", src: "foo.conf", vendor: true, } prebuilt_etc { name: "prebuilt_recovery", src: "bar.conf", recovery: true, } prebuilt_etc { name: "prebuilt_recovery_indirect", src: "bar.conf", recovery: true, } ` t.Run("prebuilt: vendor and recovery snapshot", func(t *testing.T) { result := prepareForPrebuiltEtcSnapshotTest.RunTestWithBp(t, testBp) checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor") checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor_indirect") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery_indirect") }) t.Run("prebuilt: directed snapshot", func(t *testing.T) { prepareForPrebuiltEtcDirectedSnapshotTest := android.GroupFixturePreparers( prepareForPrebuiltEtcSnapshotTest, android.FixtureModifyConfig(func(config android.Config) { config.TestProductVariables.DirectedVendorSnapshot = true config.TestProductVariables.VendorSnapshotModules = make(map[string]bool) config.TestProductVariables.VendorSnapshotModules["prebuilt_vendor"] = true config.TestProductVariables.DirectedRecoverySnapshot = true config.TestProductVariables.RecoverySnapshotModules = make(map[string]bool) config.TestProductVariables.RecoverySnapshotModules["prebuilt_recovery"] = true }), ) result := prepareForPrebuiltEtcDirectedSnapshotTest.RunTestWithBp(t, testBp) checkIfSnapshotTaken(t, result, "vendor", "prebuilt_vendor") checkIfSnapshotNotTaken(t, result, "vendor", "prebuilt_vendor_indirect") checkIfSnapshotTaken(t, result, "recovery", "prebuilt_recovery") checkIfSnapshotNotTaken(t, result, "recovery", "prebuilt_recovery_indirect") }) }
rust/image_test.go +8 −8 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import ( // Test that cc modules can link against vendor_available rust_ffi_static libraries. func TestVendorLinkage(t *testing.T) { ctx := testRustVndk(t, ` ctx := testRust(t, ` cc_binary { name: "fizz_vendor", static_libs: ["libfoo_vendor"], Loading @@ -38,7 +38,7 @@ func TestVendorLinkage(t *testing.T) { } `) vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_vendor.29_arm64_armv8-a").Module().(*cc.Module) vendorBinary := ctx.ModuleForTests("fizz_vendor", "android_vendor_arm64_armv8-a").Module().(*cc.Module) if !android.InList("libfoo_vendor.vendor", vendorBinary.Properties.AndroidMkStaticLibs) { t.Errorf("vendorBinary should have a dependency on libfoo_vendor: %#v", vendorBinary.Properties.AndroidMkStaticLibs) Loading @@ -46,8 +46,8 @@ func TestVendorLinkage(t *testing.T) { } // Test that variants which use the vndk emit the appropriate cfg flag. func TestImageVndkCfgFlag(t *testing.T) { ctx := testRustVndk(t, ` func TestImageCfgFlag(t *testing.T) { ctx := testRust(t, ` rust_ffi_static { name: "libfoo", crate_name: "foo", Loading @@ -57,7 +57,7 @@ func TestImageVndkCfgFlag(t *testing.T) { } `) vendor := ctx.ModuleForTests("libfoo", "android_vendor.29_arm64_armv8-a_static").Rule("rustc") vendor := ctx.ModuleForTests("libfoo", "android_vendor_arm64_armv8-a_static").Rule("rustc") if !strings.Contains(vendor.Args["rustcFlags"], "--cfg 'android_vndk'") { t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) Loading @@ -69,7 +69,7 @@ func TestImageVndkCfgFlag(t *testing.T) { t.Errorf("unexpected \"--cfg 'android_product'\" for libfoo vendor variant, rustcFlags: %#v", vendor.Args["rustcFlags"]) } product := ctx.ModuleForTests("libfoo", "android_product.29_arm64_armv8-a_static").Rule("rustc") product := ctx.ModuleForTests("libfoo", "android_product_arm64_armv8-a_static").Rule("rustc") if !strings.Contains(product.Args["rustcFlags"], "--cfg 'android_vndk'") { t.Errorf("missing \"--cfg 'android_vndk'\" for libfoo product variant, rustcFlags: %#v", product.Args["rustcFlags"]) } Loading @@ -95,7 +95,7 @@ func TestImageVndkCfgFlag(t *testing.T) { // Test that cc modules can link against vendor_ramdisk_available rust_ffi_static libraries. func TestVendorRamdiskLinkage(t *testing.T) { ctx := testRustVndk(t, ` ctx := testRust(t, ` cc_library_static { name: "libcc_vendor_ramdisk", static_libs: ["libfoo_vendor_ramdisk"], Loading @@ -119,7 +119,7 @@ func TestVendorRamdiskLinkage(t *testing.T) { // Test that prebuilt libraries cannot be made vendor available. func TestForbiddenVendorLinkage(t *testing.T) { testRustVndkError(t, "Rust prebuilt modules not supported for non-system images.", ` testRustError(t, "Rust prebuilt modules not supported for non-system images.", ` rust_prebuilt_library { name: "librust_prebuilt", crate_name: "rust_prebuilt", Loading
rust/rust_test.go +7 −71 Original line number Diff line number Diff line Loading @@ -37,11 +37,7 @@ var prepareForRustTest = android.GroupFixturePreparers( genrule.PrepareForTestWithGenRuleBuildComponents, PrepareForTestWithRustIncludeVndk, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr("current") variables.Platform_vndk_version = StringPtr("29") }), PrepareForIntegrationTestWithRust, ) var rustMockedFiles = android.MockFS{ Loading Loading @@ -73,60 +69,21 @@ func testRust(t *testing.T, bp string) *android.TestContext { return result.TestContext } func testRustVndk(t *testing.T, bp string) *android.TestContext { return testRustVndkFs(t, bp, rustMockedFiles) } const ( sharedVendorVariant = "android_vendor.29_arm64_armv8-a_shared" rlibVendorVariant = "android_vendor.29_arm64_armv8-a_rlib_rlib-std" rlibDylibStdVendorVariant = "android_vendor.29_arm64_armv8-a_rlib_rlib-std" dylibVendorVariant = "android_vendor.29_arm64_armv8-a_dylib" sharedVendorVariant = "android_vendor_arm64_armv8-a_shared" rlibVendorVariant = "android_vendor_arm64_armv8-a_rlib_rlib-std" rlibDylibStdVendorVariant = "android_vendor_arm64_armv8-a_rlib_rlib-std" dylibVendorVariant = "android_vendor_arm64_armv8-a_dylib" sharedRecoveryVariant = "android_recovery_arm64_armv8-a_shared" rlibRecoveryVariant = "android_recovery_arm64_armv8-a_rlib_dylib-std" rlibRlibStdRecoveryVariant = "android_recovery_arm64_armv8-a_rlib_rlib-std" dylibRecoveryVariant = "android_recovery_arm64_armv8-a_dylib" binaryCoreVariant = "android_arm64_armv8-a" binaryVendorVariant = "android_vendor.29_arm64_armv8-a" binaryProductVariant = "android_product.29_arm64_armv8-a" binaryVendorVariant = "android_vendor_arm64_armv8-a" binaryProductVariant = "android_product_arm64_armv8-a" binaryRecoveryVariant = "android_recovery_arm64_armv8-a" ) func testRustVndkFs(t *testing.T, bp string, fs android.MockFS) *android.TestContext { return testRustVndkFsVersions(t, bp, fs, "current", "current", "29") } func testRustVndkFsVersions(t *testing.T, bp string, fs android.MockFS, device_version, product_version, vndk_version string) *android.TestContext { skipTestIfOsNotSupported(t) result := android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr(device_version) variables.Platform_vndk_version = StringPtr(vndk_version) }, ), ).RunTestWithBp(t, bp) return result.TestContext } func testRustRecoveryFsVersions(t *testing.T, bp string, fs android.MockFS, device_version, vndk_version, recovery_version string) *android.TestContext { skipTestIfOsNotSupported(t) result := android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr(device_version) variables.RecoverySnapshotVersion = StringPtr(recovery_version) variables.Platform_vndk_version = StringPtr(vndk_version) }, ), ).RunTestWithBp(t, bp) return result.TestContext } // testRustCov returns a TestContext in which a basic environment has been // setup. This environment explicitly enables coverage. func testRustCov(t *testing.T, bp string) *android.TestContext { Loading Loading @@ -158,27 +115,6 @@ func testRustError(t *testing.T, pattern string, bp string) { RunTestWithBp(t, bp) } // testRustVndkError is similar to testRustError, but can be used to test VNDK-related errors. func testRustVndkError(t *testing.T, pattern string, bp string) { testRustVndkFsError(t, pattern, bp, rustMockedFiles) } func testRustVndkFsError(t *testing.T, pattern string, bp string, fs android.MockFS) { skipTestIfOsNotSupported(t) android.GroupFixturePreparers( prepareForRustTest, fs.AddToFixture(), android.FixtureModifyProductVariables( func(variables android.FixtureProductVariables) { variables.DeviceVndkVersion = StringPtr("current") variables.Platform_vndk_version = StringPtr("VER") }, ), ). ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(pattern)). RunTestWithBp(t, bp) } // testRustCtx is used to build a particular test environment. Unless your // tests requires a specific setup, prefer the wrapping functions: testRust, // testRustCov or testRustError. Loading
rust/testing.go +0 −4 Original line number Diff line number Diff line Loading @@ -43,10 +43,6 @@ var PrepareForTestWithRustDefaultModules = android.GroupFixturePreparers( // Preparer that will allow use of all rust modules fully. var PrepareForIntegrationTestWithRust = android.GroupFixturePreparers( PrepareForTestWithRustDefaultModules, ) var PrepareForTestWithRustIncludeVndk = android.GroupFixturePreparers( PrepareForIntegrationTestWithRust, cc.PrepareForIntegrationTestWithCc, ) Loading