Loading testing/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ bootstrap_go_package { ], srcs: [ "all_test_specs.go", "test_spec.go", "init.go", ], Loading testing/all_test_specs.go 0 → 100644 +45 −0 Original line number Diff line number Diff line package testing import ( "android/soong/android" ) const ownershipDirectory = "ownership" const fileContainingFilePaths = "all_test_spec_paths.rsp" const allTestSpecsFile = "all_test_specs.pb" func AllTestSpecsFactory() android.Singleton { return &allTestSpecsSingleton{} } type allTestSpecsSingleton struct { // Path where the collected metadata is stored after successful validation. outputPath android.OutputPath } func (this *allTestSpecsSingleton) GenerateBuildActions(ctx android.SingletonContext) { var intermediateMetadataPaths android.Paths ctx.VisitAllModules(func(module android.Module) { if !ctx.ModuleHasProvider(module, testSpecProviderKey) { return } intermediateMetadataPaths = append(intermediateMetadataPaths, ctx.ModuleProvider(module, testSpecProviderKey).(testSpecProviderData).IntermediatePath) }) rspFile := android.PathForOutput(ctx, fileContainingFilePaths) this.outputPath = android.PathForOutput(ctx, ownershipDirectory, allTestSpecsFile) rule := android.NewRuleBuilder(pctx, ctx) cmd := rule.Command(). BuiltTool("metadata"). FlagWithArg("-rule ", "test_spec"). FlagWithRspFileInputList("-inputFile ", rspFile, intermediateMetadataPaths) cmd.FlagWithOutput("-outputFile ", this.outputPath) rule.Build("all_test_specs_rule", "Generate all test specifications") ctx.Phony("all_test_specs", this.outputPath) } func (this *allTestSpecsSingleton) MakeVars(ctx android.MakeVarsContext) { ctx.DistForGoal("test_specs", this.outputPath) } testing/init.go +6 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,16 @@ import ( "android/soong/android" ) var ( pctx = android.NewPackageContext("android/soong/testing") ) func init() { RegisterBuildComponents(android.InitRegistrationContext) pctx.HostBinToolVariable("metadata", "metadata") } func RegisterBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("test_spec", TestSpecFactory) ctx.RegisterParallelSingletonType("all_test_specs", AllTestSpecsFactory) } Loading
testing/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ bootstrap_go_package { ], srcs: [ "all_test_specs.go", "test_spec.go", "init.go", ], Loading
testing/all_test_specs.go 0 → 100644 +45 −0 Original line number Diff line number Diff line package testing import ( "android/soong/android" ) const ownershipDirectory = "ownership" const fileContainingFilePaths = "all_test_spec_paths.rsp" const allTestSpecsFile = "all_test_specs.pb" func AllTestSpecsFactory() android.Singleton { return &allTestSpecsSingleton{} } type allTestSpecsSingleton struct { // Path where the collected metadata is stored after successful validation. outputPath android.OutputPath } func (this *allTestSpecsSingleton) GenerateBuildActions(ctx android.SingletonContext) { var intermediateMetadataPaths android.Paths ctx.VisitAllModules(func(module android.Module) { if !ctx.ModuleHasProvider(module, testSpecProviderKey) { return } intermediateMetadataPaths = append(intermediateMetadataPaths, ctx.ModuleProvider(module, testSpecProviderKey).(testSpecProviderData).IntermediatePath) }) rspFile := android.PathForOutput(ctx, fileContainingFilePaths) this.outputPath = android.PathForOutput(ctx, ownershipDirectory, allTestSpecsFile) rule := android.NewRuleBuilder(pctx, ctx) cmd := rule.Command(). BuiltTool("metadata"). FlagWithArg("-rule ", "test_spec"). FlagWithRspFileInputList("-inputFile ", rspFile, intermediateMetadataPaths) cmd.FlagWithOutput("-outputFile ", this.outputPath) rule.Build("all_test_specs_rule", "Generate all test specifications") ctx.Phony("all_test_specs", this.outputPath) } func (this *allTestSpecsSingleton) MakeVars(ctx android.MakeVarsContext) { ctx.DistForGoal("test_specs", this.outputPath) }
testing/init.go +6 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,16 @@ import ( "android/soong/android" ) var ( pctx = android.NewPackageContext("android/soong/testing") ) func init() { RegisterBuildComponents(android.InitRegistrationContext) pctx.HostBinToolVariable("metadata", "metadata") } func RegisterBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("test_spec", TestSpecFactory) ctx.RegisterParallelSingletonType("all_test_specs", AllTestSpecsFactory) }