Also generate api lists based on symbol files for cc_library rule during build time.
Test: build/soong/soong_ui.bash --make-mode SKIP_ABI_CHECKS=true TARGET_PRODUCT=aosp_cf_x86_phone TARGET_BUILD_VARIANT=userdebug droid dist DIST_DIR=/usr/local/google/home/sophiez/my_dist_dir EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true SKIP_BOOT_JARS_CHECK=true Change-Id: Ic857c14c5c258b8f4d150cc71ce9eabce33d7d54
This commit is contained in:
@@ -244,3 +244,19 @@ func coverageMutator(mctx android.BottomUpMutatorContext) {
|
||||
m[1].(Coverage).EnableCoverageIfNeeded()
|
||||
}
|
||||
}
|
||||
|
||||
func parseSymbolFileForAPICoverage(ctx ModuleContext, symbolFile string) android.ModuleOutPath {
|
||||
apiLevelsJson := android.GetApiLevelsJson(ctx)
|
||||
symbolFilePath := android.PathForModuleSrc(ctx, symbolFile)
|
||||
outputFile := ctx.baseModuleName() + ".xml"
|
||||
parsedApiCoveragePath := android.PathForModuleOut(ctx, outputFile)
|
||||
rule := android.NewRuleBuilder(pctx, ctx)
|
||||
rule.Command().
|
||||
BuiltTool("ndk_api_coverage_parser").
|
||||
Input(symbolFilePath).
|
||||
Output(parsedApiCoveragePath).
|
||||
Implicit(apiLevelsJson).
|
||||
FlagWithArg("--api-map ", apiLevelsJson.String())
|
||||
rule.Build("native_library_api_list", "Generate native API list based on symbol files for coverage measurement")
|
||||
return parsedApiCoveragePath
|
||||
}
|
||||
|
Reference in New Issue
Block a user