Add sdk modules list in build artifacts root.

Add list of all the sdk supported modules in sdk-modules.txt. This file
should generate for all builds (even when only non-sdk modules build is
requested).
The file only contains modules which are requested by the build, and
supports sdk.

Bug: 242316893

Test: Generate sdk-modules.txt in the dist directory root.
Test: atest --host mainline_modules_sdks_test --no-bazel-mode

Change-Id: Ic8aa3c63209717e1076c4c51f1232dd5afcdd6d4
This commit is contained in:
Gurpreet Singh
2023-06-12 13:11:04 +01:00
parent ee3e424d51
commit d822398d79
2 changed files with 86 additions and 0 deletions

View File

@@ -419,6 +419,84 @@ class TestProduceDist(unittest.TestCase):
),
], snapshot_builder.snapshots)
def test_generate_sdk_supported_modules_file(self):
subprocess_runner = mm.SubprocessRunner()
snapshot_builder = FakeSnapshotBuilder(
tool_path="path/to/mainline_modules_sdks.sh",
subprocess_runner=subprocess_runner,
out_dir=self.tmp_out_dir,
)
producer = mm.SdkDistProducer(
subprocess_runner=subprocess_runner,
snapshot_builder=snapshot_builder,
dist_dir=self.tmp_dist_dir,
)
producer = mm.SdkDistProducer(
subprocess_runner=subprocess_runner,
snapshot_builder=snapshot_builder,
dist_dir=self.tmp_dist_dir,
)
# Contains only sdk modules.
modules = [
MAINLINE_MODULES_BY_APEX["com.android.adservices"],
MAINLINE_MODULES_BY_APEX["com.android.art"],
MAINLINE_MODULES_BY_APEX["com.android.mediaprovider"],
]
producer.dist_generate_sdk_supported_modules_file(modules)
with open(os.path.join(self.tmp_dist_dir, "sdk-modules.txt"), "r",
encoding="utf8") as sdk_modules_file:
sdk_modules = sdk_modules_file.readlines()
self.assertTrue("com.google.android.adservices\n" in sdk_modules)
self.assertTrue("com.google.android.art\n" in sdk_modules)
self.assertTrue("com.google.android.mediaprovider\n" in sdk_modules)
# Contains only non-sdk modules.
modules = [
mm.MainlineModule(
apex="com.android.adbd",
sdks=[],
first_release="",
),
mm.MainlineModule(
apex="com.android.adbd",
sdks=[],
first_release="",
),
]
producer.dist_generate_sdk_supported_modules_file(modules)
with open(os.path.join(self.tmp_dist_dir, "sdk-modules.txt"), "r",
encoding="utf8") as sdk_modules_file:
sdk_modules = sdk_modules_file.readlines()
self.assertEqual(len(sdk_modules), 0)
# Contains mixture of sdk and non-sdk modules.
modules = [
MAINLINE_MODULES_BY_APEX["com.android.adservices"],
MAINLINE_MODULES_BY_APEX["com.android.mediaprovider"],
mm.MainlineModule(
apex="com.android.adbd",
sdks=[],
first_release="",
),
mm.MainlineModule(
apex="com.android.adbd",
sdks=[],
first_release="",
),
]
producer.dist_generate_sdk_supported_modules_file(modules)
with open(os.path.join(self.tmp_dist_dir, "sdk-modules.txt"), "r",
encoding="utf8") as sdk_modules_file:
sdk_modules = sdk_modules_file.readlines()
self.assertTrue("com.google.android.adservices\n" in sdk_modules)
self.assertTrue("com.google.android.mediaprovider\n" in sdk_modules)
self.assertFalse("com.google.android.adbd\n" in sdk_modules)
self.assertFalse("com.google.android.extservices\n" in sdk_modules)
def path_to_test_data(relative_path):
"""Construct a path to a test data file.