Retry: Fix snapshot of a host/device cc_library with stubs
Change since last attempt: Disable test that breaks on darwin. Adds a test that fails with unknown property android.stubs.versions and then fixes that by marking the field from which that property is created with 'ignored-on-host' and implemented the isHostVariant on *osTypeSpecificInfo. Bug: 155628860 Test: m nothing Change-Id: Ia4e744c9e799d5adaf8a2f761516f568ec363ad4
This commit is contained in:
parent
c459f89fb4
commit
7a1f7f32ab
3 changed files with 98 additions and 1 deletions
|
@ -342,7 +342,11 @@ type nativeLibInfoProperties struct {
|
||||||
|
|
||||||
// The specific stubs version for the lib variant, or empty string if stubs
|
// The specific stubs version for the lib variant, or empty string if stubs
|
||||||
// are not in use.
|
// are not in use.
|
||||||
StubsVersion string
|
//
|
||||||
|
// Marked 'ignored-on-host' as the StubsVersion() from which this is initialized is
|
||||||
|
// not set on host and the stubs.versions property which this is written to is does
|
||||||
|
// not vary by arch so cannot be android specific.
|
||||||
|
StubsVersion string `sdk:"ignored-on-host"`
|
||||||
|
|
||||||
// outputFile is not exported as it is always arch specific.
|
// outputFile is not exported as it is always arch specific.
|
||||||
outputFile android.Path
|
outputFile android.Path
|
||||||
|
|
|
@ -1805,3 +1805,89 @@ sdk_snapshot {
|
||||||
}
|
}
|
||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDeviceAndHostSnapshotWithStubsLibrary(t *testing.T) {
|
||||||
|
// b/145598135 - Generating host snapshots for anything other than linux is not supported.
|
||||||
|
SkipIfNotLinux(t)
|
||||||
|
|
||||||
|
result := testSdkWithCc(t, `
|
||||||
|
sdk {
|
||||||
|
name: "mysdk",
|
||||||
|
host_supported: true,
|
||||||
|
native_shared_libs: ["stubslib"],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library {
|
||||||
|
name: "internaldep",
|
||||||
|
host_supported: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library {
|
||||||
|
name: "stubslib",
|
||||||
|
host_supported: true,
|
||||||
|
shared_libs: ["internaldep"],
|
||||||
|
stubs: {
|
||||||
|
symbol_file: "some/where/stubslib.map.txt",
|
||||||
|
versions: ["1", "2", "3"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
result.CheckSnapshot("mysdk", "",
|
||||||
|
checkAndroidBpContents(`
|
||||||
|
// This is auto-generated. DO NOT EDIT.
|
||||||
|
|
||||||
|
cc_prebuilt_library_shared {
|
||||||
|
name: "mysdk_stubslib@current",
|
||||||
|
sdk_member_name: "stubslib",
|
||||||
|
host_supported: true,
|
||||||
|
installable: false,
|
||||||
|
stubs: {
|
||||||
|
versions: ["3"],
|
||||||
|
},
|
||||||
|
target: {
|
||||||
|
android_arm64: {
|
||||||
|
srcs: ["android/arm64/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
android_arm: {
|
||||||
|
srcs: ["android/arm/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
linux_glibc_x86_64: {
|
||||||
|
srcs: ["linux_glibc/x86_64/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
linux_glibc_x86: {
|
||||||
|
srcs: ["linux_glibc/x86/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_prebuilt_library_shared {
|
||||||
|
name: "stubslib",
|
||||||
|
prefer: false,
|
||||||
|
host_supported: true,
|
||||||
|
stubs: {
|
||||||
|
versions: ["3"],
|
||||||
|
},
|
||||||
|
target: {
|
||||||
|
android_arm64: {
|
||||||
|
srcs: ["android/arm64/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
android_arm: {
|
||||||
|
srcs: ["android/arm/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
linux_glibc_x86_64: {
|
||||||
|
srcs: ["linux_glibc/x86_64/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
linux_glibc_x86: {
|
||||||
|
srcs: ["linux_glibc/x86/lib/stubslib.so"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
sdk_snapshot {
|
||||||
|
name: "mysdk@current",
|
||||||
|
host_supported: true,
|
||||||
|
native_shared_libs: ["mysdk_stubslib@current"],
|
||||||
|
}
|
||||||
|
`))
|
||||||
|
}
|
||||||
|
|
|
@ -982,6 +982,13 @@ func (osInfo *osTypeSpecificInfo) addToPropertySet(ctx *memberContext, bpModule
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (osInfo *osTypeSpecificInfo) isHostVariant() bool {
|
||||||
|
osClass := osInfo.osType.Class
|
||||||
|
return osClass == android.Host || osClass == android.HostCross
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ isHostVariant = (*osTypeSpecificInfo)(nil)
|
||||||
|
|
||||||
func (osInfo *osTypeSpecificInfo) String() string {
|
func (osInfo *osTypeSpecificInfo) String() string {
|
||||||
return fmt.Sprintf("OsType{%s}", osInfo.osType)
|
return fmt.Sprintf("OsType{%s}", osInfo.osType)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue