bp2build conversion for Sanitize.Integer_overflow
and Sanitize.Misc_undefined. This is a redo of aosp/2277186 with changes to account for issues in mixed builds. Specifically, for now we're disabling mixed builds for modules that use ubsan. This bug tracks enabling it: b/261058727. Bug: 253428057 Test: Unit tests Change-Id: Ia1277a7fa9a82f40998d7f3d2c40ea90f38201e7
This commit is contained in:
@@ -885,3 +885,85 @@ func TestCcLibrarySharedHeaderAbiChecker(t *testing.T) {
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestCcLibrarySharedWithIntegerOverflowProperty(t *testing.T) {
|
||||
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_shared has correct features when integer_overflow property is provided",
|
||||
Blueprint: `
|
||||
cc_library_shared {
|
||||
name: "foo",
|
||||
sanitize: {
|
||||
integer_overflow: true,
|
||||
},
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
|
||||
"features": `["ubsan_integer_overflow"]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestCcLibrarySharedWithMiscUndefinedProperty(t *testing.T) {
|
||||
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_shared has correct features when misc_undefined property is provided",
|
||||
Blueprint: `
|
||||
cc_library_shared {
|
||||
name: "foo",
|
||||
sanitize: {
|
||||
misc_undefined: ["undefined", "nullability"],
|
||||
},
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
|
||||
"features": `[
|
||||
"ubsan_undefined",
|
||||
"ubsan_nullability",
|
||||
]`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestCcLibrarySharedWithUBSanPropertiesArchSpecific(t *testing.T) {
|
||||
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library_shared has correct feature select when UBSan props are specified in arch specific blocks",
|
||||
Blueprint: `
|
||||
cc_library_shared {
|
||||
name: "foo",
|
||||
sanitize: {
|
||||
misc_undefined: ["undefined", "nullability"],
|
||||
},
|
||||
target: {
|
||||
android: {
|
||||
sanitize: {
|
||||
misc_undefined: ["alignment"],
|
||||
},
|
||||
},
|
||||
linux_glibc: {
|
||||
sanitize: {
|
||||
integer_overflow: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
|
||||
"features": `[
|
||||
"ubsan_undefined",
|
||||
"ubsan_nullability",
|
||||
] + select({
|
||||
"//build/bazel/platforms/os:android": ["ubsan_alignment"],
|
||||
"//build/bazel/platforms/os:linux_glibc": ["ubsan_integer_overflow"],
|
||||
"//conditions:default": [],
|
||||
})`,
|
||||
"local_includes": `["."]`,
|
||||
}),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user