# Unset environment variables that the FileCheck tests
# expect not to be set.
file_check_expected_unset_vars = [
  'FILECHECK_DUMP_INPUT_ON_FAILURE',
  'FILECHECK_OPTS',
]

for env_var in file_check_expected_unset_vars:
  if env_var in config.environment:
    lit_config.note('Removing {} from environment for FileCheck tests'.format(
      env_var)
    )
    config.environment.pop(env_var)
