Add clang_verify property for cc.

This property is to support cflags "-Xclang -verify" build pass in Soong. The behaviors of clang_verify:
- append cflags "-Xclang -verify"
- append "&& touch $out" to the clang command line

Bug: 311284462
Test: go test -run TestClangVerify

Change-Id: Ic5825e2d649da4c3c5ed6da916e9804d7e3c03da
This commit is contained in:
kellyhung
2024-05-19 21:16:07 +08:00
parent 46469d6a03
commit d62ea30647
5 changed files with 53 additions and 6 deletions

View File

@@ -3218,3 +3218,32 @@ func TestVendorSdkVersion(t *testing.T) {
testSdkVersionFlag("libfoo", "30")
testSdkVersionFlag("libbar", "29")
}
func TestClangVerify(t *testing.T) {
t.Parallel()
ctx := testCc(t, `
cc_library {
name: "lib_no_clang_verify",
srcs: ["libnocv.cc"],
}
cc_library {
name: "lib_clang_verify",
srcs: ["libcv.cc"],
clang_verify: true,
}
`)
module := ctx.ModuleForTests("lib_no_clang_verify", "android_arm64_armv8-a_shared")
cFlags_no_cv := module.Rule("cc").Args["cFlags"]
if strings.Contains(cFlags_no_cv, "-Xclang") || strings.Contains(cFlags_no_cv, "-verify") {
t.Errorf("expected %q not in cflags, got %q", "-Xclang -verify", cFlags_no_cv)
}
cFlags_cv := ctx.ModuleForTests("lib_clang_verify", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"]
if strings.Contains(cFlags_cv, "-Xclang") && strings.Contains(cFlags_cv, "-verify") {
t.Errorf("expected %q in cflags, got %q", "-Xclang -verify", cFlags_cv)
}
}