summaryrefslogtreecommitdiff
path: root/buildscripts/evergreen_gen_fuzzer_tests.py
diff options
context:
space:
mode:
authorDavid Bradford <david.bradford@mongodb.com>2018-12-07 13:24:43 -0500
committerDavid Bradford <david.bradford@mongodb.com>2018-12-07 13:24:43 -0500
commitbaf4fa098e091da7107b33dce15a254cfcc44a26 (patch)
tree231485de14265a6036be536bc374cdbef15e5e23 /buildscripts/evergreen_gen_fuzzer_tests.py
parentae54786e2830073387673b4c0ea921559065ed5f (diff)
downloadmongo-baf4fa098e091da7107b33dce15a254cfcc44a26.tar.gz
SERVER-38110 SERVER-38113: Generate resmoke config and evg config for a sub-suite
Diffstat (limited to 'buildscripts/evergreen_gen_fuzzer_tests.py')
-rwxr-xr-xbuildscripts/evergreen_gen_fuzzer_tests.py83
1 files changed, 29 insertions, 54 deletions
diff --git a/buildscripts/evergreen_gen_fuzzer_tests.py b/buildscripts/evergreen_gen_fuzzer_tests.py
index c22df9c972d..161802fa4e4 100755
--- a/buildscripts/evergreen_gen_fuzzer_tests.py
+++ b/buildscripts/evergreen_gen_fuzzer_tests.py
@@ -9,14 +9,15 @@ import os
from collections import namedtuple
-import yaml
-
from shrub.config import Configuration
from shrub.command import CommandDefinition
from shrub.task import TaskDependency
from shrub.variant import DisplayTaskDefinition
from shrub.variant import TaskSpec
+import util.read_config as read_config
+import util.taskname as taskname
+
CONFIG_DIRECTORY = "generated_resmoke_config"
ConfigOptions = namedtuple("ConfigOptions", [
@@ -35,34 +36,6 @@ ConfigOptions = namedtuple("ConfigOptions", [
])
-def _get_config_value(attrib, cmd_line_options, config_file_data, required=False, default=None):
- """
- Get the configuration value to use.
-
- First use command line options, then config file option, then the default. If required is
- true, throw an exception if the value is not found.
-
- :param attrib: Attribute to search for.
- :param cmd_line_options: Command line options.
- :param config_file_data: Config file data.
- :param required: Is this option required.
- :param default: Default value if option is not found.
- :return: value to use for this option.
- """
- value = getattr(cmd_line_options, attrib, None)
- if value:
- return value
-
- value = config_file_data.get(attrib)
- if value:
- return value
-
- if required:
- raise ValueError("{0} must be specified".format(attrib))
-
- return default
-
-
def _get_config_options(cmd_line_options, config_file): # pylint: disable=too-many-locals
"""
Get the configuration to use.
@@ -73,32 +46,33 @@ def _get_config_options(cmd_line_options, config_file): # pylint: disable=too-m
:param config_file: config file to use.
:return: ConfigOptions to use.
"""
- config_file_data = {}
- if config_file:
- with open(config_file) as file_handle:
- config_file_data = yaml.load(file_handle)
+ config_file_data = read_config.read_config_file(config_file)
num_files = int(
- _get_config_value("num_files", cmd_line_options, config_file_data, required=True))
+ read_config.get_config_value("num_files", cmd_line_options, config_file_data,
+ required=True))
num_tasks = int(
- _get_config_value("num_tasks", cmd_line_options, config_file_data, required=True))
- resmoke_args = _get_config_value("resmoke_args", cmd_line_options, config_file_data, default="")
- npm_command = _get_config_value("npm_command", cmd_line_options, config_file_data,
- default="jstestfuzz")
- jstestfuzz_vars = _get_config_value("jstestfuzz_vars", cmd_line_options, config_file_data,
- default="")
- name = _get_config_value("name", cmd_line_options, config_file_data, required=True)
- variant = _get_config_value("build_variant", cmd_line_options, config_file_data, required=True)
- continue_on_failure = _get_config_value("continue_on_failure", cmd_line_options,
- config_file_data, default="false")
- resmoke_jobs_max = _get_config_value("resmoke_jobs_max", cmd_line_options, config_file_data,
- default="0")
- should_shuffle = _get_config_value("should_shuffle", cmd_line_options, config_file_data,
- default="false")
- timeout_secs = _get_config_value("timeout_secs", cmd_line_options, config_file_data,
- default="1800")
- use_multiversion = _get_config_value("task_path_suffix", cmd_line_options, config_file_data,
- default=False)
+ read_config.get_config_value("num_tasks", cmd_line_options, config_file_data,
+ required=True))
+ resmoke_args = read_config.get_config_value("resmoke_args", cmd_line_options, config_file_data,
+ default="")
+ npm_command = read_config.get_config_value("npm_command", cmd_line_options, config_file_data,
+ default="jstestfuzz")
+ jstestfuzz_vars = read_config.get_config_value("jstestfuzz_vars", cmd_line_options,
+ config_file_data, default="")
+ name = read_config.get_config_value("name", cmd_line_options, config_file_data, required=True)
+ variant = read_config.get_config_value("build_variant", cmd_line_options, config_file_data,
+ required=True)
+ continue_on_failure = read_config.get_config_value("continue_on_failure", cmd_line_options,
+ config_file_data, default="false")
+ resmoke_jobs_max = read_config.get_config_value("resmoke_jobs_max", cmd_line_options,
+ config_file_data, default="0")
+ should_shuffle = read_config.get_config_value("should_shuffle", cmd_line_options,
+ config_file_data, default="false")
+ timeout_secs = read_config.get_config_value("timeout_secs", cmd_line_options, config_file_data,
+ default="1800")
+ use_multiversion = read_config.get_config_value("task_path_suffix", cmd_line_options,
+ config_file_data, default=False)
return ConfigOptions(num_files, num_tasks, resmoke_args, npm_command, jstestfuzz_vars, name,
variant, continue_on_failure, resmoke_jobs_max, should_shuffle,
@@ -131,7 +105,8 @@ def _generate_evg_tasks(options):
task_specs = []
for task_index in range(options.num_tasks):
- name = _name_task(options.name, task_index, options.num_tasks) + "_" + options.variant
+ name = taskname.name_generated_task(options.name, task_index, options.num_tasks,
+ options.variant)
task_names.append(name)
task_specs.append(TaskSpec(name))
task = evg_config.task(name)