diff --git a/python/Android.bp b/python/Android.bp index b633f1e3f..e49fa6a3c 100644 --- a/python/Android.bp +++ b/python/Android.bp @@ -20,6 +20,7 @@ bootstrap_go_package { "proto.go", "python.go", "test.go", + "testing.go", ], testSrcs: [ "python_test.go", diff --git a/python/binary.go b/python/binary.go index 372b8a8c1..6061ad4f7 100644 --- a/python/binary.go +++ b/python/binary.go @@ -26,10 +26,14 @@ import ( ) func init() { - android.RegisterModuleType("python_binary_host", PythonBinaryHostFactory) + registerPythonBinaryComponents(android.InitRegistrationContext) android.RegisterBp2BuildMutator("python_binary_host", PythonBinaryBp2Build) } +func registerPythonBinaryComponents(ctx android.RegistrationContext) { + ctx.RegisterModuleType("python_binary_host", PythonBinaryHostFactory) +} + type bazelPythonBinaryAttributes struct { Main string Srcs bazel.LabelList diff --git a/python/library.go b/python/library.go index b724d2b9f..9663b3c75 100644 --- a/python/library.go +++ b/python/library.go @@ -21,8 +21,12 @@ import ( ) func init() { - android.RegisterModuleType("python_library_host", PythonLibraryHostFactory) - android.RegisterModuleType("python_library", PythonLibraryFactory) + registerPythonLibraryComponents(android.InitRegistrationContext) +} + +func registerPythonLibraryComponents(ctx android.RegistrationContext) { + ctx.RegisterModuleType("python_library_host", PythonLibraryHostFactory) + ctx.RegisterModuleType("python_library", PythonLibraryFactory) } func PythonLibraryHostFactory() android.Module { diff --git a/python/python.go b/python/python.go index a078c0b58..4444a70e6 100644 --- a/python/python.go +++ b/python/python.go @@ -29,7 +29,11 @@ import ( ) func init() { - android.PreDepsMutators(RegisterPythonPreDepsMutators) + registerPythonMutators(android.InitRegistrationContext) +} + +func registerPythonMutators(ctx android.RegistrationContext) { + ctx.PreDepsMutators(RegisterPythonPreDepsMutators) } // Exported to support other packages using Python modules in tests. diff --git a/python/test.go b/python/test.go index b7cd4756a..6713189fd 100644 --- a/python/test.go +++ b/python/test.go @@ -22,8 +22,12 @@ import ( // This file contains the module types for building Python test. func init() { - android.RegisterModuleType("python_test_host", PythonTestHostFactory) - android.RegisterModuleType("python_test", PythonTestFactory) + registerPythonTestComponents(android.InitRegistrationContext) +} + +func registerPythonTestComponents(ctx android.RegistrationContext) { + ctx.RegisterModuleType("python_test_host", PythonTestHostFactory) + ctx.RegisterModuleType("python_test", PythonTestFactory) } // Test option struct. diff --git a/python/testing.go b/python/testing.go new file mode 100644 index 000000000..ce1a5ab27 --- /dev/null +++ b/python/testing.go @@ -0,0 +1,24 @@ +// Copyright 2021 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 python + +import "android/soong/android" + +var PrepareForTestWithPythonBuildComponents = android.GroupFixturePreparers( + android.FixtureRegisterWithContext(registerPythonBinaryComponents), + android.FixtureRegisterWithContext(registerPythonLibraryComponents), + android.FixtureRegisterWithContext(registerPythonTestComponents), + android.FixtureRegisterWithContext(registerPythonMutators), +)