require {input} in target_env or target_options for generator and coverage tasks (#1106)

Fixes #925
This commit is contained in:
bmc-msft
2021-07-23 10:58:42 -04:00
committed by GitHub
parent b90ee03fd9
commit 7e6a42cdd6
3 changed files with 22 additions and 0 deletions

View File

@ -124,6 +124,19 @@ def check_target_exe(config: TaskConfig, definition: TaskDefinition) -> None:
LOGGER.warning(err)
def target_uses_input(config: TaskConfig) -> bool:
if config.task.target_options is not None:
for option in config.task.target_options:
if "{input}" in option:
return True
if config.task.target_env is not None:
for value in config.task.target_env.values():
if "{input}" in value:
return True
return False
def check_config(config: TaskConfig) -> None:
if config.task.type not in TASK_DEFINITIONS:
raise TaskConfigError("unsupported task type: %s" % config.task.type.name)
@ -143,6 +156,12 @@ def check_config(config: TaskConfig) -> None:
LOGGER.error(err)
raise TaskConfigError("missing supervisor_exe")
if (
TaskFeature.target_must_use_input in definition.features
and not target_uses_input(config)
):
raise TaskConfigError("{input} must be used in target_env or target_options")
if config.vm:
err = "specifying task config vm is no longer supported"
raise TaskConfigError(err)

View File

@ -21,6 +21,7 @@ TASK_DEFINITIONS = {
TaskFeature.target_options,
TaskFeature.target_timeout,
TaskFeature.coverage_filter,
TaskFeature.target_must_use_input,
],
vm=VmDefinition(compare=Compare.Equal, value=1),
containers=[
@ -375,6 +376,7 @@ TASK_DEFINITIONS = {
TaskFeature.check_debugger,
TaskFeature.check_retry_count,
TaskFeature.ensemble_sync_delay,
TaskFeature.target_must_use_input,
],
vm=VmDefinition(compare=Compare.AtLeast, value=1),
containers=[

View File

@ -81,6 +81,7 @@ class TaskFeature(Enum):
report_list = "report_list"
minimized_stack_depth = "minimized_stack_depth"
coverage_filter = "coverage_filter"
target_must_use_input = "target_must_use_input"
# Permissions for an Azure Blob Storage Container.