[lit] Allow config files to pass arbitrary values to child configs.

- This aligns with how existing test suites end up wanting to use the local
   config files, conceptually it makes sense to consider them to be inherited.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189885 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2013-09-03 23:32:55 +00:00
parent 36b00f394f
commit 4b3e5f24ec
4 changed files with 8 additions and 12 deletions

View File

@ -114,17 +114,6 @@ class TestingConfig:
self.available_features = set(available_features)
self.pipefail = pipefail
def clone(self):
# FIXME: Chain implementations?
#
# FIXME: Allow extra parameters?
return TestingConfig(self, self.name, self.suffixes, self.test_format,
self.environment, self.substitutions,
self.unsupported,
self.test_exec_root, self.test_source_root,
self.excludes, self.available_features,
self.pipefail)
def finish(self, litConfig):
"""finish() - Finish this config object, after loading is complete."""

View File

@ -2,6 +2,7 @@
Test discovery functions.
"""
import copy
import os
import sys
@ -90,7 +91,7 @@ def getLocalConfig(ts, path_in_suite, litConfig, cache):
# Otherwise, copy the current config and load the local configuration
# file into it.
config = parent.clone()
config = copy.copy(parent)
if litConfig.debug:
litConfig.note('loading local config %r' % cfgpath)
config.load_from_path(cfgpath, litConfig)

View File

@ -9,3 +9,6 @@ config.test_format = lit.formats.ShTest()
#
#config.test_source_root = None
#config.test_exec_root = None
# Check that arbitrary config values are copied (tested by subdir/lit.local.cfg).
config.an_extra_variable = False

View File

@ -1 +1,4 @@
config.suffixes = ['.py']
# Check that the arbitrary config values in our parent was inherited.
assert hasattr(config, 'an_extra_variable')