diff options
author | 2025-02-11 00:57:53 +0000 | |
---|---|---|
committer | 2025-03-12 18:53:44 +0000 | |
commit | 6a346010a058552b324feffcbba624fe6be5ac63 (patch) | |
tree | b14236ca0bfbb1954b25cb05724aa040751e4971 | |
parent | a8a2da75112bdde35ca68d0942e1bb989e212803 (diff) |
Keep track of which test infos use which target
Modify build script to keep track of which test info uses which target,
which will be necessary for intra-zip test discovery later
Test: test
Bug: 358215235
Change-Id: I3d51d6527396fc1538d51602ad84084dbcdc7b0e
-rw-r--r-- | ci/build_test_suites.py | 8 | ||||
-rw-r--r-- | ci/build_test_suites_test.py | 4 | ||||
-rw-r--r-- | ci/optimized_targets.py | 2 | ||||
-rw-r--r-- | ci/optimized_targets_test.py | 2 |
4 files changed, 12 insertions, 4 deletions
diff --git a/ci/build_test_suites.py b/ci/build_test_suites.py index d81248b496..7636f6a44b 100644 --- a/ci/build_test_suites.py +++ b/ci/build_test_suites.py @@ -16,6 +16,7 @@ import argparse from dataclasses import dataclass +from collections import defaultdict import json import logging import os @@ -68,6 +69,7 @@ class BuildPlanner: self.build_context = build_context self.args = args self.target_optimizations = target_optimizations + self.target_to_test_infos = defaultdict(list) def create_build_plan(self): @@ -102,7 +104,7 @@ class BuildPlanner: continue target_optimizer = target_optimizer_getter( - target, self.build_context, self.args + target, self.build_context, self.args, self.target_to_test_infos[target] ) build_targets.update(target_optimizer.get_build_targets()) packaging_commands_getters.append( @@ -178,6 +180,10 @@ class BuildPlanner: tf_command = self._build_tf_command(test_info) discovery_agent = test_discovery_agent.TestDiscoveryAgent(tradefed_args=tf_command) for regex in discovery_agent.discover_test_zip_regexes(): + for target in self.args.extra_targets: + target_regex = r'\b(%s.*)\b' % re.escape(target) + if re.search(target_regex, regex): + self.target_to_test_infos[target].append(test_info) build_target_regexes.add(regex) return build_target_regexes diff --git a/ci/build_test_suites_test.py b/ci/build_test_suites_test.py index 190740f811..e4501d38c6 100644 --- a/ci/build_test_suites_test.py +++ b/ci/build_test_suites_test.py @@ -257,9 +257,9 @@ class BuildPlannerTest(unittest.TestCase): class TestOptimizedBuildTarget(optimized_targets.OptimizedBuildTarget): def __init__( - self, target, build_context, args, output_targets, packaging_commands + self, target, build_context, args, test_infos, output_targets, packaging_commands ): - super().__init__(target, build_context, args) + super().__init__(target, build_context, args, test_infos) self.output_targets = output_targets self.packaging_commands = packaging_commands diff --git a/ci/optimized_targets.py b/ci/optimized_targets.py index 688bdd8370..4b8b453bb7 100644 --- a/ci/optimized_targets.py +++ b/ci/optimized_targets.py @@ -42,10 +42,12 @@ class OptimizedBuildTarget(ABC): target: str, build_context: BuildContext, args: argparse.Namespace, + test_infos ): self.target = target self.build_context = build_context self.args = args + self.test_infos = test_infos def get_build_targets(self) -> set[str]: features = self.build_context.enabled_build_features diff --git a/ci/optimized_targets_test.py b/ci/optimized_targets_test.py index 0b0c0ec087..fd9e17c680 100644 --- a/ci/optimized_targets_test.py +++ b/ci/optimized_targets_test.py @@ -224,7 +224,7 @@ class GeneralTestsOptimizerTest(fake_filesystem_unittest.TestCase): if not build_context: build_context = self._create_build_context() return optimized_targets.GeneralTestsOptimizer( - 'general-tests', build_context, None + 'general-tests', build_context, None, [] ) def _create_build_context( |