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

Commit bb2ab91c authored by Jooyung Han's avatar Jooyung Han Committed by android-build-merger
Browse files

Merge "Rename vndk apex according to vndk version"

am: 36aecc1f

Change-Id: I305cd3efa081e9141b374e485885e613b33a293a
parents eb767a02 36aecc1f
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -222,12 +222,14 @@ func apexVndkGatherMutator(mctx android.TopDownMutatorContext) {
		if ab.IsNativeBridgeSupported() {
			mctx.PropertyErrorf("native_bridge_supported", "%q doesn't support native bridge binary.", mctx.ModuleType())
		}
		vndkVersion := proptools.StringDefault(ab.vndkProperties.Vndk_version, mctx.DeviceConfig().PlatformVndkVersion())

		vndkVersion := proptools.String(ab.vndkProperties.Vndk_version)

		vndkApexListMutex.Lock()
		defer vndkApexListMutex.Unlock()
		vndkApexList := vndkApexList(mctx.Config())
		if other, ok := vndkApexList[vndkVersion]; ok {
			mctx.PropertyErrorf("vndk_version", "%v is already defined in %q", vndkVersion, other.Name())
			mctx.PropertyErrorf("vndk_version", "%v is already defined in %q", vndkVersion, other.BaseModuleName())
		}
		vndkApexList[vndkVersion] = ab
	}
@@ -1801,6 +1803,15 @@ func vndkApexBundleFactory() android.Module {
		}{
			proptools.StringPtr("both"),
		})

		vndkVersion := proptools.StringDefault(bundle.vndkProperties.Vndk_version, "current")
		if vndkVersion == "current" {
			vndkVersion = ctx.DeviceConfig().PlatformVndkVersion()
			bundle.vndkProperties.Vndk_version = proptools.StringPtr(vndkVersion)
		}

		// Ensure VNDK APEX mount point is formatted as com.android.vndk.v###
		bundle.properties.Apex_name = proptools.StringPtr("com.android.vndk.v" + vndkVersion)
	})
	return bundle
}
+31 −0
Original line number Diff line number Diff line
@@ -1442,6 +1442,37 @@ func TestVndkApexErrorWithDuplicateVersion(t *testing.T) {
	}))
}

func TestVndkApexNameRule(t *testing.T) {
	ctx, _ := testApex(t, `
		apex_vndk {
			name: "myapex",
			key: "myapex.key",
			file_contexts: "myapex",
		}
		apex_vndk {
			name: "myapex_v28",
			key: "myapex.key",
			file_contexts: "myapex",
			vndk_version: "28",
		}
		apex_key {
			name: "myapex.key",
			public_key: "testkey.avbpubkey",
			private_key: "testkey.pem",
		}`)

	assertApexName := func(expected, moduleName string) {
		bundle := ctx.ModuleForTests(moduleName, "android_common_"+moduleName).Module().(*apexBundle)
		actual := proptools.String(bundle.properties.Apex_name)
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf("Got '%v', expected '%v'", actual, expected)
		}
	}

	assertApexName("com.android.vndk.vVER", "myapex")
	assertApexName("com.android.vndk.v28", "myapex_v28")
}

func TestVndkApexSkipsNativeBridgeSupportedModules(t *testing.T) {
	ctx, _ := testApex(t, `
		apex_vndk {