Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18020eab authored by Jooyung Han's avatar Jooyung Han Committed by Jiyong Park
Browse files

make ApexProperties defaultable

ApexPropreties are added in InitApexModule() and they are supposed to be
defaultable. To be defaultable, InitApexModule() should be called before
InitDefaultableModule().

Bug: 144332048
Test: m (soong test added)
Change-Id: I6c90ed3b66a086292a4c0ecb37c61f83769e62bd
parent 3eceaa32
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -115,6 +115,9 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr
	ctx.RegisterModuleType("cc_prebuilt_library_static", android.ModuleFactoryAdaptor(cc.PrebuiltStaticLibraryFactory))
	ctx.RegisterModuleType("cc_binary", android.ModuleFactoryAdaptor(cc.BinaryFactory))
	ctx.RegisterModuleType("cc_object", android.ModuleFactoryAdaptor(cc.ObjectFactory))
	ctx.RegisterModuleType("cc_defaults", android.ModuleFactoryAdaptor(func() android.Module {
		return cc.DefaultsFactory()
	}))
	ctx.RegisterModuleType("cc_test", android.ModuleFactoryAdaptor(cc.TestFactory))
	ctx.RegisterModuleType("llndk_library", android.ModuleFactoryAdaptor(cc.LlndkLibraryFactory))
	ctx.RegisterModuleType("vndk_prebuilt_shared", android.ModuleFactoryAdaptor(cc.VndkPrebuiltSharedFactory))
@@ -2586,6 +2589,40 @@ func TestApexWithAppImports(t *testing.T) {
	ensureContains(t, copyCmds, "image.apex/priv-app/AppFooPrivPrebuilt/AppFooPrivPrebuilt.apk")
}

func TestApexPropertiesShouldBeDefaultable(t *testing.T) {
	// libfoo's apex_available comes from cc_defaults
	testApexError(t, `"myapex" .*: requires "libfoo" that is not available for the APEX`, `
	apex {
		name: "myapex",
		key: "myapex.key",
		native_shared_libs: ["libfoo"],
	}

	apex_key {
		name: "myapex.key",
		public_key: "testkey.avbpubkey",
		private_key: "testkey.pem",
	}

	apex {
		name: "otherapex",
		key: "myapex.key",
		native_shared_libs: ["libfoo"],
	}

	cc_defaults {
		name: "libfoo-defaults",
		apex_available: ["otherapex"],
	}

	cc_library {
		name: "libfoo",
		defaults: ["libfoo-defaults"],
		stl: "none",
		system_shared_libs: [],
	}`)
}

func TestApexAvailable(t *testing.T) {
	// libfoo is not available to myapex, but only to otherapex
	testApexError(t, "requires \"libfoo\" that is not available for the APEX", `
+2 −4
Original line number Diff line number Diff line
@@ -719,11 +719,9 @@ func (c *Module) Init() android.Module {
		}
	})
	android.InitAndroidArchModule(c, c.hod, c.multilib)

	android.InitDefaultableModule(c)

	android.InitApexModule(c)
	android.InitSdkAwareModule(c)
	android.InitDefaultableModule(c)

	return c
}
@@ -2469,10 +2467,10 @@ func DefaultsFactory(props ...interface{}) android.Module {
		&PgoProperties{},
		&XomProperties{},
		&android.ProtoProperties{},
		&android.ApexProperties{},
	)

	android.InitDefaultsModule(module)
	android.InitApexModule(module)

	return module
}
+6 −6
Original line number Diff line number Diff line
@@ -1684,9 +1684,9 @@ func LibraryFactory() android.Module {
		&module.Module.dexpreoptProperties,
		&module.Module.protoProperties)

	InitJavaModule(module, android.HostAndDeviceSupported)
	android.InitApexModule(module)
	android.InitSdkAwareModule(module)
	InitJavaModule(module, android.HostAndDeviceSupported)
	return module
}

@@ -1708,8 +1708,8 @@ func LibraryHostFactory() android.Module {

	module.Module.properties.Installable = proptools.BoolPtr(true)

	InitJavaModule(module, android.HostSupported)
	android.InitApexModule(module)
	InitJavaModule(module, android.HostSupported)
	return module
}

@@ -2135,9 +2135,9 @@ func ImportFactory() android.Module {
	module.AddProperties(&module.properties)

	android.InitPrebuiltModule(module, &module.properties.Jars)
	InitJavaModule(module, android.HostAndDeviceSupported)
	android.InitApexModule(module)
	android.InitSdkAwareModule(module)
	InitJavaModule(module, android.HostAndDeviceSupported)
	return module
}

@@ -2152,8 +2152,8 @@ func ImportFactoryHost() android.Module {
	module.AddProperties(&module.properties)

	android.InitPrebuiltModule(module, &module.properties.Jars)
	InitJavaModule(module, android.HostSupported)
	android.InitApexModule(module)
	InitJavaModule(module, android.HostSupported)
	return module
}

@@ -2264,8 +2264,8 @@ func DexImportFactory() android.Module {
	module.AddProperties(&module.properties)

	android.InitPrebuiltModule(module, &module.properties.Jars)
	InitJavaModule(module, android.DeviceSupported)
	android.InitApexModule(module)
	InitJavaModule(module, android.DeviceSupported)
	return module
}

@@ -2331,10 +2331,10 @@ func DefaultsFactory(props ...interface{}) android.Module {
		&AARImportProperties{},
		&sdkLibraryProperties{},
		&DexImportProperties{},
		&android.ApexProperties{},
	)

	android.InitDefaultsModule(module)
	android.InitApexModule(module)
	return module
}