Loading apex/apex_test.go +34 −0 Original line number Diff line number Diff line Loading @@ -2665,6 +2665,40 @@ func TestVendorApex_use_vndk_as_stable(t *testing.T) { ensureListContains(t, requireNativeLibs, ":vndk") } func TestProductVariant(t *testing.T) { ctx := testApex(t, ` apex { name: "myapex", key: "myapex.key", updatable: false, product_specific: true, binaries: ["foo"], } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } cc_binary { name: "foo", product_available: true, apex_available: ["myapex"], srcs: ["foo.cpp"], } `, func(fs map[string][]byte, config android.Config) { config.TestProductVariables.ProductVndkVersion = proptools.StringPtr("current") }) cflags := strings.Fields( ctx.ModuleForTests("foo", "android_product.VER_arm64_armv8-a_apex10000").Rule("cc").Args["cFlags"]) ensureListContains(t, cflags, "-D__ANDROID_VNDK__") ensureListContains(t, cflags, "-D__ANDROID_APEX__") ensureListContains(t, cflags, "-D__ANDROID_PRODUCT__") ensureListNotContains(t, cflags, "-D__ANDROID_VENDOR__") } func TestApex_withPrebuiltFirmware(t *testing.T) { testCases := []struct { name string Loading cc/cc_test.go +29 −6 Original line number Diff line number Diff line Loading @@ -2065,6 +2065,7 @@ func TestEnforceProductVndkVersion(t *testing.T) { vendor_available: true, product_available: true, nocrt: true, srcs: ["foo.c"], target: { vendor: { suffix: "-vendor", Loading Loading @@ -2108,12 +2109,7 @@ func TestEnforceProductVndkVersion(t *testing.T) { } ` config := TestConfig(buildDir, android.Android, nil, bp, nil) config.TestProductVariables.DeviceVndkVersion = StringPtr("current") config.TestProductVariables.ProductVndkVersion = StringPtr("current") config.TestProductVariables.Platform_vndk_version = StringPtr("VER") ctx := testCcWithConfig(t, config) ctx := ccFixtureFactory.RunTestWithBp(t, bp).TestContext checkVndkModule(t, ctx, "libvndk", "", false, "", productVariant) checkVndkModule(t, ctx, "libvndk_sp", "", true, "", productVariant) Loading @@ -2123,6 +2119,33 @@ func TestEnforceProductVndkVersion(t *testing.T) { mod_product := ctx.ModuleForTests("libboth_available", productVariant).Module().(*Module) assertString(t, mod_product.outputFile.Path().Base(), "libboth_available-product.so") ensureStringContains := func(t *testing.T, str string, substr string) { t.Helper() if !strings.Contains(str, substr) { t.Errorf("%q is not found in %v", substr, str) } } ensureStringNotContains := func(t *testing.T, str string, substr string) { t.Helper() if strings.Contains(str, substr) { t.Errorf("%q is found in %v", substr, str) } } // _static variant is used since _shared reuses *.o from the static variant vendor_static := ctx.ModuleForTests("libboth_available", strings.Replace(vendorVariant, "_shared", "_static", 1)) product_static := ctx.ModuleForTests("libboth_available", strings.Replace(productVariant, "_shared", "_static", 1)) vendor_cflags := vendor_static.Rule("cc").Args["cFlags"] ensureStringContains(t, vendor_cflags, "-D__ANDROID_VNDK__") ensureStringContains(t, vendor_cflags, "-D__ANDROID_VENDOR__") ensureStringNotContains(t, vendor_cflags, "-D__ANDROID_PRODUCT__") product_cflags := product_static.Rule("cc").Args["cFlags"] ensureStringContains(t, product_cflags, "-D__ANDROID_VNDK__") ensureStringContains(t, product_cflags, "-D__ANDROID_PRODUCT__") ensureStringNotContains(t, product_cflags, "-D__ANDROID_VENDOR__") } func TestEnforceProductVndkVersionErrors(t *testing.T) { Loading cc/compiler.go +5 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps if ctx.useVndk() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_VNDK__") if ctx.inVendor() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_VENDOR__") } else if ctx.inProduct() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_PRODUCT__") } } if ctx.inRecovery() { Loading Loading
apex/apex_test.go +34 −0 Original line number Diff line number Diff line Loading @@ -2665,6 +2665,40 @@ func TestVendorApex_use_vndk_as_stable(t *testing.T) { ensureListContains(t, requireNativeLibs, ":vndk") } func TestProductVariant(t *testing.T) { ctx := testApex(t, ` apex { name: "myapex", key: "myapex.key", updatable: false, product_specific: true, binaries: ["foo"], } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } cc_binary { name: "foo", product_available: true, apex_available: ["myapex"], srcs: ["foo.cpp"], } `, func(fs map[string][]byte, config android.Config) { config.TestProductVariables.ProductVndkVersion = proptools.StringPtr("current") }) cflags := strings.Fields( ctx.ModuleForTests("foo", "android_product.VER_arm64_armv8-a_apex10000").Rule("cc").Args["cFlags"]) ensureListContains(t, cflags, "-D__ANDROID_VNDK__") ensureListContains(t, cflags, "-D__ANDROID_APEX__") ensureListContains(t, cflags, "-D__ANDROID_PRODUCT__") ensureListNotContains(t, cflags, "-D__ANDROID_VENDOR__") } func TestApex_withPrebuiltFirmware(t *testing.T) { testCases := []struct { name string Loading
cc/cc_test.go +29 −6 Original line number Diff line number Diff line Loading @@ -2065,6 +2065,7 @@ func TestEnforceProductVndkVersion(t *testing.T) { vendor_available: true, product_available: true, nocrt: true, srcs: ["foo.c"], target: { vendor: { suffix: "-vendor", Loading Loading @@ -2108,12 +2109,7 @@ func TestEnforceProductVndkVersion(t *testing.T) { } ` config := TestConfig(buildDir, android.Android, nil, bp, nil) config.TestProductVariables.DeviceVndkVersion = StringPtr("current") config.TestProductVariables.ProductVndkVersion = StringPtr("current") config.TestProductVariables.Platform_vndk_version = StringPtr("VER") ctx := testCcWithConfig(t, config) ctx := ccFixtureFactory.RunTestWithBp(t, bp).TestContext checkVndkModule(t, ctx, "libvndk", "", false, "", productVariant) checkVndkModule(t, ctx, "libvndk_sp", "", true, "", productVariant) Loading @@ -2123,6 +2119,33 @@ func TestEnforceProductVndkVersion(t *testing.T) { mod_product := ctx.ModuleForTests("libboth_available", productVariant).Module().(*Module) assertString(t, mod_product.outputFile.Path().Base(), "libboth_available-product.so") ensureStringContains := func(t *testing.T, str string, substr string) { t.Helper() if !strings.Contains(str, substr) { t.Errorf("%q is not found in %v", substr, str) } } ensureStringNotContains := func(t *testing.T, str string, substr string) { t.Helper() if strings.Contains(str, substr) { t.Errorf("%q is found in %v", substr, str) } } // _static variant is used since _shared reuses *.o from the static variant vendor_static := ctx.ModuleForTests("libboth_available", strings.Replace(vendorVariant, "_shared", "_static", 1)) product_static := ctx.ModuleForTests("libboth_available", strings.Replace(productVariant, "_shared", "_static", 1)) vendor_cflags := vendor_static.Rule("cc").Args["cFlags"] ensureStringContains(t, vendor_cflags, "-D__ANDROID_VNDK__") ensureStringContains(t, vendor_cflags, "-D__ANDROID_VENDOR__") ensureStringNotContains(t, vendor_cflags, "-D__ANDROID_PRODUCT__") product_cflags := product_static.Rule("cc").Args["cFlags"] ensureStringContains(t, product_cflags, "-D__ANDROID_VNDK__") ensureStringContains(t, product_cflags, "-D__ANDROID_PRODUCT__") ensureStringNotContains(t, product_cflags, "-D__ANDROID_VENDOR__") } func TestEnforceProductVndkVersionErrors(t *testing.T) { Loading
cc/compiler.go +5 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps if ctx.useVndk() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_VNDK__") if ctx.inVendor() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_VENDOR__") } else if ctx.inProduct() { flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_PRODUCT__") } } if ctx.inRecovery() { Loading