summaryrefslogtreecommitdiff
path: root/testing/code_metadata.go
diff options
context:
space:
mode:
Diffstat (limited to 'testing/code_metadata.go')
-rw-r--r--testing/code_metadata.go137
1 files changed, 0 insertions, 137 deletions
diff --git a/testing/code_metadata.go b/testing/code_metadata.go
deleted file mode 100644
index 11ba43037..000000000
--- a/testing/code_metadata.go
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright 2020 Google Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package testing
-
-import (
- "path/filepath"
-
- "android/soong/android"
- "android/soong/testing/code_metadata_internal_proto"
- "github.com/google/blueprint"
-
- "google.golang.org/protobuf/proto"
-)
-
-func CodeMetadataFactory() android.Module {
- module := &CodeMetadataModule{}
-
- android.InitAndroidModule(module)
- android.InitDefaultableModule(module)
- module.AddProperties(&module.properties)
-
- return module
-}
-
-type CodeMetadataModule struct {
- android.ModuleBase
- android.DefaultableModuleBase
-
- // Properties for "code_metadata"
- properties struct {
- // Specifies the name of the code_config.
- Name string
- // Specifies the team ID.
- TeamId string
- // Specifies the list of modules that this code_metadata covers.
- Code []string
- // An optional field to specify if multiple ownerships for source files is allowed.
- MultiOwnership bool
- }
-}
-
-type codeDepTagType struct {
- blueprint.BaseDependencyTag
-}
-
-var codeDepTag = codeDepTagType{}
-
-func (module *CodeMetadataModule) DepsMutator(ctx android.BottomUpMutatorContext) {
- // Validate Properties
- if len(module.properties.TeamId) == 0 {
- ctx.PropertyErrorf(
- "TeamId",
- "Team Id not found in the code_metadata module. Hint: Maybe the teamId property hasn't been properly specified.",
- )
- }
- if !isInt(module.properties.TeamId) {
- ctx.PropertyErrorf(
- "TeamId", "Invalid value for Team ID. The Team ID must be an integer.",
- )
- }
- if len(module.properties.Code) == 0 {
- ctx.PropertyErrorf(
- "Code",
- "Targets to be attributed cannot be empty. Hint: Maybe the code property hasn't been properly specified.",
- )
- }
- ctx.AddDependency(ctx.Module(), codeDepTag, module.properties.Code...)
-}
-
-// Provider published by CodeMetadata
-type CodeMetadataProviderData struct {
- IntermediatePath android.WritablePath
-}
-
-var CodeMetadataProviderKey = blueprint.NewProvider[CodeMetadataProviderData]()
-
-func (module *CodeMetadataModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
- metadataList := make(
- []*code_metadata_internal_proto.CodeMetadataInternal_TargetOwnership, 0,
- len(module.properties.Code),
- )
- bpFilePath := filepath.Join(ctx.ModuleDir(), ctx.BlueprintsFile())
-
- for _, m := range ctx.GetDirectDepsWithTag(codeDepTag) {
- targetName := m.Name()
- var moduleSrcs []string
- if srcsFileInfo, ok := android.OtherModuleProvider(ctx, m, blueprint.SrcsFileProviderKey); ok {
- moduleSrcs = srcsFileInfo.SrcPaths
- }
- if module.properties.MultiOwnership {
- metadata := &code_metadata_internal_proto.CodeMetadataInternal_TargetOwnership{
- TargetName: &targetName,
- TrendyTeamId: &module.properties.TeamId,
- Path: &bpFilePath,
- MultiOwnership: &module.properties.MultiOwnership,
- SourceFiles: moduleSrcs,
- }
- metadataList = append(metadataList, metadata)
- } else {
- metadata := &code_metadata_internal_proto.CodeMetadataInternal_TargetOwnership{
- TargetName: &targetName,
- TrendyTeamId: &module.properties.TeamId,
- Path: &bpFilePath,
- SourceFiles: moduleSrcs,
- }
- metadataList = append(metadataList, metadata)
- }
-
- }
- codeMetadata := &code_metadata_internal_proto.CodeMetadataInternal{TargetOwnershipList: metadataList}
- protoData, err := proto.Marshal(codeMetadata)
- if err != nil {
- ctx.ModuleErrorf("Error marshaling code metadata: %s", err.Error())
- return
- }
- intermediatePath := android.PathForModuleOut(
- ctx, "intermediateCodeMetadata.pb",
- )
- android.WriteFileRuleVerbatim(ctx, intermediatePath, string(protoData))
-
- android.SetProvider(ctx,
- CodeMetadataProviderKey,
- CodeMetadataProviderData{IntermediatePath: intermediatePath},
- )
-}