Remove suffix based stub matching logic
This change prevents non-stub modules with stub suffix from being determined as the stub module, and instead makes the check more robust by determining the condition based on the user-hidden `Stub_contributing_api` property, which is only set for the stub submodules generated by `java_sdk_library`. Test: m nothing --no-skip-soong-tests Bug: 361179822 Change-Id: I28a599c5b4fe1e8460e60580c0535aaf19e39ba3
This commit is contained in:
@@ -1858,3 +1858,39 @@ func TestMultipleSdkLibraryPrebuilts(t *testing.T) {
|
||||
android.AssertStringListContains(t, "Could not find the expected stub on classpath", inputs, tc.expectedStubPath)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStubLinkType(t *testing.T) {
|
||||
android.GroupFixturePreparers(
|
||||
prepareForJavaTest,
|
||||
PrepareForTestWithJavaSdkLibraryFiles,
|
||||
FixtureWithLastReleaseApis("foo"),
|
||||
).ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(
|
||||
`module "baz" variant "android_common": compiles against system API, but dependency `+
|
||||
`"bar.stubs.system" is compiling against module API. In order to fix this, `+
|
||||
`consider adjusting sdk_version: OR platform_apis: property of the source or `+
|
||||
`target module so that target module is built with the same or smaller API set `+
|
||||
`when compared to the source.`),
|
||||
).RunTestWithBp(t, `
|
||||
java_sdk_library {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
}
|
||||
java_library {
|
||||
name: "bar.stubs.system",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "module_current",
|
||||
is_stubs_module: false,
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "baz",
|
||||
srcs: ["b.java"],
|
||||
libs: [
|
||||
"foo.stubs.system",
|
||||
"bar.stubs.system",
|
||||
],
|
||||
sdk_version: "system_current",
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
Reference in New Issue
Block a user