diff options
Diffstat (limited to 'test/testrunner/env.py')
| -rw-r--r-- | test/testrunner/env.py | 67 |
1 files changed, 13 insertions, 54 deletions
diff --git a/test/testrunner/env.py b/test/testrunner/env.py index 55569629eac..7564f5a6b4a 100644 --- a/test/testrunner/env.py +++ b/test/testrunner/env.py @@ -17,6 +17,16 @@ import re import tempfile import subprocess +# begin import $ANDROID_BUILD_TOP/art/tools/build/var_cache.py +_THIS_DIR = os.path.dirname(os.path.realpath(__file__)) +_TOP = os.path.join(_THIS_DIR, "../../..") +_VAR_CACHE_DIR = os.path.join(_TOP, "art/tools/build/") + +import sys +sys.path.append(_VAR_CACHE_DIR) +import var_cache +# end import var_cache.py + _env = dict(os.environ) def _getEnvBoolean(var, default): @@ -28,55 +38,8 @@ def _getEnvBoolean(var, default): return False return default -_DUMP_MANY_VARS_LIST = ['HOST_2ND_ARCH_PREFIX', - 'TARGET_2ND_ARCH', - 'TARGET_ARCH', - 'HOST_PREFER_32_BIT', - 'HOST_OUT_EXECUTABLES', - 'ANDROID_JAVA_TOOLCHAIN', - 'ANDROID_COMPILE_WITH_JACK', - 'USE_D8_BY_DEFAULT'] -_DUMP_MANY_VARS = None # To be set to a dictionary with above list being the keys, - # and the build variable being the value. -def _dump_many_vars(var_name): - """ - Reach into the Android build system to dump many build vars simultaneously. - Since the make system is so slow, we want to avoid calling into build frequently. - """ - global _DUMP_MANY_VARS - global _DUMP_MANY_VARS_LIST - - # Look up var from cache. - if _DUMP_MANY_VARS: - return _DUMP_MANY_VARS[var_name] - - all_vars=" ".join(_DUMP_MANY_VARS_LIST) - - # The command is taken from build/envsetup.sh to fetch build variables. - command = ("build/soong/soong_ui.bash --dumpvars-mode --vars=\"%s\"") % (all_vars) - - config = subprocess.Popen(command, - stdout=subprocess.PIPE, - universal_newlines=True, - shell=True, - cwd=ANDROID_BUILD_TOP).communicate()[0] # read until EOF, select stdin - # Prints out something like: - # TARGET_ARCH='arm64' - # HOST_ARCH='x86_64' - _DUMP_MANY_VARS = {} - for line in config.split("\n"): - # Split out "$key='$value'" via regex. - match = re.search("([^=]+)='([^']*)", line) - if not match: - continue - key = match.group(1) - value = match.group(2) - _DUMP_MANY_VARS[key] = value - - return _DUMP_MANY_VARS[var_name] - def _get_build_var(var_name): - return _dump_many_vars(var_name) + return var_cache.get_build_var(var_name) def _get_build_var_boolean(var, default): val = _get_build_var(var) @@ -108,9 +71,6 @@ ANDROID_BUILD_TOP = _get_android_build_top() # Compiling with jack? Possible values in (True, False, 'default') ANDROID_COMPILE_WITH_JACK = _get_build_var_boolean('ANDROID_COMPILE_WITH_JACK', 'default') -# Follow the build system's D8 usage. -USE_D8_BY_DEFAULT = _get_build_var_boolean('USE_D8_BY_DEFAULT', False) - # Directory used for temporary test files on the host. ART_HOST_TEST_DIR = tempfile.mkdtemp(prefix = 'test-art-') @@ -173,9 +133,8 @@ HOST_OUT_EXECUTABLES = os.path.join(ANDROID_BUILD_TOP, _get_build_var("HOST_OUT_EXECUTABLES")) # Set up default values for $JACK, $DX, $SMALI, etc to the $HOST_OUT_EXECUTABLES/$name path. -for tool in ['jack', 'dx', 'smali', 'jasmin', 'dxmerger']: - binary = tool if tool != 'dxmerger' else 'dexmerger' - os.environ.setdefault(tool.upper(), HOST_OUT_EXECUTABLES + '/' + binary) +for tool in ['jack', 'dx', 'smali', 'jasmin', 'd8']: + os.environ.setdefault(tool.upper(), HOST_OUT_EXECUTABLES + '/' + tool) ANDROID_JAVA_TOOLCHAIN = os.path.join(ANDROID_BUILD_TOP, _get_build_var('ANDROID_JAVA_TOOLCHAIN')) |
