summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuildscripts/burn_in_tests.py9
-rw-r--r--buildscripts/burn_in_tests_multiversion.py1
-rw-r--r--buildscripts/ciconfig/evergreen.py14
-rw-r--r--buildscripts/evergreen_burn_in_tests.py6
-rwxr-xr-xbuildscripts/evergreen_gen_fuzzer_tests.py6
-rwxr-xr-xbuildscripts/evergreen_gen_multiversion_tests.py4
-rwxr-xr-xbuildscripts/evergreen_generate_resmoke_tasks.py9
-rw-r--r--buildscripts/patch_builds/task_generation.py8
-rw-r--r--buildscripts/selected_tests.py2
-rw-r--r--buildscripts/task_generation/task_types/fuzzer_tasks.py10
-rw-r--r--buildscripts/task_generation/task_types/resmoke_tasks.py12
-rw-r--r--buildscripts/tests/ciconfig/test_evergreen.py21
-rw-r--r--buildscripts/tests/patch_builds/test_task_generation.py4
-rw-r--r--buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py2
-rw-r--r--buildscripts/tests/task_generation/task_types/test_resmoke_tasks.py2
-rw-r--r--buildscripts/tests/task_generation/test_gen_task_service.py2
-rw-r--r--buildscripts/tests/test_burn_in_tags.py2
-rw-r--r--buildscripts/tests/test_burn_in_tests.py14
-rw-r--r--buildscripts/tests/test_burn_in_tests_multiversion.py36
-rw-r--r--buildscripts/tests/test_evergreen_burn_in_tests.py4
-rw-r--r--buildscripts/tests/test_selected_tests.py8
-rw-r--r--etc/evergreen.yml46
-rwxr-xr-xevergreen/prelude.sh2
-rw-r--r--evergreen/resmoke_tests_execute.sh8
24 files changed, 96 insertions, 136 deletions
diff --git a/buildscripts/burn_in_tests.py b/buildscripts/burn_in_tests.py
index b44284e8022..e7ca49ce25a 100755
--- a/buildscripts/burn_in_tests.py
+++ b/buildscripts/burn_in_tests.py
@@ -257,14 +257,14 @@ class TaskInfo(NamedTuple):
display_task_name: Display name of task.
resmoke_args: Arguments to provide to resmoke on task invocation.
tests: List of tests to run as part of task.
- use_multiversion: If running under multiversion, path to multiversion binaries.
+ require_multiversion: Requires downloading Multiversion binaries.
distro: Evergreen distro task runs on.
"""
display_task_name: str
resmoke_args: str
tests: List[str]
- use_multiversion: Optional[str]
+ require_multiversion: Optional[bool]
distro: str
@classmethod
@@ -281,8 +281,9 @@ class TaskInfo(NamedTuple):
"""
return cls(
display_task_name=_get_task_name(task), resmoke_args=_set_resmoke_args(task),
- tests=tests_by_suite[task.resmoke_suite], use_multiversion=task.multiversion_path,
- distro=_distro_to_run_task_on(task, evg_proj_config, build_variant))
+ tests=tests_by_suite[task.resmoke_suite],
+ require_multiversion=task.require_multiversion, distro=_distro_to_run_task_on(
+ task, evg_proj_config, build_variant))
def create_task_list(evergreen_conf: EvergreenProjectConfig, build_variant: str,
diff --git a/buildscripts/burn_in_tests_multiversion.py b/buildscripts/burn_in_tests_multiversion.py
index e382ca83ac3..18891b90b6c 100644
--- a/buildscripts/burn_in_tests_multiversion.py
+++ b/buildscripts/burn_in_tests_multiversion.py
@@ -40,7 +40,6 @@ MULTIVERSION_CONFIG_KEY = gen_multiversion.MULTIVERSION_CONFIG_KEY
MULTIVERSION_PASSTHROUGH_TAG = gen_multiversion.PASSTHROUGH_TAG
RANDOM_MULTIVERSION_REPLSETS_TAG = gen_multiversion.RANDOM_REPLSETS_TAG
BURN_IN_MULTIVERSION_TASK = gen_multiversion.BURN_IN_TASK
-TASK_PATH_SUFFIX = "/data/multiversion"
DEFAULT_CONFIG_DIR = "generated_resmoke_config"
DEFAULT_TEST_SUITE_DIR = os.path.join("buildscripts", "resmokeconfig", "suites")
diff --git a/buildscripts/ciconfig/evergreen.py b/buildscripts/ciconfig/evergreen.py
index e4e517a9647..877acf42026 100644
--- a/buildscripts/ciconfig/evergreen.py
+++ b/buildscripts/ciconfig/evergreen.py
@@ -164,11 +164,6 @@ class Task(object):
return self.find_func_command("do multiversion setup")
@property
- def is_multiversion_task(self):
- """Return True if a multiversion path is found."""
- return self.multiversion_setup_command is not None or self.multiversion_path is not None
-
- @property
def generated_task_name(self):
"""
Get basename of the tasks generated by this _gen task.
@@ -192,15 +187,16 @@ class Task(object):
return suite_name
@property
- def multiversion_path(self):
+ def require_multiversion(self):
"""Get the multiversion path if task uses multiversion setup, or None."""
+ command_obj = None
if self.is_run_tests_task:
- return self.run_tests_command.get("vars", {}).get("task_path_suffix")
+ command_obj = self.run_tests_command
if self.is_generate_resmoke_task:
- return self.generate_resmoke_tasks_command.get("vars", {}).get("use_multiversion")
+ command_obj = self.generate_resmoke_tasks_command
- return None
+ return command_obj.get("vars", {}).get("require_multiversion")
@property
def resmoke_args(self):
diff --git a/buildscripts/evergreen_burn_in_tests.py b/buildscripts/evergreen_burn_in_tests.py
index 14fd46672cc..b19ef681a7a 100644
--- a/buildscripts/evergreen_burn_in_tests.py
+++ b/buildscripts/evergreen_burn_in_tests.py
@@ -227,7 +227,6 @@ class TaskGenerator:
:param test_name: Name of test that should be executed.
:return: Configuration for generating the specified task.
"""
- multiversion_path = self.task_info.use_multiversion
resmoke_args = self.task_info.resmoke_args
sub_task_name = self.generate_name(index)
@@ -238,11 +237,10 @@ class TaskGenerator:
"resmoke_args":
f"{resmoke_args} {self.repeat_config.generate_resmoke_options()} {test_unix_style}"
}
- if multiversion_path:
- run_tests_vars["task_path_suffix"] = multiversion_path
timeout = self.generate_timeouts(test_name)
- commands = resmoke_commands("run tests", run_tests_vars, timeout, multiversion_path)
+ commands = resmoke_commands("run tests", run_tests_vars, timeout,
+ self.task_info.require_multiversion)
dependencies = {TaskDependency(TASK_WITH_ARTIFACTS)}
return Task(sub_task_name, commands, dependencies)
diff --git a/buildscripts/evergreen_gen_fuzzer_tests.py b/buildscripts/evergreen_gen_fuzzer_tests.py
index ddaf298df92..b0c41011741 100755
--- a/buildscripts/evergreen_gen_fuzzer_tests.py
+++ b/buildscripts/evergreen_gen_fuzzer_tests.py
@@ -45,7 +45,7 @@ class EvgExpansions(BaseModel):
should_shuffle: Should remove shuffle tests before executing.
suite: Resmoke suite to run the tests.
task_id: ID of task currently being executed.
- task_path_suffix: Multiversion configuration if needed.
+ require_multiversion: Requires downloading Multiversion binaries.
timeout_secs: Timeout to set for task execution.
use_large_distro: Should tasks be generated to run on a large distro.
"""
@@ -68,7 +68,7 @@ class EvgExpansions(BaseModel):
task_id: str
timeout_secs: int
use_large_distro: Optional[bool]
- task_path_suffix: Optional[str]
+ require_multiversion: Optional[bool]
@classmethod
def from_yaml_file(cls, path: str) -> "EvgExpansions":
@@ -97,7 +97,7 @@ class EvgExpansions(BaseModel):
jstestfuzz_vars=self.jstestfuzz_vars, variant=self.build_variant,
continue_on_failure=self.continue_on_failure, resmoke_jobs_max=self.resmoke_jobs_max,
should_shuffle=self.should_shuffle, timeout_secs=self.timeout_secs,
- use_multiversion=self.task_path_suffix, suite=self.suite,
+ require_multiversion=self.require_multiversion, suite=self.suite,
use_large_distro=self.use_large_distro, large_distro_name=self.large_distro_name,
config_location=
f"{self.build_variant}/{self.revision}/generate_tasks/{self.name}_gen-{self.build_id}.tgz"
diff --git a/buildscripts/evergreen_gen_multiversion_tests.py b/buildscripts/evergreen_gen_multiversion_tests.py
index 54de6eba659..2a6686fa95c 100755
--- a/buildscripts/evergreen_gen_multiversion_tests.py
+++ b/buildscripts/evergreen_gen_multiversion_tests.py
@@ -88,7 +88,7 @@ class EvgExpansions(BaseModel):
resmoke_jobs_max: Optional[int]
should_shuffle: Optional[bool]
timeout_secs: Optional[int]
- use_multiversion: Optional[str]
+ require_multiversion: Optional[bool]
use_large_distro: Optional[bool]
large_distro_name: Optional[str]
revision: str
@@ -151,7 +151,7 @@ class EvgExpansions(BaseModel):
resmoke_jobs_max=self.resmoke_jobs_max,
should_shuffle=self.should_shuffle,
timeout_secs=self.timeout_secs,
- use_multiversion=self.use_multiversion,
+ require_multiversion=self.require_multiversion,
suite=self.suite or self.task,
use_large_distro=self.use_large_distro,
large_distro_name=self.large_distro_name,
diff --git a/buildscripts/evergreen_generate_resmoke_tasks.py b/buildscripts/evergreen_generate_resmoke_tasks.py
index 16ff4ca96d3..9a05eb14ca7 100755
--- a/buildscripts/evergreen_generate_resmoke_tasks.py
+++ b/buildscripts/evergreen_generate_resmoke_tasks.py
@@ -73,7 +73,7 @@ class EvgExpansions(BaseModel):
task_id: ID of task creating the generated configuration.
task_name: Name of task creating the generated configuration.
use_large_distro: Should the generated tasks run on "large" distros.
- use_multiversion: Multiversion configuration if generated tasks are multiversion.
+ require_multiversion: Requires downloading Multiversion binaries.
"""
build_id: str
@@ -93,7 +93,7 @@ class EvgExpansions(BaseModel):
task_id: str
task_name: str
use_large_distro: bool = False
- use_multiversion: Optional[str]
+ require_multiversion: Optional[bool]
@classmethod
def from_yaml_file(cls, path: str) -> "EvgExpansions":
@@ -159,8 +159,9 @@ class EvgExpansions(BaseModel):
"""Get the parameters to use for generating tasks."""
return ResmokeGenTaskParams(
use_large_distro=self.use_large_distro, large_distro_name=self.large_distro_name,
- use_multiversion=self.use_multiversion, repeat_suites=self.resmoke_repeat_suites,
- resmoke_args=self.resmoke_args, resmoke_jobs_max=self.resmoke_jobs_max, config_location=
+ require_multiversion=self.require_multiversion,
+ repeat_suites=self.resmoke_repeat_suites, resmoke_args=self.resmoke_args,
+ resmoke_jobs_max=self.resmoke_jobs_max, config_location=
f"{self.build_variant}/{self.revision}/generate_tasks/{self.task}_gen-{self.build_id}.tgz"
)
diff --git a/buildscripts/patch_builds/task_generation.py b/buildscripts/patch_builds/task_generation.py
index c4ad822fc0e..b5933a5c4f9 100644
--- a/buildscripts/patch_builds/task_generation.py
+++ b/buildscripts/patch_builds/task_generation.py
@@ -13,21 +13,21 @@ MAX_SHRUB_TASKS_FOR_SINGLE_TASK = 1000
def resmoke_commands(run_tests_fn_name: str, run_tests_vars: Dict[str, Any],
timeout_info: TimeoutInfo,
- use_multiversion: Optional[str] = None) -> List[ShrubCommand]:
+ require_multiversion: Optional[bool] = None) -> List[ShrubCommand]:
"""
Create a list of commands to run a resmoke task.
:param run_tests_fn_name: Name of function to run resmoke tests.
:param run_tests_vars: Dictionary of variables to pass to run_tests function.
:param timeout_info: Timeout info for task.
- :param use_multiversion: If True include multiversion setup.
+ :param require_multiversion: Requires downloading Multiversion binaries.
:return: List of commands to run a resmoke task.
"""
commands = [
timeout_info.cmd,
FunctionCall("do setup"),
- FunctionCall("configure evergreen api credentials") if use_multiversion else None,
- FunctionCall("do multiversion setup") if use_multiversion else None,
+ FunctionCall("configure evergreen api credentials") if require_multiversion else None,
+ FunctionCall("do multiversion setup") if require_multiversion else None,
FunctionCall(run_tests_fn_name, run_tests_vars),
]
diff --git a/buildscripts/selected_tests.py b/buildscripts/selected_tests.py
index ffdec868bae..bbb6e4fbbfd 100644
--- a/buildscripts/selected_tests.py
+++ b/buildscripts/selected_tests.py
@@ -419,7 +419,7 @@ class SelectedTestsOrchestrator:
gen_params = ResmokeGenTaskParams(
use_large_distro=task_config.get("use_large_distro", False),
large_distro_name=task_config.get("large_distro_name"),
- use_multiversion=task_config.get("use_multiversion"),
+ require_multiversion=task_config.get("require_multiversion"),
repeat_suites=task_config.get("repeat_suites", 1),
resmoke_args=task_config["resmoke_args"],
resmoke_jobs_max=task_config.get("resmoke_jobs_max"),
diff --git a/buildscripts/task_generation/task_types/fuzzer_tasks.py b/buildscripts/task_generation/task_types/fuzzer_tasks.py
index f7ece45c0b7..883b8ca814c 100644
--- a/buildscripts/task_generation/task_types/fuzzer_tasks.py
+++ b/buildscripts/task_generation/task_types/fuzzer_tasks.py
@@ -34,7 +34,7 @@ class FuzzerGenTaskParams(NamedTuple):
resmoke_jobs_max: Maximum number of jobs resmoke should execute in parallel.
should_shuffle: Should tests be executed out of order.
timeout_secs: Timeout before test execution is considered hung.
- use_multiversion: Multiversion configuration if tests should run in multiversion mode.
+ require_multiversion: Requires downloading Multiversion binaries.
use_large_distro: Should tests be generated on a large distro.
add_to_display_task: Should generated tasks be grouped in a display task.
"""
@@ -51,7 +51,7 @@ class FuzzerGenTaskParams(NamedTuple):
resmoke_jobs_max: int
should_shuffle: bool
timeout_secs: int
- use_multiversion: Optional[str]
+ require_multiversion: Optional[bool]
use_large_distro: Optional[bool]
large_distro_name: Optional[str]
config_location: str
@@ -96,7 +96,7 @@ class FuzzerGenTaskService:
"resmoke_args": f"{suite_arg} {params.resmoke_args}",
"resmoke_jobs_max": params.resmoke_jobs_max,
"should_shuffle": params.should_shuffle,
- "task_path_suffix": params.use_multiversion,
+ "require_multiversion": params.require_multiversion,
"timeout_secs": params.timeout_secs,
"task": params.task_name,
"gen_task_config_location": params.config_location,
@@ -105,8 +105,8 @@ class FuzzerGenTaskService:
commands = [
FunctionCall("do setup"),
FunctionCall("configure evergreen api credentials")
- if params.use_multiversion else None,
- FunctionCall("do multiversion setup") if params.use_multiversion else None,
+ if params.require_multiversion else None,
+ FunctionCall("do multiversion setup") if params.require_multiversion else None,
FunctionCall("setup jstestfuzz"),
FunctionCall("run jstestfuzz", params.jstestfuzz_params()),
FunctionCall("run generated tests", run_tests_vars)
diff --git a/buildscripts/task_generation/task_types/resmoke_tasks.py b/buildscripts/task_generation/task_types/resmoke_tasks.py
index c583364426e..8bb0063edd3 100644
--- a/buildscripts/task_generation/task_types/resmoke_tasks.py
+++ b/buildscripts/task_generation/task_types/resmoke_tasks.py
@@ -32,7 +32,7 @@ class ResmokeGenTaskParams(NamedTuple):
Parameters describing how a specific resmoke suite should be generated.
use_large_distro: Whether generated tasks should be run on a "large" distro.
- use_multiversion: Multiversion configuration if generated tasks are multiversion.
+ require_multiversion: Requires downloading Multiversion binaries.
repeat_suites: How many times generated suites should be repeated.
resmoke_args: Arguments to pass to resmoke in generated tasks.
resmoke_jobs_max: Max number of jobs that resmoke should execute in parallel.
@@ -41,7 +41,7 @@ class ResmokeGenTaskParams(NamedTuple):
use_large_distro: bool
large_distro_name: Optional[str]
- use_multiversion: Optional[str]
+ require_multiversion: Optional[bool]
repeat_suites: int
resmoke_args: str
resmoke_jobs_max: Optional[int]
@@ -136,12 +136,12 @@ class ResmokeGenTaskService:
run_tests_vars = self._get_run_tests_vars(target_suite_file, suite.suite_name, params,
suite.build_variant)
- use_multiversion = params.use_multiversion
+ require_multiversion = params.require_multiversion
timeout_cmd = timeout_est.generate_timeout_cmd(self.gen_task_options.is_patch,
params.repeat_suites,
self.gen_task_options.use_default_timeouts)
commands = resmoke_commands("run generated tests", run_tests_vars, timeout_cmd,
- use_multiversion)
+ require_multiversion)
return Task(sub_task_name, commands, self._get_dependencies())
@@ -165,8 +165,8 @@ class ResmokeGenTaskService:
if params.resmoke_jobs_max:
variables["resmoke_jobs_max"] = params.resmoke_jobs_max
- if params.use_multiversion:
- variables["task_path_suffix"] = params.use_multiversion
+ if params.require_multiversion:
+ variables["require_multiversion"] = params.require_multiversion
return variables
diff --git a/buildscripts/tests/ciconfig/test_evergreen.py b/buildscripts/tests/ciconfig/test_evergreen.py
index e1734016023..40d473c0f47 100644
--- a/buildscripts/tests/ciconfig/test_evergreen.py
+++ b/buildscripts/tests/ciconfig/test_evergreen.py
@@ -156,20 +156,19 @@ class TestTask(unittest.TestCase): # pylint: disable=too-many-public-methods
self.assertDictEqual(task_commands[0], task.run_tests_command)
def test_run_tests_multiversion(self):
- multiversion_path = "/data/multiversion"
+ require_multiversion = True
task_commands = [{"func": "do multiversion setup"},
{
"func": "run tests", "vars": {
- "task_path_suffix": multiversion_path,
+ "require_multiversion": True,
"resmoke_args": "--suites=core --shellWriteMode=commands"
}
}]
task_dict = {"name": "jsCore", "commands": task_commands}
task = _evergreen.Task(task_dict)
- self.assertTrue(task.is_multiversion_task)
self.assertEqual(task.multiversion_setup_command, {"func": "do multiversion setup"})
- self.assertEqual(multiversion_path, task.multiversion_path)
+ self.assertEqual(require_multiversion, task.require_multiversion)
def test_run_tests_no_multiversion(self):
task_commands = [{
@@ -179,9 +178,9 @@ class TestTask(unittest.TestCase): # pylint: disable=too-many-public-methods
task_dict = {"name": "jsCore", "commands": task_commands}
task = _evergreen.Task(task_dict)
- self.assertFalse(task.is_multiversion_task)
+ self.assertIsNone(task.require_multiversion)
self.assertIsNone(task.multiversion_setup_command)
- self.assertIsNone(task.multiversion_path)
+ self.assertIsNone(task.require_multiversion)
def test_resmoke_args_gen(self):
task_commands = [{
@@ -271,19 +270,18 @@ class TestTask(unittest.TestCase): # pylint: disable=too-many-public-methods
self.assertEqual("jsCore", task.generated_task_name)
def test_gen_resmoke_multiversion(self):
- multiversion_path = "/data/multiversion"
+ require_multiversion = True
task_name = "core"
task_commands = [{
"func": "generate resmoke tasks", "vars": {
"task": task_name, "resmoke_args": "--shellWriteMode=commands",
- "use_multiversion": multiversion_path
+ "require_multiversion": require_multiversion
}
}]
task_dict = {"name": "jsCore", "commands": task_commands}
task = _evergreen.Task(task_dict)
- self.assertTrue(task.is_multiversion_task)
- self.assertEqual(multiversion_path, task.multiversion_path)
+ self.assertEqual(require_multiversion, task.require_multiversion)
def test_gen_resmoke_no_multiversion(self):
task_name = "core"
@@ -294,8 +292,7 @@ class TestTask(unittest.TestCase): # pylint: disable=too-many-public-methods
task_dict = {"name": "jsCore", "commands": task_commands}
task = _evergreen.Task(task_dict)
- self.assertFalse(task.is_multiversion_task)
- self.assertIsNone(task.multiversion_path)
+ self.assertIsNone(task.require_multiversion)
def test_get_vars_suite_name_generate_resmoke_tasks(self):
task_name = "jsCore"
diff --git a/buildscripts/tests/patch_builds/test_task_generation.py b/buildscripts/tests/patch_builds/test_task_generation.py
index e0609d1d6f3..11e12f7cb2e 100644
--- a/buildscripts/tests/patch_builds/test_task_generation.py
+++ b/buildscripts/tests/patch_builds/test_task_generation.py
@@ -23,7 +23,7 @@ class TestResmokeCommand(unittest.TestCase):
timeout_info = under_test.TimeoutInfo.default_timeout()
commands = under_test.resmoke_commands(run_tests, test_vars, timeout_info,
- use_multiversion="multiversion")
+ require_multiversion="multiversion")
# 4 expected command = 1 for setup + 1 for running tests + 2 for multiversion setup.
self.assertEqual(4, len(commands))
@@ -44,7 +44,7 @@ class TestResmokeCommand(unittest.TestCase):
timeout_info = under_test.TimeoutInfo.overridden(timeout=5)
commands = under_test.resmoke_commands(run_tests, test_vars, timeout_info,
- use_multiversion="multiversion")
+ require_multiversion="multiversion")
# 5 expected command = 1 for setup + 1 for running tests + 2 for multiversion setup +
# 1 for timeout.
diff --git a/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py b/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py
index 7af8157e2da..10f556e9311 100644
--- a/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py
+++ b/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py
@@ -21,7 +21,7 @@ def build_mock_fuzzer_params(multi_version=None, jstestfuzz_vars="vars for jstes
resmoke_jobs_max=5,
should_shuffle=True,
timeout_secs=100,
- use_multiversion=multi_version,
+ require_multiversion=multi_version,
use_large_distro=None,
add_to_display_task=True,
large_distro_name="large distro",
diff --git a/buildscripts/tests/task_generation/task_types/test_resmoke_tasks.py b/buildscripts/tests/task_generation/task_types/test_resmoke_tasks.py
index a6f9b2670bd..82425354f1c 100644
--- a/buildscripts/tests/task_generation/task_types/test_resmoke_tasks.py
+++ b/buildscripts/tests/task_generation/task_types/test_resmoke_tasks.py
@@ -34,7 +34,7 @@ def build_mock_gen_options(use_default_timeouts=False):
def build_mock_gen_params(repeat_suites=1, resmoke_args="resmoke args"):
return under_test.ResmokeGenTaskParams(
use_large_distro=False,
- use_multiversion=None,
+ require_multiversion=None,
repeat_suites=repeat_suites,
resmoke_args=resmoke_args,
resmoke_jobs_max=None,
diff --git a/buildscripts/tests/task_generation/test_gen_task_service.py b/buildscripts/tests/task_generation/test_gen_task_service.py
index 611d15b0029..c8d268e4b76 100644
--- a/buildscripts/tests/task_generation/test_gen_task_service.py
+++ b/buildscripts/tests/task_generation/test_gen_task_service.py
@@ -26,7 +26,7 @@ def build_mock_fuzzer_params(multi_version=None, use_large_distro=None, add_to_d
resmoke_jobs_max=5,
should_shuffle=True,
timeout_secs=100,
- use_multiversion=multi_version,
+ require_multiversion=multi_version,
use_large_distro=use_large_distro,
add_to_display_task=add_to_display,
large_distro_name=large_distro_name,
diff --git a/buildscripts/tests/test_burn_in_tags.py b/buildscripts/tests/test_burn_in_tags.py
index dc8672bc350..9738ffa7d0b 100644
--- a/buildscripts/tests/test_burn_in_tags.py
+++ b/buildscripts/tests/test_burn_in_tags.py
@@ -126,7 +126,7 @@ class TestGenerateEvgTasks(unittest.TestCase):
display_task_name="aggregation_mongos_passthrough",
resmoke_args="--suites=aggregation_mongos_passthrough --storageEngine=wiredTiger",
tests=["jstests/aggregation/ifnull.js"],
- use_multiversion=None,
+ require_multiversion=None,
distro="",
)
} # yapf: disable
diff --git a/buildscripts/tests/test_burn_in_tests.py b/buildscripts/tests/test_burn_in_tests.py
index 58cea86203b..009749f5fc3 100644
--- a/buildscripts/tests/test_burn_in_tests.py
+++ b/buildscripts/tests/test_burn_in_tests.py
@@ -24,7 +24,7 @@ def create_tests_by_task_mock(n_tasks, n_tests):
f"task_{i}_gen":
under_test.TaskInfo(display_task_name=f"task_{i}", resmoke_args=f"--suites=suite_{i}",
tests=[f"jstests/tests_{j}" for j in range(n_tests)],
- use_multiversion=None, distro=f"distro_{i}")
+ require_multiversion=None, distro=f"distro_{i}")
for i in range(n_tasks)
}
@@ -321,7 +321,7 @@ def create_variant_task_mock(task_name, suite_name, distro="distro"):
variant_task.resmoke_suite = suite_name
variant_task.get_vars_suite_name.return_value = suite_name
variant_task.combined_resmoke_args = f"--suites={suite_name}"
- variant_task.multiversion_path = None
+ variant_task.require_multiversion = None
variant_task.run_on = [distro]
return variant_task
@@ -346,7 +346,7 @@ class TestTaskInfo(unittest.TestCase):
self.assertIn(suite_name, task_info.resmoke_args)
for test in test_list:
self.assertIn(test, task_info.tests)
- self.assertIsNone(task_info.use_multiversion)
+ self.assertIsNone(task_info.require_multiversion)
self.assertEqual(distro_name, task_info.distro)
def test_generated_task_no_large_on_task(self):
@@ -370,7 +370,7 @@ class TestTaskInfo(unittest.TestCase):
self.assertIn(suite_name, task_info.resmoke_args)
for test in test_list:
self.assertIn(test, task_info.tests)
- self.assertIsNone(task_info.use_multiversion)
+ self.assertIsNone(task_info.require_multiversion)
self.assertEqual(distro_name, task_info.distro)
def test_generated_task_no_large_on_build_variant(self):
@@ -394,7 +394,7 @@ class TestTaskInfo(unittest.TestCase):
self.assertIn(suite_name, task_info.resmoke_args)
for test in test_list:
self.assertIn(test, task_info.tests)
- self.assertIsNone(task_info.use_multiversion)
+ self.assertIsNone(task_info.require_multiversion)
self.assertEqual(distro_name, task_info.distro)
def test_generated_task_large_distro(self):
@@ -424,7 +424,7 @@ class TestTaskInfo(unittest.TestCase):
self.assertIn(suite_name, task_info.resmoke_args)
for test in test_list:
self.assertIn(test, task_info.tests)
- self.assertIsNone(task_info.use_multiversion)
+ self.assertIsNone(task_info.require_multiversion)
self.assertEqual(large_distro_name, task_info.distro)
@@ -472,7 +472,7 @@ class TestCreateTaskList(unittest.TestCase):
self.assertIn("suite_1", task_info.resmoke_args)
for i in range(3):
self.assertIn(f"test{i}.js", task_info.tests)
- self.assertIsNone(task_info.use_multiversion)
+ self.assertIsNone(task_info.require_multiversion)
self.assertEqual("distro 1", task_info.distro)
def test_create_task_list_with_excludes(self):
diff --git a/buildscripts/tests/test_burn_in_tests_multiversion.py b/buildscripts/tests/test_burn_in_tests_multiversion.py
index d5bcf373ef5..5d63fe76015 100644
--- a/buildscripts/tests/test_burn_in_tests_multiversion.py
+++ b/buildscripts/tests/test_burn_in_tests_multiversion.py
@@ -42,7 +42,7 @@ def create_tests_by_task_mock(n_tasks, n_tests, multiversion_values=None):
display_task_name=f"task_{i}",
resmoke_args=f"--suites=suite_{i}",
tests=[f"jstests/tests_{j}" for j in range(n_tests)],
- use_multiversion=multiversion_values[i],
+ require_multiversion=multiversion_values[i],
distro="",
)
for i in range(n_tasks)
@@ -75,7 +75,7 @@ def create_multiversion_tests_by_task_mock(n_tasks, n_tests):
display_task_name=f"task_{i}",
resmoke_args=f"--suites=suite_{i}",
tests=[f"jstests/{MV_MOCK_TESTS[MV_MOCK_SUITES[i]][j]}" for j in range(n_tests)],
- use_multiversion=None,
+ require_multiversion=None,
distro="",
)
for i in range(n_tasks)
@@ -130,7 +130,7 @@ def create_variant_task_mock(task_name, suite_name, distro="distro"):
variant_task.resmoke_suite = suite_name
variant_task.get_vars_suite_name.return_value = suite_name
variant_task.combined_resmoke_args = f"--suites={suite_name}"
- variant_task.multiversion_path = None
+ variant_task.require_multiversion = None
variant_task.run_on = [distro]
return variant_task
@@ -334,36 +334,12 @@ class TestCreateMultiversionGenerateTasksConfig(unittest.TestCase):
class TestGenerateConfig(unittest.TestCase):
- def test_validate_use_multiversion(self):
+ def test_validate_multiversion(self):
evg_conf_mock = MagicMock()
-
gen_config = under_test.GenerateConfig("build_variant", "project")
-
gen_config.validate(evg_conf_mock)
-class TestCreateGenerateTasksConfig(unittest.TestCase):
- @unittest.skipIf(sys.platform.startswith("win"), "not supported on windows")
- def test_multiversion_path_is_used(self):
- n_tasks = 1
- n_tests = 1
- build_variant = BuildVariant("variant")
- gen_config = MagicMock(run_build_variant="variant", distro=None)
- repeat_config = MagicMock()
- multiversion_path = "multiversion_path"
- tests_by_task = create_tests_by_task_mock(n_tasks, n_tests, [multiversion_path])
- mock_evg_api = MagicMock()
-
- executor = GenerateBurnInExecutor(gen_config, repeat_config, mock_evg_api)
- executor.add_config_for_build_variant(build_variant, tests_by_task)
-
- shrub_project = ShrubProject.empty().add_build_variant(build_variant)
- evg_config_dict = shrub_project.as_dict()
- tasks = evg_config_dict["tasks"]
- self.assertEqual(n_tasks * n_tests, len(tasks))
- self.assertEqual(multiversion_path, tasks[0]["commands"][3]["vars"]["task_path_suffix"])
-
-
class TestGatherTaskInfo(unittest.TestCase):
def test_multiversion_task(self):
suite_name = "suite_1"
@@ -372,7 +348,7 @@ class TestGatherTaskInfo(unittest.TestCase):
evg_conf_mock = MagicMock()
evg_conf_mock.get_task.return_value.is_generate_resmoke_task = False
task_mock = create_variant_task_mock("task 1", suite_name, distro_name)
- task_mock.multiversion_path = "/path/to/multiversion"
+ task_mock.require_multiversion = True
test_list = [f"test{i}.js" for i in range(3)]
tests_by_suite = {
suite_name: test_list,
@@ -385,5 +361,5 @@ class TestGatherTaskInfo(unittest.TestCase):
self.assertIn(suite_name, task_info.resmoke_args)
for test in test_list:
self.assertIn(test, task_info.tests)
- self.assertEqual(task_mock.multiversion_path, task_info.use_multiversion)
+ self.assertEqual(task_mock.require_multiversion, task_info.require_multiversion)
self.assertEqual(distro_name, task_info.distro)
diff --git a/buildscripts/tests/test_evergreen_burn_in_tests.py b/buildscripts/tests/test_evergreen_burn_in_tests.py
index e78f915797b..87624813cab 100644
--- a/buildscripts/tests/test_evergreen_burn_in_tests.py
+++ b/buildscripts/tests/test_evergreen_burn_in_tests.py
@@ -304,7 +304,7 @@ def create_tests_by_task_mock(n_tasks, n_tests):
f"task_{i}_gen":
under_test.TaskInfo(display_task_name=f"task_{i}", resmoke_args=f"--suites=suite_{i}",
tests=[f"jstests/tests_{j}" for j in range(n_tests)],
- use_multiversion=None, distro=f"distro_{i}")
+ require_multiversion=None, distro=f"distro_{i}")
for i in range(n_tasks)
}
@@ -369,7 +369,7 @@ class TestCreateGenerateTasksFile(unittest.TestCase):
@patch(ns("sys.exit"))
@patch(ns("validate_task_generation_limit"))
def test_cap_on_task_generate(self, validate_mock, exit_mock):
- gen_config = MagicMock(use_multiversion=False)
+ gen_config = MagicMock(require_multiversion=False)
repeat_config = MagicMock()
tests_by_task = MagicMock()
mock_evg_api = MagicMock()
diff --git a/buildscripts/tests/test_selected_tests.py b/buildscripts/tests/test_selected_tests.py
index 6f34cfff60d..9d8efdeb4aa 100644
--- a/buildscripts/tests/test_selected_tests.py
+++ b/buildscripts/tests/test_selected_tests.py
@@ -282,7 +282,7 @@ class TestGetTaskConfigsForTestMappings(unittest.TestCase):
"jstests/core/latch_analyzer.js",
],
resmoke_args="",
- use_multiversion=None,
+ require_multiversion=None,
distro="",
),
"auth_gen":
@@ -290,7 +290,7 @@ class TestGetTaskConfigsForTestMappings(unittest.TestCase):
display_task_name="task 2",
tests=["jstests/auth/auth3.js"],
resmoke_args="",
- use_multiversion=None,
+ require_multiversion=None,
distro="",
),
}
@@ -323,7 +323,7 @@ class TestGetTaskConfigsForTestMappings(unittest.TestCase):
"jstests/core/latch_analyzer.js",
],
resmoke_args="",
- use_multiversion=None,
+ require_multiversion=None,
distro="",
),
}
@@ -346,7 +346,7 @@ class TestGetTaskConfigsForTestMappings(unittest.TestCase):
"jstests/core/latch_analyzer.js",
],
resmoke_args="",
- use_multiversion=None,
+ require_multiversion=None,
distro="",
),
}
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index 66f0deace1e..572f8e11a0d 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -3111,7 +3111,7 @@ tasks:
suite: initial_sync_multiversion_fuzzer
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
name: initial_sync_multiversion_fuzzer
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## initial sync generational fuzzer ##
- <<: *jstestfuzz_template
@@ -3145,7 +3145,7 @@ tasks:
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
npm_command: agg-fuzzer
name: aggregation_multiversion_fuzzer
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## Standalone generational fuzzer for multiversion aggregation expressions ##
- <<: *jstestfuzz_template
@@ -3164,7 +3164,7 @@ tasks:
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
npm_command: agg-expr-fuzzer
name: aggregation_expression_multiversion_fuzzer
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## Standalone generational fuzzer for checking optimized and unoptimized expression equivalence
- <<: *jstestfuzz_template
@@ -3294,7 +3294,7 @@ tasks:
suite: generational_fuzzer
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
name: update_fuzzer
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## jstestfuzz replication update generational fuzzer ##
- <<: *jstestfuzz_template
@@ -3310,7 +3310,7 @@ tasks:
suite: generational_fuzzer_replication
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
name: update_fuzzer_replication
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## rollback multiversion fuzzer ##
- <<: *jstestfuzz_template
@@ -3328,7 +3328,7 @@ tasks:
# index build commit quorum.
resmoke_args: "--mongodSetParameters='{logComponentVerbosity: {command: 2}, enableIndexBuildCommitQuorum: false}'"
name: rollback_multiversion_fuzzer
- task_path_suffix: "/data/multiversion"
+ require_multiversion: true
## rollback generational fuzzer ##
- <<: *jstestfuzz_template
@@ -3666,8 +3666,7 @@ tasks:
resmoke_args: "--storageEngine=wiredTiger --mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
suite: jstestfuzz_replication
is_jstestfuzz: true
- use_multiversion: /data/multiversion
- task_path_suffix: /data/multiversion
+ require_multiversion: true
npm_command: jstestfuzz
## jstestfuzz initial sync replica set ##
@@ -3723,8 +3722,7 @@ tasks:
resmoke_args: "--storageEngine=wiredTiger --mongodSetParameters='{logComponentVerbosity: {command: 2}}'"
suite: jstestfuzz_sharded
is_jstestfuzz: true
- use_multiversion: /data/multiversion
- task_path_suffix: /data/multiversion
+ require_multiversion: true
npm_command: jstestfuzz
## jstestfuzz sharded cluster causal consistency ##
@@ -3853,7 +3851,7 @@ tasks:
vars:
suite: replica_sets_jscore_passthrough
resmoke_args: --storageEngine=wiredTiger --includeWithAnyTags=multiversion_sanity_check
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- name: replica_sets_jscore_multiversion_passthrough_gen
tags: ["multiversion_passthrough"]
@@ -3862,7 +3860,7 @@ tasks:
vars:
suite: replica_sets_jscore_passthrough
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
# Check that the mutational fuzzer can parse JS files modified in a patch build.
- name: lint_fuzzer_sanity_patch
@@ -4098,7 +4096,7 @@ tasks:
vars:
suite: change_streams
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- <<: *task_template
name: change_streams_update_v1_oplog
@@ -4163,7 +4161,7 @@ tasks:
vars:
suite: change_streams_sharded_collections_passthrough
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- <<: *task_template
name: change_streams_whole_db_passthrough
@@ -4808,7 +4806,7 @@ tasks:
- func: "generate resmoke tasks"
vars:
resmoke_args: "--storageEngine=wiredTiger"
- use_multiversion: /data/multiversion
+ require_multiversion: true
- name: multiversion_gen
tags: []
@@ -4816,7 +4814,7 @@ tasks:
- func: "generate resmoke tasks"
vars:
resmoke_args: "--storageEngine=wiredTiger"
- use_multiversion: /data/multiversion
+ require_multiversion: true
# Tests the runFeatureFlagMultiversionTest helper.
# This requires the 'featureFlagToaster' and 'featureFlagSpoon' parameters to be set to true on
@@ -4827,7 +4825,7 @@ tasks:
- func: "generate resmoke tasks"
vars:
resmoke_args: "--storageEngine=wiredTiger"
- use_multiversion: /data/multiversion
+ require_multiversion: true
- name: unittest_shell_hang_analyzer_gen
tags: []
@@ -4900,7 +4898,7 @@ tasks:
vars:
suite: sharded_collections_jscore_passthrough
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- <<: *task_template
name: sharding_jscore_passthrough
@@ -4919,7 +4917,7 @@ tasks:
vars:
suite: sharding_jscore_passthrough
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- name: sharding_api_version_jscore_passthrough_gen
tags: ["sharding", "jscore"]
@@ -5091,7 +5089,7 @@ tasks:
vars:
suite: concurrency_replication
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- name: concurrency_replication_causal_consistency_gen
tags: ["concurrency", "repl", "large", "non_live_record"]
@@ -5174,7 +5172,7 @@ tasks:
vars:
suite: concurrency_sharded_replication
resmoke_args: --storageEngine=wiredTiger
- task_path_suffix: /data/multiversion
+ require_multiversion: true
- name: concurrency_sharded_replication_with_balancer_gen
tags: ["concurrency", "common", "read_concern_maj", "large", "sharded"]
@@ -5490,7 +5488,7 @@ tasks:
- func: "generate randomized multiversion tasks"
vars:
resmoke_args: --storageEngine=wiredTiger --tagFile=generated_resmoke_config/multiversion_exclude_tags.yml
- use_multiversion: /data/multiversion
+ require_multiversion: true
suite: replica_sets_multiversion
- <<: *task_template
@@ -5517,7 +5515,7 @@ tasks:
vars:
use_large_distro: "true"
resmoke_args: --storageEngine=wiredTiger --tagFile=generated_resmoke_config/multiversion_exclude_tags.yml
- use_multiversion: /data/multiversion
+ require_multiversion: true
suite: sharding_multiversion
- name: sharding_max_mirroring_gen
@@ -5575,7 +5573,7 @@ tasks:
- func: "generate explicit multiversion tasks"
vars:
use_large_distro: "true"
- use_multiversion: /data/multiversion
+ require_multiversion: true
resmoke_args: --tagFile=generated_resmoke_config/multiversion_exclude_tags.yml
- name: sharding_update_v1_oplog_gen
diff --git a/evergreen/prelude.sh b/evergreen/prelude.sh
index a44b69e7a0a..81bacd45325 100755
--- a/evergreen/prelude.sh
+++ b/evergreen/prelude.sh
@@ -1,5 +1,5 @@
if [[ "$0" == *"/evergreen/prelude.sh" ]]; then
- echo "ERROR: do not execute this script. source it instead. ie: . prelude.sh"
+ echo "ERROR: do not execute this script. source it instead. i.e.: . prelude.sh"
exit 1
fi
set -o errexit
diff --git a/evergreen/resmoke_tests_execute.sh b/evergreen/resmoke_tests_execute.sh
index 5031b478980..561feb9c620 100644
--- a/evergreen/resmoke_tests_execute.sh
+++ b/evergreen/resmoke_tests_execute.sh
@@ -92,13 +92,7 @@ if [[ ${disable_unit_tests} = "false" && ! -f ${skip_tests} ]]; then
extra_args="$extra_args --mongodSetParameter \"{'jsHeapLimitMB':10}\""
fi
- path_value="$PATH"
- if [ ${variant_path_suffix} ]; then
- path_value="$path_value:${variant_path_suffix}"
- fi
- if [ ${task_path_suffix} ]; then
- path_value="$path_value:${task_path_suffix}"
- fi
+ path_value="$PATH:/data/multiversion"
# The "resmoke_wrapper" expansion is used by the 'burn_in_tests' task to wrap the resmoke.py
# invocation. It doesn't set any environment variables and should therefore come last in