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

Commit 36aecc1f authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Rename vndk apex according to vndk version"

parents 96ce6ab1 90eee02a
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 {