Fix false pos in bp2build-prog due to prebulits
The prebuilt_ prefix was removed before writing converted modules, which
causes false positives when a prebuilt and from source module exist with
the same name but only one has been converted
Test: b run //build/bazel/scripts/bp2build_progress:bp2build_progress \
-- report -m core-lambda-stubs-for-system-modules
Change-Id: Id00099780fb6af9fffcf745b509116a66bac8756
diff --git a/bp2build/conversion.go b/bp2build/conversion.go
index 7791419..35a1400 100644
--- a/bp2build/conversion.go
+++ b/bp2build/conversion.go
@@ -48,7 +48,11 @@
}
files = append(files, newFile("apex_toolchain", "constants.bzl", apexToolchainVars))
- files = append(files, newFile("metrics", "converted_modules.txt", strings.Join(metrics.Serialize().ConvertedModules, "\n")))
+ if buf, err := json.MarshalIndent(metrics.convertedModuleWithType, "", " "); err != nil {
+ return []BazelFile{}, err
+ } else {
+ files = append(files, newFile("metrics", "converted_modules.json", string(buf)))
+ }
convertedModulePathMap, err := json.MarshalIndent(metrics.convertedModulePathMap, "", "\t")
if err != nil {
diff --git a/bp2build/conversion_test.go b/bp2build/conversion_test.go
index cbffaa0..89dd38e 100644
--- a/bp2build/conversion_test.go
+++ b/bp2build/conversion_test.go
@@ -134,7 +134,7 @@
},
{
dir: "metrics",
- basename: "converted_modules.txt",
+ basename: "converted_modules.json",
},
{
dir: "metrics",
diff --git a/bp2build/metrics.go b/bp2build/metrics.go
index 00f21c8..20002c6 100644
--- a/bp2build/metrics.go
+++ b/bp2build/metrics.go
@@ -9,11 +9,17 @@
"android/soong/android"
"android/soong/shared"
"android/soong/ui/metrics/bp2build_metrics_proto"
+
"google.golang.org/protobuf/proto"
"github.com/google/blueprint"
)
+type moduleInfo struct {
+ Name string `json:"name"`
+ Type string `json:"type"`
+}
+
// CodegenMetrics represents information about the Blueprint-to-BUILD
// conversion process.
// Use CreateCodegenMetrics() to get a properly initialized instance
@@ -30,6 +36,9 @@
// Map of converted modules and paths to call
// NOTE: NOT in the .proto
convertedModulePathMap map[string]string
+
+ // Name and type of converted modules
+ convertedModuleWithType []moduleInfo
}
func CreateCodegenMetrics() CodegenMetrics {
@@ -191,6 +200,10 @@
// Undo prebuilt_ module name prefix modifications
moduleName := android.RemoveOptionalPrebuiltPrefix(m.Name())
metrics.serialized.ConvertedModules = append(metrics.serialized.ConvertedModules, moduleName)
+ metrics.convertedModuleWithType = append(metrics.convertedModuleWithType, moduleInfo{
+ moduleName,
+ moduleType,
+ })
metrics.convertedModulePathMap[moduleName] = "//" + dir
metrics.serialized.ConvertedModuleTypeCount[moduleType] += 1
metrics.serialized.TotalModuleTypeCount[moduleType] += 1