diff options
author | David Bradford <david.bradford@mongodb.com> | 2021-05-29 11:07:44 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-05-29 18:17:12 +0000 |
commit | d431ce954b4f6153842316d8d05afc5ee73876d7 (patch) | |
tree | f77b76926a1934fed2011dbc84d87fb9c08df745 | |
parent | a0615f84f20279b68cc7c0a6a2c9f298fbb0b441 (diff) | |
download | mongo-d431ce954b4f6153842316d8d05afc5ee73876d7.tar.gz |
SERVER-57302: Name implicit multiversion tests correctly
-rwxr-xr-x | buildscripts/evergreen_gen_multiversion_tests.py | 22 | ||||
-rwxr-xr-x | buildscripts/evergreen_generate_resmoke_tasks.py | 11 | ||||
-rw-r--r-- | buildscripts/task_generation/suite_split.py | 10 | ||||
-rw-r--r-- | buildscripts/tests/test_evergreen_generate_resmoke_tasks.py | 11 | ||||
-rw-r--r-- | buildscripts/tests/util/test_taskname.py | 17 | ||||
-rw-r--r-- | buildscripts/util/taskname.py | 14 | ||||
-rw-r--r-- | etc/evergreen.yml | 1 |
7 files changed, 41 insertions, 45 deletions
diff --git a/buildscripts/evergreen_gen_multiversion_tests.py b/buildscripts/evergreen_gen_multiversion_tests.py index 7095af871e6..976ed511896 100755 --- a/buildscripts/evergreen_gen_multiversion_tests.py +++ b/buildscripts/evergreen_gen_multiversion_tests.py @@ -26,8 +26,7 @@ from buildscripts.task_generation.gen_config import GenerationConfiguration from buildscripts.task_generation.generated_config import GeneratedConfiguration from buildscripts.task_generation.multiversion_util import MultiversionUtilService from buildscripts.task_generation.resmoke_proxy import ResmokeProxyConfig -from buildscripts.task_generation.suite_split import SuiteSplitConfig, SuiteSplitParameters, \ - remove_gen_suffix +from buildscripts.task_generation.suite_split import SuiteSplitConfig, SuiteSplitParameters from buildscripts.task_generation.suite_split_strategies import SplitStrategy, FallbackStrategy, \ greedy_division, round_robin_fallback from buildscripts.task_generation.task_types.fuzzer_tasks import FuzzerGenTaskParams @@ -40,6 +39,7 @@ import buildscripts.evergreen_gen_fuzzer_tests as gen_fuzzer import buildscripts.ciconfig.tags as _tags # pylint: disable=len-as-condition +from buildscripts.util.taskname import remove_gen_suffix LOGGER = structlog.getLogger(__name__) @@ -58,7 +58,6 @@ RANDOM_REPLSETS_TAG = "random_multiversion_ds" BACKPORT_REQUIRED_TAG = "backport_required_multiversion" EXCLUDE_TAGS = f"{REQUIRES_FCV_TAG},multiversion_incompatible,{BACKPORT_REQUIRED_TAG}" EXCLUDE_TAGS_FILE = "multiversion_exclude_tags.yml" -GEN_SUFFIX = "_gen" GEN_PARENT_TASK = "generator_tasks" ASAN_SIGNATURE = "detect_leaks=1" @@ -100,7 +99,7 @@ class EvgExpansions(BaseModel): @property def task(self) -> str: """Get the name of the task.""" - return self.task_name + return remove_gen_suffix(self.task_name) @classmethod def from_yaml_file(cls, path: str) -> "EvgExpansions": @@ -160,12 +159,10 @@ class EvgExpansions(BaseModel): def get_split_params(self) -> SuiteSplitParameters: """Get the parameters specified to split suites.""" - task = remove_gen_suffix(self.task) - return SuiteSplitParameters( - task_name=self.task, - suite_name=self.suite or task, - filename=self.suite or task, + task_name=self.task_name, + suite_name=self.suite or self.task, + filename=self.suite or self.task, test_file_filter=None, build_variant=self.build_variant, is_asan=self.is_asan_build(), @@ -196,13 +193,12 @@ class EvgExpansions(BaseModel): :return: Parameters to use for generating multiversion tasks. """ version_config_list = get_version_configs(is_sharded) - task = remove_gen_suffix(self.task) return MultiversionGenTaskParams( mixed_version_configs=version_config_list, is_sharded=is_sharded, resmoke_args=self.resmoke_args, - parent_task_name=task, - origin_suite=self.suite or task, + parent_task_name=self.task, + origin_suite=self.suite or self.task, use_large_distro=self.use_large_distro, large_distro_name=self.large_distro_name, config_location=self.config_location(), @@ -315,7 +311,7 @@ class MultiVersionGenerateOrchestrator: builder = EvgConfigBuilder() # pylint: disable=no-value-for-parameter builder.add_multiversion_suite(split_params, gen_params) - builder.add_display_task(GEN_PARENT_TASK, {f"{split_params.task_name}{GEN_SUFFIX}"}, + builder.add_display_task(GEN_PARENT_TASK, {f"{split_params.task_name}"}, evg_expansions.build_variant) return builder.build(f"{evg_expansions.task}.json") diff --git a/buildscripts/evergreen_generate_resmoke_tasks.py b/buildscripts/evergreen_generate_resmoke_tasks.py index 18e6682f353..16ff4ca96d3 100755 --- a/buildscripts/evergreen_generate_resmoke_tasks.py +++ b/buildscripts/evergreen_generate_resmoke_tasks.py @@ -19,6 +19,7 @@ from evergreen.api import EvergreenApi, RetryingEvergreenApi # Get relative imports to work when the package is not installed on the PYTHONPATH. from buildscripts.task_generation.gen_task_validation import GenTaskValidationService +from buildscripts.util.taskname import remove_gen_suffix if __name__ == "__main__" and __package__ is None: sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) @@ -30,8 +31,7 @@ from buildscripts.task_generation.gen_task_service import GenTaskOptions, Resmok from buildscripts.task_generation.suite_split_strategies import SplitStrategy, FallbackStrategy, \ greedy_division, round_robin_fallback from buildscripts.task_generation.resmoke_proxy import ResmokeProxyConfig -from buildscripts.task_generation.suite_split import SuiteSplitConfig, \ - SuiteSplitParameters +from buildscripts.task_generation.suite_split import SuiteSplitConfig, SuiteSplitParameters from buildscripts.util.cmdutils import enable_logging from buildscripts.util.fileops import read_yaml_file # pylint: enable=wrong-import-position @@ -165,13 +165,6 @@ class EvgExpansions(BaseModel): ) -def remove_gen_suffix(task_name): - """Remove '_gen' suffix from task_name.""" - if task_name.endswith(GEN_SUFFIX): - return task_name[:-4] - return task_name - - class EvgGenResmokeTaskOrchestrator: """Orchestrator for generating an resmoke tasks.""" diff --git a/buildscripts/task_generation/suite_split.py b/buildscripts/task_generation/suite_split.py index 4b929f7bd9c..a6c6976ba67 100644 --- a/buildscripts/task_generation/suite_split.py +++ b/buildscripts/task_generation/suite_split.py @@ -16,13 +16,12 @@ from buildscripts.task_generation.resmoke_proxy import ResmokeProxyService from buildscripts.task_generation.suite_split_strategies import SplitStrategy, FallbackStrategy from buildscripts.task_generation.timeout import TimeoutEstimate from buildscripts.util import taskname +from buildscripts.util.taskname import remove_gen_suffix from buildscripts.util.teststats import HistoricTaskData, TestRuntime, normalize_test_name LOGGER = structlog.getLogger(__name__) -GEN_SUFFIX = "_gen" CLEAN_EVERY_N_HOOK = "CleanEveryN" -ASAN_SIGNATURE = "detect_leaks=1" HEADER_TEMPLATE = """# DO NOT EDIT THIS FILE. All manual edits will be lost. # This file was generated by {file} from # {suite_file}. @@ -31,13 +30,6 @@ HEADER_TEMPLATE = """# DO NOT EDIT THIS FILE. All manual edits will be lost. # pylint: disable=too-many-arguments -def remove_gen_suffix(task_name: str) -> str: - """Remove '_gen' suffix from task_name.""" - if task_name.endswith(GEN_SUFFIX): - return task_name[:-4] - return task_name - - def update_suite_config(suite_config, roots=None, excludes=None): """ Update suite config based on the roots and excludes passed in. diff --git a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py index 5ff8e6ba1d2..6cf64389b34 100644 --- a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py +++ b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py @@ -230,14 +230,3 @@ class TestAcceptance(unittest.TestCase): # Is there a task in the config for all the suites we created? self.assertEqual(expected_suite_count, len(shrub_config["tasks"])) - - -class TestHelperMethods(unittest.TestCase): - def test_removes_gen_suffix(self): - input_task_name = "sharding_auth_auditg_gen" - self.assertEqual("sharding_auth_auditg", under_test.remove_gen_suffix(input_task_name)) - - def test_doesnt_remove_non_gen_suffix(self): - input_task_name = "sharded_multi_stmt_txn_jscore_passthroug" - self.assertEqual("sharded_multi_stmt_txn_jscore_passthroug", - under_test.remove_gen_suffix(input_task_name)) diff --git a/buildscripts/tests/util/test_taskname.py b/buildscripts/tests/util/test_taskname.py index 7fa4dbf5700..22ab279066a 100644 --- a/buildscripts/tests/util/test_taskname.py +++ b/buildscripts/tests/util/test_taskname.py @@ -2,14 +2,25 @@ import unittest -from buildscripts.util import taskname +import buildscripts.util.taskname as under_test # pylint: disable=missing-docstring,protected-access class TestNameTask(unittest.TestCase): def test_name_task_with_width_one(self): - self.assertEqual("name_3_var", taskname.name_generated_task("name", 3, 10, "var")) + self.assertEqual("name_3_var", under_test.name_generated_task("name", 3, 10, "var")) def test_name_task_with_width_four(self): - self.assertEqual("task_3141_var", taskname.name_generated_task("task", 3141, 5000, "var")) + self.assertEqual("task_3141_var", under_test.name_generated_task("task", 3141, 5000, "var")) + + +class TestRemoveGenSuffix(unittest.TestCase): + def test_removes_gen_suffix(self): + input_task_name = "sharding_auth_auditg_gen" + self.assertEqual("sharding_auth_auditg", under_test.remove_gen_suffix(input_task_name)) + + def test_doesnt_remove_non_gen_suffix(self): + input_task_name = "sharded_multi_stmt_txn_jscore_passthroug" + self.assertEqual("sharded_multi_stmt_txn_jscore_passthroug", + under_test.remove_gen_suffix(input_task_name)) diff --git a/buildscripts/util/taskname.py b/buildscripts/util/taskname.py index c7b3141cf20..0f7de9bd32e 100644 --- a/buildscripts/util/taskname.py +++ b/buildscripts/util/taskname.py @@ -2,6 +2,8 @@ import math +GEN_SUFFIX = "_gen" + def name_generated_task(parent_name, task_index, total_tasks, variant=None): """ @@ -19,3 +21,15 @@ def name_generated_task(parent_name, task_index, total_tasks, variant=None): index_width = int(math.ceil(math.log10(total_tasks))) return f"{parent_name}_{str(task_index).zfill(index_width)}{suffix}" + + +def remove_gen_suffix(task_name: str) -> str: + """ + Remove '_gen' suffix from task_name. + + :param task_name: Original task name. + :return: Task name with '_gen' removed, if it exists. + """ + if task_name.endswith(GEN_SUFFIX): + return task_name[:-4] + return task_name diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 8e403878d6c..1573ffabea6 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -1409,6 +1409,7 @@ functions: permissions: public-read content_type: application/gzip display_name: Generated Task Config - Execution ${execution} + optional: true - command: timeout.update params: |