From 7bc4c9a8d1389fd3188d9bff46726ffc3d9bebb9 Mon Sep 17 00:00:00 2001 From: Eric Boren Date: Tue, 30 Nov 2021 13:59:12 -0500 Subject: [PATCH] [python3] Reland recipes -> python3 changes This was enabled by moving the iPhones off of the old RPI2 hosts. This reverts commit 04cd6fba97bee0f9ebdaac5314e0f8898e7b13f2. This reverts commit a726978ae771ae7e93b03fb207712c703c9010c0. Bug: chromium:1256037 Change-Id: I35069089aa39baf62a18235c8d0514923f327c53 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/477987 Reviewed-by: Ravi Mistry Commit-Queue: Eric Boren --- .vpython | 1 + gn/codesign_ios.py | 3 +- gn/compile_ib_files.py | 4 +- gn/compile_sksl_tests.py | 5 +- gn/copy_git_directory.py | 3 +- gn/dehydrate_sksl.py | 3 +- gn/find_headers.py | 4 +- gn/find_xcode_sysroot.py | 3 +- infra/bots/README.recipes.md | 88 +- infra/bots/assets/clang_linux/create.py | 4 +- infra/bots/bundle_recipes.sh | 4 +- infra/bots/gen_tasks_logic/compile_cas.go | 1 + infra/bots/gen_tasks_logic/gen_tasks_logic.go | 27 +- infra/bots/gen_tasks_logic/task_builder.go | 19 +- infra/bots/git_utils.py | 11 +- infra/bots/recipe_modules/build/__init__.py | 2 +- .../recipe_modules/build/examples/full.py | 2 +- .../builder_name_schema/__init__.py | 2 +- .../builder_name_schema/examples/full.py | 2 +- .../bots/recipe_modules/checkout/__init__.py | 2 +- infra/bots/recipe_modules/checkout/api.py | 2 +- ...-Debian10-Clang-x86_64-Release-NoDEPS.json | 4 +- ...-Mac-Clang-x86_64-Debug-CommandBuffer.json | 4 +- .../Housekeeper-Weekly-RecreateSKPs.json | 4 +- .../full.expected/cross_repo_trybot.json | 4 +- .../full.expected/flutter_trybot.json | 4 +- .../examples/full.expected/trybot.json | 4 +- .../recipe_modules/checkout/examples/full.py | 2 +- infra/bots/recipe_modules/docker/__init__.py | 2 +- .../recipe_modules/docker/examples/full.py | 2 +- infra/bots/recipe_modules/doxygen/__init__.py | 2 +- .../recipe_modules/doxygen/examples/full.py | 2 +- infra/bots/recipe_modules/env/__init__.py | 2 +- .../bots/recipe_modules/env/examples/full.py | 2 +- infra/bots/recipe_modules/flavor/__init__.py | 2 +- infra/bots/recipe_modules/flavor/android.py | 81 +- .../bots/recipe_modules/flavor/chromebook.py | 3 +- ...rm-Release-All-Android_SkottieTracing.json | 69 +- ...iG77-arm64-Release-All-Android_Vulkan.json | 69 +- ...-GPU-MaliT880-arm64-Debug-All-Android.json | 69 +- ...CPU-TegraX1-arm64-Release-All-Android.json | 83 +- ...GPU-Adreno418-arm64-Debug-All-Android.json | 156 +- ...m64-Release-All-Android_Skpbench_Mskp.json | 110 +- ...bookPlus-GPU-MaliT860-arm-Release-All.json | 25 +- ...PU-Mali400MP2-arm-Release-All-Android.json | 84 +- ...-GPU-MaliT880-arm64-Debug-All-Android.json | 69 +- ...GPU-Adreno418-arm64-Debug-All-Android.json | 139 +- ...eno418-arm64-Release-All-Android_ASAN.json | 159 +- ...eno615-arm64-Debug-All-Android_Vulkan.json | 84 +- ...bookPlus-GPU-MaliT860-arm-Release-All.json | 25 +- .../full.expected/cpu_scale_failed.json | 78 +- .../full.expected/cpu_scale_failed_golo.json | 78 +- .../full.expected/cpu_scale_failed_once.json | 170 +- .../full.expected/failed_infra_step.json | 156 +- .../full.expected/failed_read_version.json | 156 +- .../full.expected/retry_adb_command.json | 156 +- .../retry_adb_command_retries_exhausted.json | 21 +- .../recipe_modules/flavor/examples/full.py | 2 +- .../flavor/resources/symbolize_stack_trace.py | 3 +- infra/bots/recipe_modules/git/__init__.py | 2 +- .../bots/recipe_modules/git/examples/full.py | 2 +- .../recipe_modules/gold_upload/__init__.py | 2 +- .../gold_upload/examples/full.py | 2 +- infra/bots/recipe_modules/gsutil/__init__.py | 2 +- .../recipe_modules/gsutil/examples/full.py | 2 +- infra/bots/recipe_modules/infra/__init__.py | 2 +- .../recipe_modules/infra/examples/full.py | 2 +- infra/bots/recipe_modules/run/__init__.py | 2 +- .../bots/recipe_modules/run/examples/full.py | 2 +- infra/bots/recipe_modules/vars/__init__.py | 2 +- .../bots/recipe_modules/vars/examples/full.py | 2 +- ...ekeeper-PerCommit-CheckGeneratedFiles.json | 4 +- infra/bots/recipes/check_generated_files.py | 2 +- .../Build-Win-Clang-x86-Debug.json | 4 +- infra/bots/recipes/compile.py | 4 +- .../normal_bot.json | 4 +- .../compute_buildstats.expected/trybot.json | 4 +- infra/bots/recipes/compute_buildstats.py | 2 +- .../Housekeeper-PerCommit-Trybot.json | 4 +- .../Housekeeper-PerCommit.json | 4 +- infra/bots/recipes/housekeeper.py | 2 +- infra/bots/recipes/infra.py | 2 +- ...xus7-CPU-Tegra3-arm-Debug-All-Android.json | 98 +- infra/bots/recipes/perf.py | 2 +- infra/bots/recipes/perf_pathkit.py | 2 +- ...rm-Release-All-Android_SkottieTracing.json | 82 +- .../skottietracing_parse_trace_error.json | 49 +- .../skottietracing_trybot.json | 82 +- infra/bots/recipes/perf_skottietrace.py | 2 +- .../recipes/perf_skottiewasm_lottieweb.py | 2 +- ...All-Android_AllPathsVolatile_Skpbench.json | 21 +- ...roid_Vulkan_AllPathsVolatile_Skpbench.json | 21 +- ...m64-Release-All-Android_Skpbench_Mskp.json | 21 +- .../recipes/skpbench.expected/trybot.json | 21 +- infra/bots/recipes/skpbench.py | 2 +- ...n10-Clang-arm-Release-Flutter_Android.json | 4 +- ...-Mac-Clang-x86_64-Debug-CommandBuffer.json | 4 +- ...ild-Win10-Clang-x86_64-Release-NoDEPS.json | 4 +- infra/bots/recipes/sync_and_compile.py | 2 +- ...-Adreno540-arm-Debug-All-Android_ASAN.json | 145 +- ...GPU-Adreno540-arm64-Debug-All-Android.json | 132 +- infra/bots/recipes/test.py | 2 +- infra/bots/recipes/test_canvaskit.py | 2 +- infra/bots/recipes/test_lottie_web.py | 2 +- infra/bots/recipes/test_pathkit.py | 2 +- .../bots/recipes/upload_buildstats_results.py | 2 +- infra/bots/recipes/upload_dm_results.py | 2 +- infra/bots/recipes/upload_nano_results.py | 2 +- infra/bots/tasks.json | 6434 +++++++++++++---- infra/bots/utils.py | 8 +- 110 files changed, 6513 insertions(+), 2976 deletions(-) create mode 100644 .vpython diff --git a/.vpython b/.vpython new file mode 100644 index 000000000000..76d86bb52b64 --- /dev/null +++ b/.vpython @@ -0,0 +1 @@ +python_version: "3.8" \ No newline at end of file diff --git a/gn/codesign_ios.py b/gn/codesign_ios.py index 6f546531c80a..06e0c90251c5 100755 --- a/gn/codesign_ios.py +++ b/gn/codesign_ios.py @@ -23,7 +23,8 @@ # Find the signing identity. identity = None -for line in subprocess.check_output(['security', 'find-identity']).split('\n'): +for line in subprocess.check_output([ + 'security', 'find-identity']).decode('utf-8').split('\n'): m = re.match(r'''.*\) (.*) "''' + identstr + '"', line) if m: identity = m.group(1) diff --git a/gn/compile_ib_files.py b/gn/compile_ib_files.py index d53fa1579092..67c4976985fb 100644 --- a/gn/compile_ib_files.py +++ b/gn/compile_ib_files.py @@ -40,9 +40,9 @@ def main(): ibtool_section_re = re.compile(r'/\*.*\*/') ibtool_re = re.compile(r'.*note:.*is clipping its content') try: - stdout = subprocess.check_output(ibtool_args) + stdout = subprocess.check_output(ibtool_args).decode('utf-8') except subprocess.CalledProcessError as e: - print(e.output) + print(e.output.decode('utf-8')) raise current_section_header = None for line in stdout.splitlines(): diff --git a/gn/compile_sksl_tests.py b/gn/compile_sksl_tests.py index fbb83662602a..bcb16557564f 100755 --- a/gn/compile_sksl_tests.py +++ b/gn/compile_sksl_tests.py @@ -28,11 +28,12 @@ def executeWorklist(input, worklist): # Invoke skslc, passing in the worklist. worklist.close() try: - output = subprocess.check_output([skslc, worklist.name], stderr=subprocess.STDOUT) + output = subprocess.check_output([ + skslc, worklist.name], stderr=subprocess.STDOUT).decode('utf-8') except subprocess.CalledProcessError as err: if err.returncode != 1: print("### " + input + " skslc error:\n") - print("\n".join(err.output.splitlines())) + print("\n".join(err.output.decode('utf-8').splitlines())) sys.exit(err.returncode) pass # Compile errors (exit code 1) are expected and normal in test code diff --git a/gn/copy_git_directory.py b/gn/copy_git_directory.py index 04623baf500b..e8490063a2eb 100755 --- a/gn/copy_git_directory.py +++ b/gn/copy_git_directory.py @@ -21,7 +21,8 @@ def copy_git_directory(src, dst, out=None): raise Exception('Directory "%s" does not exist.' % src) if not os.path.isdir(dst): os.makedirs(dst) - ls_files = subprocess.check_output(['git', 'ls-files', '-z', '.'], cwd=src) + ls_files = subprocess.check_output([ + 'git', 'ls-files', '-z', '.'], cwd=src).decode('utf-8') src_files = set(p for p in ls_files.split('\0') if p) abs_src = os.path.abspath(src) cwd = os.getcwd() diff --git a/gn/dehydrate_sksl.py b/gn/dehydrate_sksl.py index e4dccd06ecdc..d7192e371018 100644 --- a/gn/dehydrate_sksl.py +++ b/gn/dehydrate_sksl.py @@ -20,7 +20,8 @@ if not os.path.isdir(targetDir): os.mkdir(targetDir) target = os.path.join(targetDir, tail) - subprocess.check_output([skslc, inc, target + ".dehydrated.sksl"]) + subprocess.check_output([ + skslc, inc, target + ".dehydrated.sksl"]).decode('utf-8') except subprocess.CalledProcessError as err: print("### Error compiling " + inc + ":") print(err.output) diff --git a/gn/find_headers.py b/gn/find_headers.py index 1fc56c3434eb..aafa5532ef80 100755 --- a/gn/find_headers.py +++ b/gn/find_headers.py @@ -34,9 +34,9 @@ desc_json_txt = '' try: - desc_json_txt = subprocess.check_output(gn_desc_cmd) + desc_json_txt = subprocess.check_output(gn_desc_cmd).decode('utf-8') except subprocess.CalledProcessError as e: - print(e.output) + print(e.output.decode('utf-8')) raise desc_json = {} diff --git a/gn/find_xcode_sysroot.py b/gn/find_xcode_sysroot.py index be5b687e0390..e514271bc391 100755 --- a/gn/find_xcode_sysroot.py +++ b/gn/find_xcode_sysroot.py @@ -12,4 +12,5 @@ (sdk,) = sys.argv[1:] -print(subprocess.check_output(['xcrun', '--sdk', sdk, '--show-sdk-path'])) +print(subprocess.check_output([ + 'xcrun', '--sdk', sdk, '--show-sdk-path']).decode('utf-8')) diff --git a/infra/bots/README.recipes.md b/infra/bots/README.recipes.md index f47ba0b8bf02..c39711dbeff6 100644 --- a/infra/bots/README.recipes.md +++ b/infra/bots/README.recipes.md @@ -55,7 +55,7 @@ [DEPS](/infra/bots/recipe_modules/build/__init__.py#7): [depot\_tools/gclient][depot_tools/recipe_modules/gclient], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [docker](#recipe_modules-docker), [env](#recipe_modules-env), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 Build Skia for various platforms. @@ -70,7 +70,7 @@ Compile the code. Copy selected build products to dst. ### *recipe_modules* / [builder\_name\_schema](/infra/bots/recipe_modules/builder_name_schema) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [BuilderNameSchemaApi](/infra/bots/recipe_modules/builder_name_schema/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -81,7 +81,7 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/checkout/__init__.py#7): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [depot\_tools/gclient][depot_tools/recipe_modules/gclient], [depot\_tools/git][depot_tools/recipe_modules/git], [depot\_tools/tryserver][depot_tools/recipe_modules/tryserver], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [CheckoutApi](/infra/bots/recipe_modules/checkout/api.py#13)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -115,7 +115,7 @@ Run the steps to perform a pure-git checkout without DEPS. [DEPS](/infra/bots/recipe_modules/docker/__init__.py#8): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env), [run](#recipe_modules-run) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [DockerApi](/infra/bots/recipe_modules/docker/api.py#15)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -128,7 +128,7 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/doxygen/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [DoxygenApi](/infra/bots/recipe_modules/doxygen/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -137,14 +137,14 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/env/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context] -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [EnvApi](/infra/bots/recipe_modules/env/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):** ### *recipe_modules* / [flavor](/infra/bots/recipe_modules/flavor) [DEPS](/infra/bots/recipe_modules/flavor/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [docker](#recipe_modules-docker), [env](#recipe_modules-env), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [SkiaFlavorApi](/infra/bots/recipe_modules/flavor/api.py#59)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -179,7 +179,7 @@ Return a flavor utils object specific to the given builder. [DEPS](/infra/bots/recipe_modules/git/__init__.py#7): [recipe\_engine/path][recipe_engine/recipe_modules/path], [env](#recipe_modules-env) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [GitApi](/infra/bots/recipe_modules/git/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -193,7 +193,7 @@ in the 'git' relative path. [DEPS](/infra/bots/recipe_modules/gold_upload/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [flavor](#recipe_modules-flavor), [gsutil](#recipe_modules-gsutil), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [GoldUploadApi](/infra/bots/recipe_modules/gold_upload/api.py#11)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -205,7 +205,7 @@ This module assumes setup has occurred for the vars and flavor modules. [DEPS](/infra/bots/recipe_modules/gsutil/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [GSUtilApi](/infra/bots/recipe_modules/gsutil/api.py#10)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -231,7 +231,7 @@ If the operation fails, it will be retried multiple times. [DEPS](/infra/bots/recipe_modules/infra/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [InfraApi](/infra/bots/recipe_modules/infra/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -246,7 +246,7 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/run/__init__.py#7): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [SkiaStepApi](/infra/bots/recipe_modules/run/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -291,7 +291,7 @@ Convenience function for writing files. [DEPS](/infra/bots/recipe_modules/vars/__init__.py#7): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [builder\_name\_schema](#recipe_modules-builder_name_schema) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [SkiaVarsApi](/infra/bots/recipe_modules/vars/api.py#16)([RecipeApi][recipe_engine/wkt/RecipeApi]):** @@ -310,42 +310,42 @@ Prepare the variables. [DEPS](/infra/bots/recipe_modules/build/examples/full.py#7): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [build](#recipe_modules-build), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/build/examples/full.py#18)(api):** ### *recipes* / [builder\_name\_schema:examples/full](/infra/bots/recipe_modules/builder_name_schema/examples/full.py) [DEPS](/infra/bots/recipe_modules/builder_name_schema/examples/full.py#7): [builder\_name\_schema](#recipe_modules-builder_name_schema) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/builder_name_schema/examples/full.py#12)(api):** ### *recipes* / [check\_generated\_files](/infra/bots/recipes/check_generated_files.py) [DEPS](/infra/bots/recipes/check_generated_files.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [build](#recipe_modules-build), [checkout](#recipe_modules-checkout), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/check_generated_files.py#26)(api):** ### *recipes* / [checkout:examples/full](/infra/bots/recipe_modules/checkout/examples/full.py) [DEPS](/infra/bots/recipe_modules/checkout/examples/full.py#7): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [checkout](#recipe_modules-checkout), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/checkout/examples/full.py#18)(api):** ### *recipes* / [compile](/infra/bots/recipes/compile.py) [DEPS](/infra/bots/recipes/compile.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [build](#recipe_modules-build), [checkout](#recipe_modules-checkout), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/compile.py#26)(api):** ### *recipes* / [compute\_buildstats](/infra/bots/recipes/compute_buildstats.py) [DEPS](/infra/bots/recipes/compute_buildstats.py#12): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [checkout](#recipe_modules-checkout), [env](#recipe_modules-env), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/compute_buildstats.py#35)(api):** @@ -366,28 +366,28 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/docker/examples/full.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [docker](#recipe_modules-docker), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/docker/examples/full.py#16)(api):** ### *recipes* / [doxygen:examples/full](/infra/bots/recipe_modules/doxygen/examples/full.py) [DEPS](/infra/bots/recipe_modules/doxygen/examples/full.py#7): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [doxygen](#recipe_modules-doxygen), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/doxygen/examples/full.py#15)(api):** ### *recipes* / [env:examples/full](/infra/bots/recipe_modules/env/examples/full.py) [DEPS](/infra/bots/recipe_modules/env/examples/full.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/env/examples/full.py#14)(api):** ### *recipes* / [flavor:examples/full](/infra/bots/recipe_modules/flavor/examples/full.py) [DEPS](/infra/bots/recipe_modules/flavor/examples/full.py#7): [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/flavor/examples/full.py#32)(api):** @@ -396,35 +396,35 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/git/examples/full.py#7): [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/step][recipe_engine/recipe_modules/step], [git](#recipe_modules-git) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/git/examples/full.py#14)(api):** ### *recipes* / [gold\_upload:examples/full](/infra/bots/recipe_modules/gold_upload/examples/full.py) [DEPS](/infra/bots/recipe_modules/gold_upload/examples/full.py#10): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [flavor](#recipe_modules-flavor), [gold\_upload](#recipe_modules-gold_upload), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/gold_upload/examples/full.py#22)(api):** ### *recipes* / [gsutil:examples/full](/infra/bots/recipe_modules/gsutil/examples/full.py) [DEPS](/infra/bots/recipe_modules/gsutil/examples/full.py#10): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [gsutil](#recipe_modules-gsutil), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/gsutil/examples/full.py#21)(api):** ### *recipes* / [housekeeper](/infra/bots/recipes/housekeeper.py) [DEPS](/infra/bots/recipes/housekeeper.py#13): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [checkout](#recipe_modules-checkout), [doxygen](#recipe_modules-doxygen), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/housekeeper.py#24)(api):** ### *recipes* / [infra](/infra/bots/recipes/infra.py) [DEPS](/infra/bots/recipes/infra.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [infra](#recipe_modules-infra), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/infra.py#28)(api):** @@ -433,14 +433,14 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipe_modules/infra/examples/full.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/infra/examples/full.py#23)(api):** ### *recipes* / [perf](/infra/bots/recipes/perf.py) [DEPS](/infra/bots/recipes/perf.py#15): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/perf.py#104)(api):** @@ -451,14 +451,14 @@ Run Skia benchmarks. [DEPS](/infra/bots/recipes/perf_pathkit.py#9): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [checkout](#recipe_modules-checkout), [docker](#recipe_modules-docker), [env](#recipe_modules-env), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/perf_pathkit.py#28)(api):** ### *recipes* / [perf\_skottietrace](/infra/bots/recipes/perf_skottietrace.py) [DEPS](/infra/bots/recipes/perf_skottietrace.py#17): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/perf_skottietrace.py#219)(api):** @@ -488,7 +488,7 @@ Run DM on lottie files with tracing turned on and then parse the output. [DEPS](/infra/bots/recipes/perf_skottiewasm_lottieweb.py#14): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [checkout](#recipe_modules-checkout), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/perf_skottiewasm_lottieweb.py#84)(api):** @@ -507,7 +507,7 @@ A dictionary is returned that has the following structure: [DEPS](/infra/bots/recipe_modules/run/examples/full.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/run/examples/full.py#22)(api):** @@ -516,7 +516,7 @@ PYTHON_VERSION_COMPATIBILITY: PY2+3 [DEPS](/infra/bots/recipes/skpbench.py#13): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/skpbench.py#163)(api):** @@ -527,14 +527,14 @@ benchmark Skia using skpbench. [DEPS](/infra/bots/recipes/sync_and_compile.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [build](#recipe_modules-build), [checkout](#recipe_modules-checkout), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/sync_and_compile.py#26)(api):** ### *recipes* / [test](/infra/bots/recipes/test.py) [DEPS](/infra/bots/recipes/test.py#13): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [gold\_upload](#recipe_modules-gold_upload), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/test.py#162)(api):** @@ -545,49 +545,49 @@ Run the DM test. [DEPS](/infra/bots/recipes/test_canvaskit.py#9): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [checkout](#recipe_modules-checkout), [docker](#recipe_modules-docker), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [gold\_upload](#recipe_modules-gold_upload), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/test_canvaskit.py#29)(api):** ### *recipes* / [test\_lottie\_web](/infra/bots/recipes/test_lottie_web.py) [DEPS](/infra/bots/recipes/test_lottie_web.py#9): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [checkout](#recipe_modules-checkout), [docker](#recipe_modules-docker), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [gold\_upload](#recipe_modules-gold_upload), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/test_lottie_web.py#29)(api):** ### *recipes* / [test\_pathkit](/infra/bots/recipes/test_pathkit.py) [DEPS](/infra/bots/recipes/test_pathkit.py#9): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [checkout](#recipe_modules-checkout), [docker](#recipe_modules-docker), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [gold\_upload](#recipe_modules-gold_upload), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/test_pathkit.py#30)(api):** ### *recipes* / [upload\_buildstats\_results](/infra/bots/recipes/upload_buildstats_results.py) [DEPS](/infra/bots/recipes/upload_buildstats_results.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/upload_buildstats_results.py#21)(api):** ### *recipes* / [upload\_dm\_results](/infra/bots/recipes/upload_dm_results.py) [DEPS](/infra/bots/recipes/upload_dm_results.py#13): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [gsutil](#recipe_modules-gsutil), [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/upload_dm_results.py#29)(api):** ### *recipes* / [upload\_nano\_results](/infra/bots/recipes/upload_nano_results.py) [DEPS](/infra/bots/recipes/upload_nano_results.py#10): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipes/upload_nano_results.py#21)(api):** ### *recipes* / [vars:examples/full](/infra/bots/recipe_modules/vars/examples/full.py) [DEPS](/infra/bots/recipe_modules/vars/examples/full.py#7): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [vars](#recipe_modules-vars) -PYTHON_VERSION_COMPATIBILITY: PY2+3 +PYTHON_VERSION_COMPATIBILITY: PY3 — **def [RunSteps](/infra/bots/recipe_modules/vars/examples/full.py#16)(api):** diff --git a/infra/bots/assets/clang_linux/create.py b/infra/bots/assets/clang_linux/create.py index 9eba6e676668..cdcbd31ebe76 100755 --- a/infra/bots/assets/clang_linux/create.py +++ b/infra/bots/assets/clang_linux/create.py @@ -42,8 +42,8 @@ def create_asset(target_dir): subprocess.check_call(["cp", "bin/llvm-symbolizer", target_dir + "/bin"]) subprocess.check_call(["cp", "bin/llvm-profdata", target_dir + "/bin"]) subprocess.check_call(["cp", "bin/llvm-cov", target_dir + "/bin"]) - libstdcpp = subprocess.check_output(["c++", - "-print-file-name=libstdc++.so.6"]) + libstdcpp = subprocess.check_output([ + "c++", "-print-file-name=libstdc++.so.6"]).decode('utf-8') subprocess.check_call(["cp", libstdcpp.strip(), target_dir + "/lib"]) # Finally, build libc++ for TSAN and MSAN bots using the Clang we just built. diff --git a/infra/bots/bundle_recipes.sh b/infra/bots/bundle_recipes.sh index ce1312179107..2c92ef3aec53 100755 --- a/infra/bots/bundle_recipes.sh +++ b/infra/bots/bundle_recipes.sh @@ -6,8 +6,10 @@ set -x -e +which vpython3 +vpython3 --version cd skia git init git add . git commit -m "Commit Recipes" -python infra/bots/recipes.py bundle --destination ${1}/recipe_bundle +vpython3 infra/bots/recipes.py bundle --destination ${1}/recipe_bundle diff --git a/infra/bots/gen_tasks_logic/compile_cas.go b/infra/bots/gen_tasks_logic/compile_cas.go index 70f53576f38b..0c0fc6989aaf 100644 --- a/infra/bots/gen_tasks_logic/compile_cas.go +++ b/infra/bots/gen_tasks_logic/compile_cas.go @@ -45,6 +45,7 @@ var ( explicitPaths = []string{ ".clang-format", ".clang-tidy", + ".vpython", "bin/fetch-clang-format", "bin/fetch-gn", "buildtools", diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index 523fcfd69522..9e08acd5f14c 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -140,6 +140,7 @@ var ( CAS_SPEC_LOTTIE_CI = &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/lottiecap", "skia/tools/lottie-web-perf", @@ -403,6 +404,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_CANVASKIT, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/canvaskit", "skia/modules/canvaskit", @@ -416,6 +418,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_LOTTIE_WEB, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/tools/lottie-web-perf", }, @@ -424,6 +427,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_PATHKIT, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/pathkit", "skia/modules/pathkit", @@ -433,6 +437,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_PERF, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/platform_tools/ios/bin", @@ -444,6 +449,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_PUPPETEER, &specs.CasSpec{ Root: "../skia", // Needed for other repos. Paths: []string{ + ".vpython", "tools/perf-canvaskit-puppeteer", }, Excludes: []string{rbe.ExcludeGitDir}, @@ -463,6 +469,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_RUN_RECIPE, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", }, Excludes: []string{rbe.ExcludeGitDir}, @@ -470,6 +477,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_SKOTTIE_WASM, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/tools/skottie-wasm-perf", }, @@ -478,6 +486,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_SKPBENCH, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/tools/skpbench", @@ -488,6 +497,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_TASK_DRIVERS, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/go.mod", "skia/go.sum", "skia/infra/bots/build_task_drivers.sh", @@ -499,6 +509,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_TEST, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/platform_tools/ios/bin", @@ -510,6 +521,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_WASM_GM, &specs.CasSpec{ Root: "../skia", // Needed for other repos. Paths: []string{ + ".vpython", "resources", "tools/run-wasm-gm-tests", }, @@ -519,6 +531,7 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_RECREATE_SKPS, &specs.CasSpec{ Root: "..", Paths: []string{ + "skia/.vpython", "skia/DEPS", "skia/bin/fetch-sk", "skia/infra/bots/assets/skp", @@ -578,6 +591,8 @@ func marshalJson(data interface{}) string { func (b *taskBuilder) kitchenTaskNoBundle(recipe string, outputDir string) { b.cipd(CIPD_PKG_LUCI_AUTH) b.cipd(cipd.MustGetPackage("infra/tools/luci/kitchen/${platform}")) + b.env("RECIPES_USE_PY3", "true") + b.envPrefixes("VPYTHON_DEFAULT_SPEC", "skia/.vpython") b.usesPython() b.recipeProp("swarm_out_dir", outputDir) if outputDir != OUTPUT_NONE { @@ -976,12 +991,12 @@ func (b *taskBuilder) defaultSwarmDimensions() { func (b *jobBuilder) bundleRecipes() string { b.addTask(BUNDLE_RECIPES_NAME, func(b *taskBuilder) { b.cipd(specs.CIPD_PKGS_GIT_LINUX_AMD64...) - b.cipd(specs.CIPD_PKGS_PYTHON_LINUX_AMD64...) b.cmd("/bin/bash", "skia/infra/bots/bundle_recipes.sh", specs.PLACEHOLDER_ISOLATED_OUTDIR) b.linuxGceDimensions(MACHINE_TYPE_SMALL) - b.addToPATH("cipd_bin_packages", "cipd_bin_packages/bin") b.idempotent() b.cas(CAS_RECIPES) + b.usesPython() + b.addToPATH("cipd_bin_packages", "cipd_bin_packages/bin") }) return BUNDLE_RECIPES_NAME } @@ -1630,14 +1645,14 @@ func (b *jobBuilder) fm() { // Point sanitizer builds at our prebuilt libc++ for this sanitizer. if b.extraConfig("MSAN") { // We'd see false positives in std::basic_string if this weren't set. - b.env("LD_LIBRARY_PATH", "clang_linux/msan") + b.envPrefixes("LD_LIBRARY_PATH", "clang_linux/msan") } else if b.extraConfig("TSAN") { // Occasional false positives may crop up in the standard library without this. - b.env("LD_LIBRARY_PATH", "clang_linux/tsan") + b.envPrefixes("LD_LIBRARY_PATH", "clang_linux/tsan") } else { // This isn't strictly required, but we usually get better sanitizer // diagnostics from libc++ than the default OS-provided libstdc++. - b.env("LD_LIBRARY_PATH", "clang_linux/lib") + b.envPrefixes("LD_LIBRARY_PATH", "clang_linux/lib") } } }) @@ -1900,7 +1915,7 @@ func (b *jobBuilder) presubmit() { b.cipd(&specs.CipdPackage{ Name: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", Path: "recipe_bundle", - Version: "git_revision:a8bcedad6768e206c4d2bd1718caa849f29cd42d", + Version: "git_revision:1a28cb094add070f4beefd052725223930d8c27a", }) }) } diff --git a/infra/bots/gen_tasks_logic/task_builder.go b/infra/bots/gen_tasks_logic/task_builder.go index c553768b0fb5..657fd08c0084 100644 --- a/infra/bots/gen_tasks_logic/task_builder.go +++ b/infra/bots/gen_tasks_logic/task_builder.go @@ -90,8 +90,17 @@ func (b *taskBuilder) cas(casSpec string) { b.Spec.CasSpec = casSpec } -// env appends the given values to the given environment variable for the task. -func (b *taskBuilder) env(key string, values ...string) { +// env sets the value for the given environment variable for the task. +func (b *taskBuilder) env(key, value string) { + if b.Spec.Environment == nil { + b.Spec.Environment = map[string]string{} + } + b.Spec.Environment[key] = value +} + +// envPrefixes appends the given values to the given environment variable for +// the task. +func (b *taskBuilder) envPrefixes(key string, values ...string) { if b.Spec.EnvPrefixes == nil { b.Spec.EnvPrefixes = map[string][]string{} } @@ -104,7 +113,7 @@ func (b *taskBuilder) env(key string, values ...string) { // addToPATH adds the given locations to PATH for the task. func (b *taskBuilder) addToPATH(loc ...string) { - b.env("PATH", loc...) + b.envPrefixes("PATH", loc...) } // output adds the given paths as outputs to the task, which results in their @@ -218,7 +227,7 @@ func (b *taskBuilder) usesGo() { } b.cipd(pkg) b.addToPATH(pkg.Path + "/go/bin") - b.env("GOROOT", pkg.Path+"/go") + b.envPrefixes("GOROOT", pkg.Path+"/go") } // usesDocker adds attributes to tasks which use docker. @@ -303,7 +312,7 @@ func (b *taskBuilder) usesPython() { Name: "vpython", Path: "cache/vpython", }) - b.env("VPYTHON_VIRTUALENV_ROOT", "cache/vpython") + b.envPrefixes("VPYTHON_VIRTUALENV_ROOT", "cache/vpython") b.env("VPYTHON_LOG_TRACE", "1") } diff --git a/infra/bots/git_utils.py b/infra/bots/git_utils.py index 668f99afd34d..d74136a99026 100755 --- a/infra/bots/git_utils.py +++ b/infra/bots/git_utils.py @@ -23,7 +23,8 @@ def __init__(self, config_dict): def __enter__(self): for k, v in self._config_dict.items(): try: - prev = subprocess.check_output(['git', 'config', '--local', k]).rstrip() + prev = subprocess.check_output([ + 'git', 'config', '--local', k]).decode('utf-8').rstrip() if prev: self._previous_values[k] = prev except subprocess.CalledProcessError: @@ -60,7 +61,8 @@ def __init__(self, branch_name, commit_msg, upload=True, commit_queue=False, def __enter__(self): subprocess.check_call(['git', 'reset', '--hard', 'HEAD']) subprocess.check_call(['git', 'checkout', 'main']) - if self._branch_name in subprocess.check_output(['git', 'branch']).split(): + if self._branch_name in subprocess.check_output([ + 'git', 'branch']).decode('utf-8').split(): subprocess.check_call(['git', 'branch', '-D', self._branch_name]) subprocess.check_call(['git', 'checkout', '-b', self._branch_name, '-t', 'origin/main']) @@ -81,7 +83,8 @@ def commit_and_upload(self, use_commit_queue=False): if self._cc_list: upload_cmd.extend(['--cc=%s' % ','.join(self._cc_list)]) subprocess.check_call(upload_cmd) - output = subprocess.check_output(['git', 'cl', 'issue']).rstrip() + output = subprocess.check_output([ + 'git', 'cl', 'issue']).decode('utf-8').rstrip() return re.match('^Issue number: (?P\d+) \((?P.+)\)$', output).group('issue_url') @@ -145,7 +148,7 @@ def __enter__(self): remote = self._repository if self._local: remote = self._local - subprocess.check_output(args=['git', 'clone', remote]) + subprocess.check_call(['git', 'clone', remote]) repo_name = remote.split('/')[-1] if repo_name.endswith('.git'): repo_name = repo_name[:-len('.git')] diff --git a/infra/bots/recipe_modules/build/__init__.py b/infra/bots/recipe_modules/build/__init__.py index 6bcc38b84e52..5ca95b4f59e0 100644 --- a/infra/bots/recipe_modules/build/__init__.py +++ b/infra/bots/recipe_modules/build/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'depot_tools/gclient', diff --git a/infra/bots/recipe_modules/build/examples/full.py b/infra/bots/recipe_modules/build/examples/full.py index 95dc54c5f615..dc2ae8f55322 100644 --- a/infra/bots/recipe_modules/build/examples/full.py +++ b/infra/bots/recipe_modules/build/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'build', diff --git a/infra/bots/recipe_modules/builder_name_schema/__init__.py b/infra/bots/recipe_modules/builder_name_schema/__init__.py index bc2963a0ccaa..c239b782cd1a 100644 --- a/infra/bots/recipe_modules/builder_name_schema/__init__.py +++ b/infra/bots/recipe_modules/builder_name_schema/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ ] diff --git a/infra/bots/recipe_modules/builder_name_schema/examples/full.py b/infra/bots/recipe_modules/builder_name_schema/examples/full.py index 9e540383c2ea..fd49a0cfc620 100644 --- a/infra/bots/recipe_modules/builder_name_schema/examples/full.py +++ b/infra/bots/recipe_modules/builder_name_schema/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'builder_name_schema', diff --git a/infra/bots/recipe_modules/checkout/__init__.py b/infra/bots/recipe_modules/checkout/__init__.py index 45d0f16f1a76..030bc371b60a 100644 --- a/infra/bots/recipe_modules/checkout/__init__.py +++ b/infra/bots/recipe_modules/checkout/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'depot_tools/bot_update', diff --git a/infra/bots/recipe_modules/checkout/api.py b/infra/bots/recipe_modules/checkout/api.py index 0a6e686ee506..5822642681ea 100644 --- a/infra/bots/recipe_modules/checkout/api.py +++ b/infra/bots/recipe_modules/checkout/api.py @@ -25,7 +25,7 @@ def assert_git_is_from_cipd(self): import sys which = 'where' if sys.platform == 'win32' else 'which' -git = subprocess.check_output([which, 'git']) +git = subprocess.check_output([which, 'git']).decode('utf-8') print('git was found at %s' % git) if 'cipd_bin_packages' not in git: print('Git must be obtained through CIPD.', file=sys.stderr) diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Debian10-Clang-x86_64-Release-NoDEPS.json b/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Debian10-Clang-x86_64-Release-NoDEPS.json index 219f18661f16..e6aa96571c38 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Debian10-Clang-x86_64-Release-NoDEPS.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Debian10-Clang-x86_64-Release-NoDEPS.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json b/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json index 76c04079a500..960d5503cf8b 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/Housekeeper-Weekly-RecreateSKPs.json b/infra/bots/recipe_modules/checkout/examples/full.expected/Housekeeper-Weekly-RecreateSKPs.json index f90dd0ff248c..2ca9f8487017 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/Housekeeper-Weekly-RecreateSKPs.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/Housekeeper-Weekly-RecreateSKPs.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/cross_repo_trybot.json b/infra/bots/recipe_modules/checkout/examples/full.expected/cross_repo_trybot.json index e48c51eadebf..e90898df3b1c 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/cross_repo_trybot.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/cross_repo_trybot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/flutter_trybot.json b/infra/bots/recipe_modules/checkout/examples/full.expected/flutter_trybot.json index 5a1ad964a895..e902ea63566c 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/flutter_trybot.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/flutter_trybot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.expected/trybot.json b/infra/bots/recipe_modules/checkout/examples/full.expected/trybot.json index 5ab0f28f1d23..c75a88b2d70d 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.expected/trybot.json +++ b/infra/bots/recipe_modules/checkout/examples/full.expected/trybot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipe_modules/checkout/examples/full.py b/infra/bots/recipe_modules/checkout/examples/full.py index e4f07152b3fe..c695181fe486 100644 --- a/infra/bots/recipe_modules/checkout/examples/full.py +++ b/infra/bots/recipe_modules/checkout/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipe_modules/docker/__init__.py b/infra/bots/recipe_modules/docker/__init__.py index 2e61ccb01383..68f28c5ebd91 100644 --- a/infra/bots/recipe_modules/docker/__init__.py +++ b/infra/bots/recipe_modules/docker/__init__.py @@ -3,7 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipe_modules/docker/examples/full.py b/infra/bots/recipe_modules/docker/examples/full.py index a9cc88b5c7ac..5885ab295430 100644 --- a/infra/bots/recipe_modules/docker/examples/full.py +++ b/infra/bots/recipe_modules/docker/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'docker', diff --git a/infra/bots/recipe_modules/doxygen/__init__.py b/infra/bots/recipe_modules/doxygen/__init__.py index 9555f07e15bf..fceee85a786d 100644 --- a/infra/bots/recipe_modules/doxygen/__init__.py +++ b/infra/bots/recipe_modules/doxygen/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipe_modules/doxygen/examples/full.py b/infra/bots/recipe_modules/doxygen/examples/full.py index e27b2d3fd662..51d8bd51bbfe 100644 --- a/infra/bots/recipe_modules/doxygen/examples/full.py +++ b/infra/bots/recipe_modules/doxygen/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'doxygen', diff --git a/infra/bots/recipe_modules/env/__init__.py b/infra/bots/recipe_modules/env/__init__.py index a52348569a22..2050f30e5220 100644 --- a/infra/bots/recipe_modules/env/__init__.py +++ b/infra/bots/recipe_modules/env/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipe_modules/env/examples/full.py b/infra/bots/recipe_modules/env/examples/full.py index 47ef9f14f694..20f9625c243a 100644 --- a/infra/bots/recipe_modules/env/examples/full.py +++ b/infra/bots/recipe_modules/env/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipe_modules/flavor/__init__.py b/infra/bots/recipe_modules/flavor/__init__.py index ce8d518df1b9..ab8557bde459 100644 --- a/infra/bots/recipe_modules/flavor/__init__.py +++ b/infra/bots/recipe_modules/flavor/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'docker', diff --git a/infra/bots/recipe_modules/flavor/android.py b/infra/bots/recipe_modules/flavor/android.py index a56094c6c784..2db77325ca21 100644 --- a/infra/bots/recipe_modules/flavor/android.py +++ b/infra/bots/recipe_modules/flavor/android.py @@ -166,37 +166,37 @@ def _scale_for_nanobench(self): freq = sys.argv[2] idle_timer = "10000" -log = subprocess.check_output([ADB, 'root']) +log = subprocess.check_output([ADB, 'root']).decode('utf-8') # check for message like 'adbd cannot run as root in production builds' print(log) if 'cannot' in log: raise Exception('adb root failed') -subprocess.check_output([ADB, 'shell', 'stop', 'thermald']) +subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8') subprocess.check_output([ADB, 'shell', 'echo "%s" > ' - '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]) + '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8') actual_freq = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip() + '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip() if actual_freq != freq: raise Exception('Frequency (actual, expected) (%s, %s)' % (actual_freq, freq)) -subprocess.check_output([ADB, 'shell', 'echo "%s" > ' +subprocess.check_call([ADB, 'shell', 'echo "%s" > ' '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer]) actual_timer = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip() + '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip() if actual_timer != idle_timer: raise Exception('idle_timer (actual, expected) (%s, %s)' % (actual_timer, idle_timer)) for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']: - subprocess.check_output([ADB, 'shell', 'echo "1" > ' + subprocess.check_call([ADB, 'shell', 'echo "1" > ' '/sys/class/kgsl/kgsl-3d0/%s' % s]) actual_set = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip() + '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip() if actual_set != "1": raise Exception('%s (actual, expected) (%s, 1)' % (s, actual_set)) @@ -219,16 +219,19 @@ def _set_governor(self, cpu, gov): cpu = int(sys.argv[2]) gov = sys.argv[3] -log = subprocess.check_output([ADB, 'root']) +log = subprocess.check_output([ADB, 'root']).decode('utf-8') # check for message like 'adbd cannot run as root in production builds' print(log) if 'cannot' in log: raise Exception('adb root failed') -subprocess.check_output([ADB, 'shell', 'echo "%s" > ' - '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)]) -actual_gov = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip() +subprocess.check_output([ + ADB, 'shell', + 'echo "%s" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % ( + gov, cpu)]).decode('utf-8') +actual_gov = subprocess.check_output([ + ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % + cpu]).decode('utf-8').strip() if actual_gov != gov: raise Exception('(actual, expected) (%s, %s)' % (actual_gov, gov)) @@ -256,7 +259,7 @@ def _set_cpu_online(self, cpu, value): cpu = int(sys.argv[2]) value = int(sys.argv[3]) -log = subprocess.check_output([ADB, 'root']) +log = subprocess.check_output([ADB, 'root']).decode('utf-8') # check for message like 'adbd cannot run as root in production builds' print(log) if 'cannot' in log: @@ -265,15 +268,15 @@ def _set_cpu_online(self, cpu, value): # If we try to echo 1 to an already online cpu, adb returns exit code 1. # So, check the value before trying to write it. prior_status = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip() + '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip() if prior_status == str(value): print('CPU %d online already %d' % (cpu, value)) sys.exit() -subprocess.check_output([ADB, 'shell', 'echo %s > ' +subprocess.check_call([ADB, 'shell', 'echo %s > ' '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)]) actual_status = subprocess.check_output([ADB, 'shell', 'cat ' - '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip() + '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip() if actual_status != str(value): raise Exception('(actual, expected) (%s, %d)' % (actual_status, value)) @@ -296,7 +299,7 @@ def _scale_cpu(self, cpu, target_percent): ADB = sys.argv[1] target_percent = float(sys.argv[2]) cpu = int(sys.argv[3]) -log = subprocess.check_output([ADB, 'root']) +log = subprocess.check_output([ADB, 'root']).decode('utf-8') # check for message like 'adbd cannot run as root in production builds' print(log) if 'cannot' in log: @@ -306,7 +309,7 @@ def _scale_cpu(self, cpu, target_percent): # All devices we test on give a list of their available frequencies. available_freqs = subprocess.check_output([ADB, 'shell', - 'cat %s/scaling_available_frequencies' % root]) + 'cat %s/scaling_available_frequencies' % root]).decode('utf-8') # Check for message like '/system/bin/sh: file not found' if available_freqs and '/system/bin/sh' not in available_freqs: @@ -330,15 +333,15 @@ def _scale_cpu(self, cpu, target_percent): # We must set min first, because if we try to set max to be less than min # (which sometimes happens after certain devices reboot) it returns a # perplexing permissions error. -subprocess.check_output([ADB, 'shell', 'echo 0 > ' +subprocess.check_call([ADB, 'shell', 'echo 0 > ' '%s/scaling_min_freq' % root]) -subprocess.check_output([ADB, 'shell', 'echo %d > ' +subprocess.check_call([ADB, 'shell', 'echo %d > ' '%s/scaling_max_freq' % (freq, root)]) -subprocess.check_output([ADB, 'shell', 'echo %d > ' +subprocess.check_call([ADB, 'shell', 'echo %d > ' '%s/scaling_setspeed' % (freq, root)]) time.sleep(5) actual_freq = subprocess.check_output([ADB, 'shell', 'cat ' - '%s/scaling_cur_freq' % root]).strip() + '%s/scaling_cur_freq' % root]).decode('utf-8').strip() if actual_freq != str(freq): raise Exception('(actual, expected) (%s, %d)' % (actual_freq, freq)) @@ -378,33 +381,33 @@ def wait_for_device(): while True: time.sleep(5) print('Waiting for device') - subprocess.check_output([ADB, 'wait-for-device']) + subprocess.check_call([ADB, 'wait-for-device']) bit1 = subprocess.check_output([ADB, 'shell', 'getprop', - 'dev.bootcomplete']) + 'dev.bootcomplete']).decode('utf-8') bit2 = subprocess.check_output([ADB, 'shell', 'getprop', - 'sys.boot_completed']) + 'sys.boot_completed']).decode('utf-8') if '1' in bit1 and '1' in bit2: print('Device detected') break -log = subprocess.check_output([ADB, 'root']) +log = subprocess.check_output([ADB, 'root']).decode('utf-8') # check for message like 'adbd cannot run as root in production builds' print(log) if 'cannot' in log: raise Exception('adb root failed') -output = subprocess.check_output([ADB, 'disable-verity']) +output = subprocess.check_output([ADB, 'disable-verity']).decode('utf-8') print(output) if 'already disabled' not in output: print('Rebooting device') - subprocess.check_output([ADB, 'reboot']) + subprocess.check_call([ADB, 'reboot']) wait_for_device() def installASAN(revert=False): # ASAN setup script is idempotent, either it installs it or # says it's installed. Returns True on success, false otherwise. - out = subprocess.check_output([ADB, 'wait-for-device']) + out = subprocess.check_output([ADB, 'wait-for-device']).decode('utf-8') print(out) cmd = [ASAN_SETUP] if revert: @@ -414,8 +417,8 @@ def installASAN(revert=False): # this also blocks until command finishes (stdout, stderr) = process.communicate() - print(stdout) - print('Stderr: %s' % stderr) + print(stdout.decode('utf-8')) + print('Stderr: %s' % stderr.decode('utf-8')) return process.returncode == 0 if not installASAN(): @@ -473,7 +476,7 @@ def cleanup_steps(self): import subprocess import sys out = sys.argv[1] - log = subprocess.check_output(['%s', 'logcat', '-d']) + log = subprocess.check_output(['%s', 'logcat', '-d']).decode('utf-8') for line in log.split('\\n'): tokens = line.split() if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc': @@ -481,7 +484,8 @@ def cleanup_steps(self): local = os.path.join(out, os.path.basename(path)) if os.path.exists(local): try: - sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr]) + sym = subprocess.check_output([ + 'addr2line', '-Cfpe', local, addr]).decode('utf-8') line = line.replace(addr, addr + ' ' + sym.strip()) except subprocess.CalledProcessError: pass @@ -526,8 +530,8 @@ def step(self, name, cmd): sh = sys.argv[2] subprocess.check_call(['%s', 'shell', 'sh', bin_dir + sh]) try: - sys.exit(int(subprocess.check_output(['%s', 'shell', 'cat', - bin_dir + 'rc']))) + sys.exit(int(subprocess.check_output([ + '%s', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8'))) except ValueError: print("Couldn't read the return code. Probably killed for OOM.") sys.exit(1) @@ -582,9 +586,10 @@ def remove_file_on_device(self, path): cmd = [adb, 'shell', 'ls', path] print(' '.join(cmd)) try: - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + output = subprocess.check_output( + cmd, stderr=subprocess.STDOUT).decode('utf-8') except subprocess.CalledProcessError as e: - output = e.output + output = e.output.decode('utf-8') print('Output was:') print('======') print(output) diff --git a/infra/bots/recipe_modules/flavor/chromebook.py b/infra/bots/recipe_modules/flavor/chromebook.py index b4528b3b3b80..c8b6e6f3f67c 100644 --- a/infra/bots/recipe_modules/flavor/chromebook.py +++ b/infra/bots/recipe_modules/flavor/chromebook.py @@ -46,7 +46,8 @@ def _copy_dir(self, src, dest): import sys src = sys.argv[1] + '/*' dest = sys.argv[2] - print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)) + print(subprocess.check_output( + 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8')) """, args=[src, dest], infra_step=True) def copy_directory_contents_to_device(self, host_path, device_path): diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json index 66a29384a460..29d7b346024b 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -286,7 +288,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -314,9 +316,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -330,7 +333,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -358,9 +361,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -495,7 +499,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -523,9 +527,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -539,7 +544,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -567,9 +572,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -704,7 +710,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -732,9 +738,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -748,7 +755,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -776,9 +783,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -910,7 +918,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -923,8 +931,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1012,7 +1020,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1028,7 +1036,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1036,7 +1044,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan.json index 3b9d2a50f354..e71396a2a052 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -319,7 +321,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -347,9 +349,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -363,7 +366,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -391,9 +394,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -528,7 +532,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -556,9 +560,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -572,7 +577,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -600,9 +605,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -737,7 +743,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -765,9 +771,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -781,7 +788,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -809,9 +816,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -943,7 +951,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -956,8 +964,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1045,7 +1053,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1061,7 +1069,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1069,7 +1077,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json index d5109f03b39f..949a15e09992 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -302,7 +304,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -330,9 +332,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -346,7 +349,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -374,9 +377,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -511,7 +515,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -539,9 +543,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -555,7 +560,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -583,9 +588,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -720,7 +726,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -748,9 +754,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -764,7 +771,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -792,9 +799,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -926,7 +934,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -939,8 +947,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1028,7 +1036,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1044,7 +1052,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1052,7 +1060,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NVIDIA_Shield-CPU-TegraX1-arm64-Release-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NVIDIA_Shield-CPU-TegraX1-arm64-Release-All-Android.json index 00d70a546d61..2036122cc138 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NVIDIA_Shield-CPU-TegraX1-arm64-Release-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-NVIDIA_Shield-CPU-TegraX1-arm64-Release-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -266,7 +268,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION" ], @@ -294,9 +296,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -310,7 +313,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/text_blob_traces" ], @@ -338,9 +341,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -511,7 +515,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -539,9 +543,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -555,7 +560,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -583,9 +588,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -720,7 +726,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -748,9 +754,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -764,7 +771,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -792,9 +799,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -929,7 +937,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -957,9 +965,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -973,7 +982,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1001,9 +1010,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1135,7 +1145,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1148,8 +1158,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1237,7 +1247,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1253,7 +1263,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1261,7 +1271,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json index a4b7f5e61939..0ae95656b431 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -314,7 +319,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -345,15 +350,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -364,7 +369,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -386,7 +391,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -395,15 +400,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -414,7 +419,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -436,7 +441,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -464,7 +469,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -486,7 +491,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -495,15 +500,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -514,7 +519,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_call([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_call([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", "/opt/infra-android/tools/adb", "600000000" ], @@ -535,37 +540,37 @@ "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('Frequency (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo \"%s\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('idle_timer (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_timer, idle_timer))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'shell', 'echo \"1\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@", "@@@STEP_LOG_LINE@python.inline@ actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@ if actual_set != \"1\":@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s (actual, expected) (%s, 1)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (s, actual_set))@@@", @@ -680,7 +685,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -708,9 +713,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -724,7 +730,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -752,9 +758,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -889,7 +896,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -917,9 +924,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -933,7 +941,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -961,9 +969,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1098,7 +1107,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1126,9 +1135,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1142,7 +1152,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1170,9 +1180,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1304,7 +1315,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1317,8 +1328,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1406,7 +1417,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1422,7 +1433,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1430,7 +1441,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json index 92801f91981d..00f8eb0c31d2 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -314,7 +319,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -345,15 +350,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -364,7 +369,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -386,7 +391,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -395,15 +400,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -414,7 +419,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -436,7 +441,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -464,7 +469,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -486,7 +491,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -495,15 +500,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -582,7 +587,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/MSKP_VERSION" ], @@ -610,9 +615,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -626,7 +632,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/mskp" ], @@ -654,9 +660,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -788,7 +795,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -801,8 +808,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -890,7 +897,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -906,7 +913,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -914,7 +921,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json index 506e0078b015..cd8551fedecf 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json @@ -250,7 +250,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skia/resources", "foo@127.0.0.1:/home/chronos/user/resources" ], @@ -262,7 +262,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -381,7 +382,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skp", "foo@127.0.0.1:/home/chronos/user/skps" ], @@ -393,7 +394,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -525,7 +527,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skimage", "foo@127.0.0.1:/home/chronos/user/images" ], @@ -537,7 +539,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -669,7 +672,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/svg", "foo@127.0.0.1:/home/chronos/user/svgs" ], @@ -681,7 +684,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -720,7 +724,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "foo@127.0.0.1:/home/chronos/user/perf", "[START_DIR]/[SWARM_OUT_DIR]" ], @@ -732,7 +736,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json index 328c0e9dcba8..9f5667b476da 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "hotplug" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -344,7 +349,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -372,9 +377,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -388,7 +394,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -416,9 +422,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -553,7 +560,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -581,9 +588,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -597,7 +605,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -625,9 +633,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -762,7 +771,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -790,9 +799,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -806,7 +816,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -834,9 +844,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -968,7 +979,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -981,8 +992,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1070,7 +1081,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1086,7 +1097,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1094,7 +1105,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json index b8515ebc492f..09ed1d6a0b93 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -302,7 +304,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -330,9 +332,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -346,7 +349,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -374,9 +377,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -511,7 +515,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -539,9 +543,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -555,7 +560,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -583,9 +588,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -720,7 +726,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -748,9 +754,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -764,7 +771,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -792,9 +799,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -926,7 +934,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -939,8 +947,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1028,7 +1036,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1044,7 +1052,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1052,7 +1060,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json index 87f0b9a3df94..05e0a59eb1b1 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "1" @@ -220,7 +222,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -229,15 +231,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -248,7 +250,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "1" @@ -270,7 +272,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -279,15 +281,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -298,7 +300,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "1" @@ -320,7 +322,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -329,15 +331,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -348,7 +350,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "1" @@ -370,7 +372,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -379,15 +381,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -398,7 +400,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "ondemand" @@ -420,16 +422,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -440,7 +445,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "ondemand" @@ -462,16 +467,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -586,7 +594,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -614,9 +622,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -630,7 +639,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -658,9 +667,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -795,7 +805,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -823,9 +833,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -839,7 +850,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -867,9 +878,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1004,7 +1016,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1032,9 +1044,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1048,7 +1061,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1076,9 +1089,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1210,7 +1224,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -1223,8 +1237,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1312,7 +1326,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1328,7 +1342,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1336,7 +1350,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json index 9ec8b8caeaec..91d524eb63e6 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android_ASAN.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nASAN_SETUP = sys.argv[2]\n\ndef wait_for_device():\n while True:\n time.sleep(5)\n print('Waiting for device')\n subprocess.check_output([ADB, 'wait-for-device'])\n bit1 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'dev.bootcomplete'])\n bit2 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'sys.boot_completed'])\n if '1' in bit1 and '1' in bit2:\n print('Device detected')\n break\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\noutput = subprocess.check_output([ADB, 'disable-verity'])\nprint(output)\n\nif 'already disabled' not in output:\n print('Rebooting device')\n subprocess.check_output([ADB, 'reboot'])\n wait_for_device()\n\ndef installASAN(revert=False):\n # ASAN setup script is idempotent, either it installs it or\n # says it's installed. Returns True on success, false otherwise.\n out = subprocess.check_output([ADB, 'wait-for-device'])\n print(out)\n cmd = [ASAN_SETUP]\n if revert:\n cmd = [ASAN_SETUP, '--revert']\n process = subprocess.Popen(cmd, env={'ADB': ADB},\n stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n\n # this also blocks until command finishes\n (stdout, stderr) = process.communicate()\n print(stdout)\n print('Stderr: %s' % stderr)\n return process.returncode == 0\n\nif not installASAN():\n print('Trying to revert the ASAN install and then re-install')\n # ASAN script sometimes has issues if it was interrupted or partially applied\n # Try reverting it, then re-enabling it\n if not installASAN(revert=True):\n raise Exception('reverting ASAN install failed')\n\n # Sleep because device does not reboot instantly\n time.sleep(10)\n\n if not installASAN():\n raise Exception('Tried twice to setup ASAN and failed.')\n\n# Sleep because device does not reboot instantly\ntime.sleep(10)\nwait_for_device()\n# Sleep again to hopefully avoid error \"secure_mkdirs failed: No such file or\n# directory\" when pushing resources to the device.\ntime.sleep(60)\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nASAN_SETUP = sys.argv[2]\n\ndef wait_for_device():\n while True:\n time.sleep(5)\n print('Waiting for device')\n subprocess.check_call([ADB, 'wait-for-device'])\n bit1 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'dev.bootcomplete']).decode('utf-8')\n bit2 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'sys.boot_completed']).decode('utf-8')\n if '1' in bit1 and '1' in bit2:\n print('Device detected')\n break\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\noutput = subprocess.check_output([ADB, 'disable-verity']).decode('utf-8')\nprint(output)\n\nif 'already disabled' not in output:\n print('Rebooting device')\n subprocess.check_call([ADB, 'reboot'])\n wait_for_device()\n\ndef installASAN(revert=False):\n # ASAN setup script is idempotent, either it installs it or\n # says it's installed. Returns True on success, false otherwise.\n out = subprocess.check_output([ADB, 'wait-for-device']).decode('utf-8')\n print(out)\n cmd = [ASAN_SETUP]\n if revert:\n cmd = [ASAN_SETUP, '--revert']\n process = subprocess.Popen(cmd, env={'ADB': ADB},\n stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n\n # this also blocks until command finishes\n (stdout, stderr) = process.communicate()\n print(stdout.decode('utf-8'))\n print('Stderr: %s' % stderr.decode('utf-8'))\n return process.returncode == 0\n\nif not installASAN():\n print('Trying to revert the ASAN install and then re-install')\n # ASAN script sometimes has issues if it was interrupted or partially applied\n # Try reverting it, then re-enabling it\n if not installASAN(revert=True):\n raise Exception('reverting ASAN install failed')\n\n # Sleep because device does not reboot instantly\n time.sleep(10)\n\n if not installASAN():\n raise Exception('Tried twice to setup ASAN and failed.')\n\n# Sleep because device does not reboot instantly\ntime.sleep(10)\nwait_for_device()\n# Sleep again to hopefully avoid error \"secure_mkdirs failed: No such file or\n# directory\" when pushing resources to the device.\ntime.sleep(60)\n", "/opt/infra-android/tools/adb", "[START_DIR]/android_ndk_linux/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.8/bin/asan_device_setup" ], @@ -222,33 +224,33 @@ "@@@STEP_LOG_LINE@python.inline@ while True:@@@", "@@@STEP_LOG_LINE@python.inline@ time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@ print('Waiting for device')@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'wait-for-device'])@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'wait-for-device'])@@@", "@@@STEP_LOG_LINE@python.inline@ bit1 = subprocess.check_output([ADB, 'shell', 'getprop',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'dev.bootcomplete'])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'dev.bootcomplete']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ bit2 = subprocess.check_output([ADB, 'shell', 'getprop',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'sys.boot_completed'])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'sys.boot_completed']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ if '1' in bit1 and '1' in bit2:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Device detected')@@@", "@@@STEP_LOG_LINE@python.inline@ break@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@output = subprocess.check_output([ADB, 'disable-verity'])@@@", + "@@@STEP_LOG_LINE@python.inline@output = subprocess.check_output([ADB, 'disable-verity']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@if 'already disabled' not in output:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Rebooting device')@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'reboot'])@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'reboot'])@@@", "@@@STEP_LOG_LINE@python.inline@ wait_for_device()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@def installASAN(revert=False):@@@", "@@@STEP_LOG_LINE@python.inline@ # ASAN setup script is idempotent, either it installs it or@@@", "@@@STEP_LOG_LINE@python.inline@ # says it's installed. Returns True on success, false otherwise.@@@", - "@@@STEP_LOG_LINE@python.inline@ out = subprocess.check_output([ADB, 'wait-for-device'])@@@", + "@@@STEP_LOG_LINE@python.inline@ out = subprocess.check_output([ADB, 'wait-for-device']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ print(out)@@@", "@@@STEP_LOG_LINE@python.inline@ cmd = [ASAN_SETUP]@@@", "@@@STEP_LOG_LINE@python.inline@ if revert:@@@", @@ -258,8 +260,8 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@ # this also blocks until command finishes@@@", "@@@STEP_LOG_LINE@python.inline@ (stdout, stderr) = process.communicate()@@@", - "@@@STEP_LOG_LINE@python.inline@ print(stdout)@@@", - "@@@STEP_LOG_LINE@python.inline@ print('Stderr: %s' % stderr)@@@", + "@@@STEP_LOG_LINE@python.inline@ print(stdout.decode('utf-8'))@@@", + "@@@STEP_LOG_LINE@python.inline@ print('Stderr: %s' % stderr.decode('utf-8'))@@@", "@@@STEP_LOG_LINE@python.inline@ return process.returncode == 0@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@if not installASAN():@@@", @@ -288,7 +290,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "1" @@ -310,7 +312,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -319,15 +321,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -338,7 +340,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "1" @@ -360,7 +362,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -369,15 +371,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -388,7 +390,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "1" @@ -410,7 +412,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -419,15 +421,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -438,7 +440,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "1" @@ -460,7 +462,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -469,15 +471,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -488,7 +490,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "ondemand" @@ -510,16 +512,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -530,7 +535,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "ondemand" @@ -552,16 +557,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -676,7 +684,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -704,9 +712,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -720,7 +729,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -748,9 +757,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -885,7 +895,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -913,9 +923,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -929,7 +940,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -957,9 +968,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1094,7 +1106,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1122,9 +1134,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1138,7 +1151,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1166,9 +1179,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1300,7 +1314,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -1313,8 +1327,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1428,7 +1442,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1444,7 +1458,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1452,7 +1466,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan.json index 3a21c9a9d21a..9d66aab833f6 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "performance" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -344,7 +349,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -372,9 +377,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -388,7 +394,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -416,9 +422,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -553,7 +560,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -581,9 +588,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -597,7 +605,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -625,9 +633,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -762,7 +771,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -790,9 +799,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -806,7 +816,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -834,9 +844,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -968,7 +979,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -981,8 +992,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1070,7 +1081,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1086,7 +1097,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1094,7 +1105,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json index 61027f8ed426..8c9f90b70b56 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Test-ChromeOS-Clang-SamsungChromebookPlus-GPU-MaliT860-arm-Release-All.json @@ -250,7 +250,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skia/resources", "foo@127.0.0.1:/home/chronos/user/resources" ], @@ -262,7 +262,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -381,7 +382,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skp", "foo@127.0.0.1:/home/chronos/user/skps" ], @@ -393,7 +394,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -525,7 +527,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/skimage", "foo@127.0.0.1:/home/chronos/user/images" ], @@ -537,7 +539,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -669,7 +672,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "[START_DIR]/svg", "foo@127.0.0.1:/home/chronos/user/svgs" ], @@ -681,7 +684,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, @@ -720,7 +724,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))\n", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint(subprocess.check_output(\n 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))\n", "foo@127.0.0.1:/home/chronos/user/dm_out", "[START_DIR]/[SWARM_OUT_DIR]" ], @@ -732,7 +736,8 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1] + '/*'@@@", "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output('scp -r %s %s' % (src, dest), shell=True))@@@", + "@@@STEP_LOG_LINE@python.inline@print(subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ 'scp -r %s %s' % (src, dest), shell=True).decode('utf-8'))@@@", "@@@STEP_LOG_END@python.inline@@@" ] }, diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json index c58393c3592d..77d3c61978d6 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/usr/bin/adb.1.0.35", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -315,7 +320,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/usr/bin/adb.1.0.35", "0.6", "4" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -346,7 +351,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -370,15 +375,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -390,7 +395,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/usr/bin/adb.1.0.35", "0.6", "4" @@ -411,7 +416,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -421,7 +426,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -465,7 +470,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -481,7 +486,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -489,7 +494,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_golo.json b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_golo.json index d7c74bb96ec1..1a51d6c4ca5f 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_golo.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_golo.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -315,7 +320,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -346,7 +351,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -370,15 +375,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -390,7 +395,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -411,7 +416,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -421,7 +426,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -465,7 +470,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -481,7 +486,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -489,7 +494,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_once.json b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_once.json index 6eafd82af291..7c2e1294ddcb 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_once.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/cpu_scale_failed_once.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -315,7 +320,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -346,7 +351,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -370,15 +375,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -389,7 +394,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -411,7 +416,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -420,15 +425,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -439,7 +444,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -461,7 +466,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -470,15 +475,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -489,7 +494,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -511,7 +516,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -520,15 +525,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -539,7 +544,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -561,7 +566,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -570,15 +575,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -589,7 +594,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_call([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_call([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", "/opt/infra-android/tools/adb", "600000000" ], @@ -610,37 +615,37 @@ "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('Frequency (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo \"%s\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('idle_timer (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_timer, idle_timer))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'shell', 'echo \"1\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@", "@@@STEP_LOG_LINE@python.inline@ actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@ if actual_set != \"1\":@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s (actual, expected) (%s, 1)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (s, actual_set))@@@", @@ -755,7 +760,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -783,9 +788,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -799,7 +805,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -827,9 +833,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -964,7 +971,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -992,9 +999,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1008,7 +1016,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -1036,9 +1044,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1173,7 +1182,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1201,9 +1210,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1217,7 +1227,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1245,9 +1255,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1379,7 +1390,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1392,8 +1403,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1481,7 +1492,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1497,7 +1508,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1505,7 +1516,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json index d50b2ce29c7c..a338bafac71e 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_infra_step.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -314,7 +319,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -345,15 +350,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -364,7 +369,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -386,7 +391,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -395,15 +400,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -414,7 +419,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -436,7 +441,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -464,7 +469,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -486,7 +491,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -495,15 +500,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -514,7 +519,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_call([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_call([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", "/opt/infra-android/tools/adb", "600000000" ], @@ -535,37 +540,37 @@ "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('Frequency (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo \"%s\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('idle_timer (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_timer, idle_timer))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'shell', 'echo \"1\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@", "@@@STEP_LOG_LINE@python.inline@ actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@ if actual_set != \"1\":@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s (actual, expected) (%s, 1)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (s, actual_set))@@@", @@ -680,7 +685,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -708,9 +713,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -724,7 +730,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -752,9 +758,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -889,7 +896,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -917,9 +924,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -933,7 +941,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -961,9 +969,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1098,7 +1107,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1126,9 +1135,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1142,7 +1152,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1170,9 +1180,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1304,7 +1315,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1317,8 +1328,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1406,7 +1417,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1422,7 +1433,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1430,7 +1441,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json index 2f6b14577698..a6ae98598faa 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/failed_read_version.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -198,7 +200,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -220,16 +222,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -240,7 +245,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -261,7 +266,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -271,7 +276,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -295,15 +300,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -314,7 +319,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -336,7 +341,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -345,15 +350,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -364,7 +369,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -386,7 +391,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -395,15 +400,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -414,7 +419,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -436,7 +441,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -464,7 +469,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -486,7 +491,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -495,15 +500,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -514,7 +519,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_call([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_call([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", "/opt/infra-android/tools/adb", "600000000" ], @@ -535,37 +540,37 @@ "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('Frequency (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo \"%s\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('idle_timer (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_timer, idle_timer))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'shell', 'echo \"1\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@", "@@@STEP_LOG_LINE@python.inline@ actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@ if actual_set != \"1\":@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s (actual, expected) (%s, 1)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (s, actual_set))@@@", @@ -680,7 +685,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -708,9 +713,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -724,7 +730,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -752,9 +758,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -938,7 +945,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -966,9 +973,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -982,7 +990,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -1010,9 +1018,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1147,7 +1156,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1175,9 +1184,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1191,7 +1201,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1219,9 +1229,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1353,7 +1364,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1366,8 +1377,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1455,7 +1466,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1471,7 +1482,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1479,7 +1490,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json index 7a5aa346e152..ec7135df0aef 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -248,7 +250,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "4", "userspace" @@ -270,16 +272,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -290,7 +295,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/opt/infra-android/tools/adb", "0.6", "4" @@ -311,7 +316,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -321,7 +326,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -345,15 +350,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -364,7 +369,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "0", "0" @@ -386,7 +391,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -395,15 +400,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -414,7 +419,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "1", "0" @@ -436,7 +441,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -445,15 +450,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -464,7 +469,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "2", "0" @@ -486,7 +491,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -495,15 +500,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -514,7 +519,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/opt/infra-android/tools/adb", "3", "0" @@ -536,7 +541,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -545,15 +550,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -564,7 +569,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()\nif actual_freq != freq:\n raise Exception('Frequency (actual, expected) (%s, %s)'\n % (actual_freq, freq))\n\nsubprocess.check_call([ADB, 'shell', 'echo \"%s\" > '\n '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()\nif actual_timer != idle_timer:\n raise Exception('idle_timer (actual, expected) (%s, %s)'\n % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n subprocess.check_call([ADB, 'shell', 'echo \"1\" > '\n '/sys/class/kgsl/kgsl-3d0/%s' % s])\n actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()\n if actual_set != \"1\":\n raise Exception('%s (actual, expected) (%s, 1)'\n % (s, actual_set))\n", "/opt/infra-android/tools/adb", "600000000" ], @@ -585,37 +590,37 @@ "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/gpuclk']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('Frequency (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo \"%s\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/idle_timer']).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('idle_timer (actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_timer, idle_timer))@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'shell', 'echo \"1\" > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@", "@@@STEP_LOG_LINE@python.inline@ actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/class/kgsl/kgsl-3d0/%s' % s]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@ if actual_set != \"1\":@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s (actual, expected) (%s, 1)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (s, actual_set))@@@", @@ -730,7 +735,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -758,9 +763,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -774,7 +780,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -802,9 +808,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -939,7 +946,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -967,9 +974,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -983,7 +991,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/images" ], @@ -1011,9 +1019,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1148,7 +1157,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -1176,9 +1185,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1192,7 +1202,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1220,9 +1230,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1354,7 +1365,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1367,8 +1378,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1456,7 +1467,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1472,7 +1483,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1480,7 +1491,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json index 00f916f22095..3de1a6063588 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/retry_adb_command_retries_exhausted.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "file.txt" ], @@ -76,9 +76,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -120,7 +121,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "device_results_dir" ], @@ -148,9 +149,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -301,7 +303,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -317,7 +319,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -325,7 +327,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipe_modules/flavor/examples/full.py b/infra/bots/recipe_modules/flavor/examples/full.py index 8bba1e39f705..ddfab4950f56 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.py +++ b/infra/bots/recipe_modules/flavor/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'flavor', diff --git a/infra/bots/recipe_modules/flavor/resources/symbolize_stack_trace.py b/infra/bots/recipe_modules/flavor/resources/symbolize_stack_trace.py index 51116a270872..a7bbb44f34be 100755 --- a/infra/bots/recipe_modules/flavor/resources/symbolize_stack_trace.py +++ b/infra/bots/recipe_modules/flavor/resources/symbolize_stack_trace.py @@ -77,7 +77,8 @@ def main(basedir, cmd): if not addr or not addr.startswith('0x'): addr = addr2 try: - sym = subprocess.check_output(['addr2line', '-Cfpe', path, addr]) + sym = subprocess.check_output([ + 'addr2line', '-Cfpe', path, addr]).decode('utf-8') except subprocess.CalledProcessError: sym = '' sym = sym.strip() diff --git a/infra/bots/recipe_modules/git/__init__.py b/infra/bots/recipe_modules/git/__init__.py index afb192e85c9f..6832955d2439 100644 --- a/infra/bots/recipe_modules/git/__init__.py +++ b/infra/bots/recipe_modules/git/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipe_modules/git/examples/full.py b/infra/bots/recipe_modules/git/examples/full.py index 39ec7d12072e..b5a0df821cf9 100644 --- a/infra/bots/recipe_modules/git/examples/full.py +++ b/infra/bots/recipe_modules/git/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'git', diff --git a/infra/bots/recipe_modules/gold_upload/__init__.py b/infra/bots/recipe_modules/gold_upload/__init__.py index b0434588de03..dbfb0282525f 100644 --- a/infra/bots/recipe_modules/gold_upload/__init__.py +++ b/infra/bots/recipe_modules/gold_upload/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/json', diff --git a/infra/bots/recipe_modules/gold_upload/examples/full.py b/infra/bots/recipe_modules/gold_upload/examples/full.py index 5d54d55fd0ee..d9514e104238 100644 --- a/infra/bots/recipe_modules/gold_upload/examples/full.py +++ b/infra/bots/recipe_modules/gold_upload/examples/full.py @@ -5,7 +5,7 @@ # Recipe which runs the Skia gold_upload tests. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'gold_upload', diff --git a/infra/bots/recipe_modules/gsutil/__init__.py b/infra/bots/recipe_modules/gsutil/__init__.py index 44d700e8f799..13570ef6bb8a 100644 --- a/infra/bots/recipe_modules/gsutil/__init__.py +++ b/infra/bots/recipe_modules/gsutil/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipe_modules/gsutil/examples/full.py b/infra/bots/recipe_modules/gsutil/examples/full.py index 475cc786ab21..9104c2053f8f 100644 --- a/infra/bots/recipe_modules/gsutil/examples/full.py +++ b/infra/bots/recipe_modules/gsutil/examples/full.py @@ -5,7 +5,7 @@ # Recipe which runs the Skia gsutils tests. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'gsutil', diff --git a/infra/bots/recipe_modules/infra/__init__.py b/infra/bots/recipe_modules/infra/__init__.py index 910eeb8eeffb..b414e8896223 100644 --- a/infra/bots/recipe_modules/infra/__init__.py +++ b/infra/bots/recipe_modules/infra/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipe_modules/infra/examples/full.py b/infra/bots/recipe_modules/infra/examples/full.py index 87560ffec9c9..bb5d1086f51d 100644 --- a/infra/bots/recipe_modules/infra/examples/full.py +++ b/infra/bots/recipe_modules/infra/examples/full.py @@ -5,7 +5,7 @@ # Recipe which runs the Skia infra tests. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'infra', diff --git a/infra/bots/recipe_modules/run/__init__.py b/infra/bots/recipe_modules/run/__init__.py index bd1942e87de3..ba095860b6bb 100644 --- a/infra/bots/recipe_modules/run/__init__.py +++ b/infra/bots/recipe_modules/run/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipe_modules/run/examples/full.py b/infra/bots/recipe_modules/run/examples/full.py index f53673e68acd..a76f7154151c 100644 --- a/infra/bots/recipe_modules/run/examples/full.py +++ b/infra/bots/recipe_modules/run/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipe_modules/vars/__init__.py b/infra/bots/recipe_modules/vars/__init__.py index 8b6323cfad73..f19553a605b8 100644 --- a/infra/bots/recipe_modules/vars/__init__.py +++ b/infra/bots/recipe_modules/vars/__init__.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'builder_name_schema', diff --git a/infra/bots/recipe_modules/vars/examples/full.py b/infra/bots/recipe_modules/vars/examples/full.py index 104bf0f871eb..a7ee6219f8eb 100644 --- a/infra/bots/recipe_modules/vars/examples/full.py +++ b/infra/bots/recipe_modules/vars/examples/full.py @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/path', diff --git a/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json b/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json index 1ad72e82dbc7..08c6035a6873 100644 --- a/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json +++ b/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/check_generated_files.py b/infra/bots/recipes/check_generated_files.py index 2b1d560c1aab..a4615d5b25fa 100644 --- a/infra/bots/recipes/check_generated_files.py +++ b/infra/bots/recipes/check_generated_files.py @@ -5,7 +5,7 @@ # Recipe for the Skia PerCommit Housekeeper. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'build', diff --git a/infra/bots/recipes/compile.expected/Build-Win-Clang-x86-Debug.json b/infra/bots/recipes/compile.expected/Build-Win-Clang-x86-Debug.json index ecb71c3a832e..65125d6ef573 100644 --- a/infra/bots/recipes/compile.expected/Build-Win-Clang-x86-Debug.json +++ b/infra/bots/recipes/compile.expected/Build-Win-Clang-x86-Debug.json @@ -100,7 +100,7 @@ "cmd": [ "vpython", "-u", - "\n# [VPYTHON:BEGIN]\n# wheel: <\n# name: \"infra/python/wheels/psutil/${vpython_platform}\"\n# version: \"version:5.4.7\"\n# >\n# [VPYTHON:END]\n\nimport psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n" + "\n# [VPYTHON:BEGIN]\n# wheel: <\n# name: \"infra/python/wheels/psutil/${vpython_platform}\"\n# version: \"version:5.8.0.chromium.2\"\n# >\n# [VPYTHON:END]\n\nimport psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n" ], "infra_step": true, "name": "cleanup", @@ -109,7 +109,7 @@ "@@@STEP_LOG_LINE@python.inline@# [VPYTHON:BEGIN]@@@", "@@@STEP_LOG_LINE@python.inline@# wheel: <@@@", "@@@STEP_LOG_LINE@python.inline@# name: \"infra/python/wheels/psutil/${vpython_platform}\"@@@", - "@@@STEP_LOG_LINE@python.inline@# version: \"version:5.4.7\"@@@", + "@@@STEP_LOG_LINE@python.inline@# version: \"version:5.8.0.chromium.2\"@@@", "@@@STEP_LOG_LINE@python.inline@# >@@@", "@@@STEP_LOG_LINE@python.inline@# [VPYTHON:END]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", diff --git a/infra/bots/recipes/compile.py b/infra/bots/recipes/compile.py index ef41553fffcd..b45e207d2295 100644 --- a/infra/bots/recipes/compile.py +++ b/infra/bots/recipes/compile.py @@ -5,7 +5,7 @@ # Recipe module for Skia Swarming compile. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'build', @@ -44,7 +44,7 @@ def RunSteps(api): # [VPYTHON:BEGIN] # wheel: < # name: "infra/python/wheels/psutil/${vpython_platform}" -# version: "version:5.4.7" +# version: "version:5.8.0.chromium.2" # > # [VPYTHON:END] diff --git a/infra/bots/recipes/compute_buildstats.expected/normal_bot.json b/infra/bots/recipes/compute_buildstats.expected/normal_bot.json index 77405ad16fad..f47ab16c8a98 100644 --- a/infra/bots/recipes/compute_buildstats.expected/normal_bot.json +++ b/infra/bots/recipes/compute_buildstats.expected/normal_bot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/compute_buildstats.expected/trybot.json b/infra/bots/recipes/compute_buildstats.expected/trybot.json index 2fefccc1e9c3..69c3aa9f6dc3 100644 --- a/infra/bots/recipes/compute_buildstats.expected/trybot.json +++ b/infra/bots/recipes/compute_buildstats.expected/trybot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/compute_buildstats.py b/infra/bots/recipes/compute_buildstats.py index 281da172555c..4fc519780252 100644 --- a/infra/bots/recipes/compute_buildstats.py +++ b/infra/bots/recipes/compute_buildstats.py @@ -7,7 +7,7 @@ import ast import json -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit-Trybot.json b/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit-Trybot.json index 5ab0f28f1d23..c75a88b2d70d 100644 --- a/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit-Trybot.json +++ b/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit-Trybot.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit.json b/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit.json index 07caa9f157a3..e2c005d6e65f 100644 --- a/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit.json +++ b/infra/bots/recipes/housekeeper.expected/Housekeeper-PerCommit.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/housekeeper.py b/infra/bots/recipes/housekeeper.py index 18387f5b489b..a012c0144ef1 100644 --- a/infra/bots/recipes/housekeeper.py +++ b/infra/bots/recipes/housekeeper.py @@ -8,7 +8,7 @@ import calendar -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/infra.py b/infra/bots/recipes/infra.py index a961a50704e7..673fb2c4f154 100644 --- a/infra/bots/recipes/infra.py +++ b/infra/bots/recipes/infra.py @@ -5,7 +5,7 @@ # Recipe which runs the Skia infra tests. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'infra', diff --git a/infra/bots/recipes/perf.expected/Perf-Android-Clang-Nexus7-CPU-Tegra3-arm-Debug-All-Android.json b/infra/bots/recipes/perf.expected/Perf-Android-Clang-Nexus7-CPU-Tegra3-arm-Debug-All-Android.json index dcf9f839860f..6f59e054934f 100644 --- a/infra/bots/recipes/perf.expected/Perf-Android-Clang-Nexus7-CPU-Tegra3-arm-Debug-All-Android.json +++ b/infra/bots/recipes/perf.expected/Perf-Android-Clang-Nexus7-CPU-Tegra3-arm-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "0", "userspace" @@ -70,16 +70,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -90,7 +93,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n", "/usr/bin/adb.1.0.35", "0.6", "0" @@ -111,7 +114,7 @@ "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@", "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -121,7 +124,7 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@", "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@", "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@", @@ -145,15 +148,15 @@ "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@", "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@", "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@", "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@", "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@", @@ -232,7 +235,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION" ], @@ -260,9 +263,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -276,7 +280,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/text_blob_traces" ], @@ -304,9 +308,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -477,7 +482,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -505,9 +510,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -521,7 +527,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -549,9 +555,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -686,7 +693,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -714,9 +721,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -730,7 +738,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/images" ], @@ -758,9 +766,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -895,7 +904,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -923,9 +932,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -939,7 +949,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -967,9 +977,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1118,7 +1129,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "nanobench.sh" ], @@ -1135,8 +1146,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1147,7 +1158,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1163,7 +1174,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1171,7 +1182,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/perf.py b/infra/bots/recipes/perf.py index f18112009f74..00f5d479b36f 100644 --- a/infra/bots/recipes/perf.py +++ b/infra/bots/recipes/perf.py @@ -10,7 +10,7 @@ import json import os -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipes/perf_pathkit.py b/infra/bots/recipes/perf_pathkit.py index 18ae61087d78..af81fc5e7dea 100644 --- a/infra/bots/recipes/perf_pathkit.py +++ b/infra/bots/recipes/perf_pathkit.py @@ -4,7 +4,7 @@ # Recipe which runs the PathKit tests using docker -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/perf_skottietrace.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json b/infra/bots/recipes/perf_skottietrace.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json index 657f84e54e04..8befefb2357a 100644 --- a/infra/bots/recipes/perf_skottietrace.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json +++ b/infra/bots/recipes/perf_skottietrace.expected/Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "hotplug" @@ -70,16 +70,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -194,7 +197,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" ], @@ -222,9 +225,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -238,7 +242,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/lotties" ], @@ -266,9 +270,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -351,7 +356,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out" ], @@ -379,9 +384,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -485,7 +491,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -502,8 +508,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -602,7 +608,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/2.json" ], @@ -630,9 +636,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -699,7 +706,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -716,8 +723,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -816,7 +823,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/3.json" ], @@ -844,9 +851,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -913,7 +921,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -930,8 +938,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1030,7 +1038,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/4.json" ], @@ -1058,9 +1066,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1173,7 +1182,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1189,7 +1198,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1197,7 +1206,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/perf_skottietrace.expected/skottietracing_parse_trace_error.json b/infra/bots/recipes/perf_skottietrace.expected/skottietracing_parse_trace_error.json index 017cfa1b7a20..dc8b6d595f0e 100644 --- a/infra/bots/recipes/perf_skottietrace.expected/skottietracing_parse_trace_error.json +++ b/infra/bots/recipes/perf_skottietrace.expected/skottietracing_parse_trace_error.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "hotplug" @@ -70,16 +70,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -194,7 +197,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" ], @@ -222,9 +225,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -238,7 +242,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/lotties" ], @@ -266,9 +270,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -351,7 +356,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out" ], @@ -379,9 +384,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -485,7 +491,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -502,8 +508,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -603,7 +609,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -619,7 +625,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -627,7 +633,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/perf_skottietrace.expected/skottietracing_trybot.json b/infra/bots/recipes/perf_skottietrace.expected/skottietracing_trybot.json index bbc6aadde1aa..0f375e514949 100644 --- a/infra/bots/recipes/perf_skottietrace.expected/skottietracing_trybot.json +++ b/infra/bots/recipes/perf_skottietrace.expected/skottietracing_trybot.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/opt/infra-android/tools/adb", "0", "hotplug" @@ -70,16 +70,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -194,7 +197,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" ], @@ -222,9 +225,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -238,7 +242,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/lotties" ], @@ -266,9 +270,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -351,7 +356,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out" ], @@ -379,9 +384,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -485,7 +491,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -502,8 +508,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -602,7 +608,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/2.json" ], @@ -630,9 +636,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -699,7 +706,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -716,8 +723,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -816,7 +823,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/3.json" ], @@ -844,9 +851,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -913,7 +921,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -930,8 +938,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/opt/infra-android/tools/adb', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1030,7 +1038,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/opt/infra-android/tools/adb", "/sdcard/revenge_of_the_skiabot/dm_out/4.json" ], @@ -1058,9 +1066,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1176,7 +1185,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1192,7 +1201,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1200,7 +1209,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/perf_skottietrace.py b/infra/bots/recipes/perf_skottietrace.py index 94ca1f75e541..f3ce89f5a1c8 100644 --- a/infra/bots/recipes/perf_skottietrace.py +++ b/infra/bots/recipes/perf_skottietrace.py @@ -12,7 +12,7 @@ import re import string -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'flavor', diff --git a/infra/bots/recipes/perf_skottiewasm_lottieweb.py b/infra/bots/recipes/perf_skottiewasm_lottieweb.py index 121ff5c3011a..275a862fa5a1 100644 --- a/infra/bots/recipes/perf_skottiewasm_lottieweb.py +++ b/infra/bots/recipes/perf_skottiewasm_lottieweb.py @@ -8,7 +8,7 @@ import json import re -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" # trim DEPS = [ diff --git a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench.json b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench.json index d172f752105f..334862b5537f 100644 --- a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench.json +++ b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench.json @@ -117,7 +117,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -145,9 +145,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -161,7 +162,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -189,9 +190,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -385,7 +387,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -401,7 +403,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -409,7 +411,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench.json b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench.json index 28ff912e4f95..6bceff7ee68d 100644 --- a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench.json +++ b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench.json @@ -117,7 +117,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -145,9 +145,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -161,7 +162,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -189,9 +190,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -385,7 +387,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -401,7 +403,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -409,7 +411,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json index 474c9dc3b358..e47bd18400bb 100644 --- a/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json +++ b/infra/bots/recipes/skpbench.expected/Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Skpbench_Mskp.json @@ -100,7 +100,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/MSKP_VERSION" ], @@ -128,9 +128,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -144,7 +145,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/mskp" ], @@ -172,9 +173,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -363,7 +365,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -379,7 +381,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -387,7 +389,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/skpbench.expected/trybot.json b/infra/bots/recipes/skpbench.expected/trybot.json index 0b5dab7f09d9..56f799821134 100644 --- a/infra/bots/recipes/skpbench.expected/trybot.json +++ b/infra/bots/recipes/skpbench.expected/trybot.json @@ -100,7 +100,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -128,9 +128,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -144,7 +145,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -172,9 +173,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -372,7 +374,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -388,7 +390,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -396,7 +398,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/skpbench.py b/infra/bots/recipes/skpbench.py index 8ba523fdbe75..c91d9549b439 100644 --- a/infra/bots/recipes/skpbench.py +++ b/infra/bots/recipes/skpbench.py @@ -8,7 +8,7 @@ import calendar -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'flavor', diff --git a/infra/bots/recipes/sync_and_compile.expected/Build-Debian10-Clang-arm-Release-Flutter_Android.json b/infra/bots/recipes/sync_and_compile.expected/Build-Debian10-Clang-arm-Release-Flutter_Android.json index 49e0d9a601c8..c62e922dc492 100644 --- a/infra/bots/recipes/sync_and_compile.expected/Build-Debian10-Clang-arm-Release-Flutter_Android.json +++ b/infra/bots/recipes/sync_and_compile.expected/Build-Debian10-Clang-arm-Release-Flutter_Android.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/sync_and_compile.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json b/infra/bots/recipes/sync_and_compile.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json index 2db9311cf83c..39154195a348 100644 --- a/infra/bots/recipes/sync_and_compile.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json +++ b/infra/bots/recipes/sync_and_compile.expected/Build-Mac-Clang-x86_64-Debug-CommandBuffer.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/sync_and_compile.expected/Build-Win10-Clang-x86_64-Release-NoDEPS.json b/infra/bots/recipes/sync_and_compile.expected/Build-Win10-Clang-x86_64-Release-NoDEPS.json index aded4262814a..4414ced0c913 100644 --- a/infra/bots/recipes/sync_and_compile.expected/Build-Win10-Clang-x86_64-Release-NoDEPS.json +++ b/infra/bots/recipes/sync_and_compile.expected/Build-Win10-Clang-x86_64-Release-NoDEPS.json @@ -3,7 +3,7 @@ "cmd": [ "python", "-u", - "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git'])\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" + "\nfrom __future__ import print_function\nimport subprocess\nimport sys\n\nwhich = 'where' if sys.platform == 'win32' else 'which'\ngit = subprocess.check_output([which, 'git']).decode('utf-8')\nprint('git was found at %s' % git)\nif 'cipd_bin_packages' not in git:\n print('Git must be obtained through CIPD.', file=sys.stderr)\n sys.exit(1)\n" ], "env": { "CHROME_HEADLESS": "1", @@ -17,7 +17,7 @@ "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@which = 'where' if sys.platform == 'win32' else 'which'@@@", - "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git'])@@@", + "@@@STEP_LOG_LINE@python.inline@git = subprocess.check_output([which, 'git']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('git was found at %s' % git)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cipd_bin_packages' not in git:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Git must be obtained through CIPD.', file=sys.stderr)@@@", diff --git a/infra/bots/recipes/sync_and_compile.py b/infra/bots/recipes/sync_and_compile.py index 543efff426f3..78d594abc80c 100644 --- a/infra/bots/recipes/sync_and_compile.py +++ b/infra/bots/recipes/sync_and_compile.py @@ -5,7 +5,7 @@ # Recipe module for Skia Swarming compile. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'build', diff --git a/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm-Debug-All-Android_ASAN.json b/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm-Debug-All-Android_ASAN.json index 0ac5e7cf61d0..0dd23c649443 100644 --- a/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm-Debug-All-Android_ASAN.json +++ b/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm-Debug-All-Android_ASAN.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nASAN_SETUP = sys.argv[2]\n\ndef wait_for_device():\n while True:\n time.sleep(5)\n print('Waiting for device')\n subprocess.check_output([ADB, 'wait-for-device'])\n bit1 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'dev.bootcomplete'])\n bit2 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'sys.boot_completed'])\n if '1' in bit1 and '1' in bit2:\n print('Device detected')\n break\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\noutput = subprocess.check_output([ADB, 'disable-verity'])\nprint(output)\n\nif 'already disabled' not in output:\n print('Rebooting device')\n subprocess.check_output([ADB, 'reboot'])\n wait_for_device()\n\ndef installASAN(revert=False):\n # ASAN setup script is idempotent, either it installs it or\n # says it's installed. Returns True on success, false otherwise.\n out = subprocess.check_output([ADB, 'wait-for-device'])\n print(out)\n cmd = [ASAN_SETUP]\n if revert:\n cmd = [ASAN_SETUP, '--revert']\n process = subprocess.Popen(cmd, env={'ADB': ADB},\n stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n\n # this also blocks until command finishes\n (stdout, stderr) = process.communicate()\n print(stdout)\n print('Stderr: %s' % stderr)\n return process.returncode == 0\n\nif not installASAN():\n print('Trying to revert the ASAN install and then re-install')\n # ASAN script sometimes has issues if it was interrupted or partially applied\n # Try reverting it, then re-enabling it\n if not installASAN(revert=True):\n raise Exception('reverting ASAN install failed')\n\n # Sleep because device does not reboot instantly\n time.sleep(10)\n\n if not installASAN():\n raise Exception('Tried twice to setup ASAN and failed.')\n\n# Sleep because device does not reboot instantly\ntime.sleep(10)\nwait_for_device()\n# Sleep again to hopefully avoid error \"secure_mkdirs failed: No such file or\n# directory\" when pushing resources to the device.\ntime.sleep(60)\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nASAN_SETUP = sys.argv[2]\n\ndef wait_for_device():\n while True:\n time.sleep(5)\n print('Waiting for device')\n subprocess.check_call([ADB, 'wait-for-device'])\n bit1 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'dev.bootcomplete']).decode('utf-8')\n bit2 = subprocess.check_output([ADB, 'shell', 'getprop',\n 'sys.boot_completed']).decode('utf-8')\n if '1' in bit1 and '1' in bit2:\n print('Device detected')\n break\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\noutput = subprocess.check_output([ADB, 'disable-verity']).decode('utf-8')\nprint(output)\n\nif 'already disabled' not in output:\n print('Rebooting device')\n subprocess.check_call([ADB, 'reboot'])\n wait_for_device()\n\ndef installASAN(revert=False):\n # ASAN setup script is idempotent, either it installs it or\n # says it's installed. Returns True on success, false otherwise.\n out = subprocess.check_output([ADB, 'wait-for-device']).decode('utf-8')\n print(out)\n cmd = [ASAN_SETUP]\n if revert:\n cmd = [ASAN_SETUP, '--revert']\n process = subprocess.Popen(cmd, env={'ADB': ADB},\n stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n\n # this also blocks until command finishes\n (stdout, stderr) = process.communicate()\n print(stdout.decode('utf-8'))\n print('Stderr: %s' % stderr.decode('utf-8'))\n return process.returncode == 0\n\nif not installASAN():\n print('Trying to revert the ASAN install and then re-install')\n # ASAN script sometimes has issues if it was interrupted or partially applied\n # Try reverting it, then re-enabling it\n if not installASAN(revert=True):\n raise Exception('reverting ASAN install failed')\n\n # Sleep because device does not reboot instantly\n time.sleep(10)\n\n if not installASAN():\n raise Exception('Tried twice to setup ASAN and failed.')\n\n# Sleep because device does not reboot instantly\ntime.sleep(10)\nwait_for_device()\n# Sleep again to hopefully avoid error \"secure_mkdirs failed: No such file or\n# directory\" when pushing resources to the device.\ntime.sleep(60)\n", "/usr/bin/adb.1.0.35", "[START_DIR]/android_ndk_linux/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.8/bin/asan_device_setup" ], @@ -72,33 +72,33 @@ "@@@STEP_LOG_LINE@python.inline@ while True:@@@", "@@@STEP_LOG_LINE@python.inline@ time.sleep(5)@@@", "@@@STEP_LOG_LINE@python.inline@ print('Waiting for device')@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'wait-for-device'])@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'wait-for-device'])@@@", "@@@STEP_LOG_LINE@python.inline@ bit1 = subprocess.check_output([ADB, 'shell', 'getprop',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'dev.bootcomplete'])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'dev.bootcomplete']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ bit2 = subprocess.check_output([ADB, 'shell', 'getprop',@@@", - "@@@STEP_LOG_LINE@python.inline@ 'sys.boot_completed'])@@@", + "@@@STEP_LOG_LINE@python.inline@ 'sys.boot_completed']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ if '1' in bit1 and '1' in bit2:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Device detected')@@@", "@@@STEP_LOG_LINE@python.inline@ break@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@output = subprocess.check_output([ADB, 'disable-verity'])@@@", + "@@@STEP_LOG_LINE@python.inline@output = subprocess.check_output([ADB, 'disable-verity']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@if 'already disabled' not in output:@@@", "@@@STEP_LOG_LINE@python.inline@ print('Rebooting device')@@@", - "@@@STEP_LOG_LINE@python.inline@ subprocess.check_output([ADB, 'reboot'])@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call([ADB, 'reboot'])@@@", "@@@STEP_LOG_LINE@python.inline@ wait_for_device()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@def installASAN(revert=False):@@@", "@@@STEP_LOG_LINE@python.inline@ # ASAN setup script is idempotent, either it installs it or@@@", "@@@STEP_LOG_LINE@python.inline@ # says it's installed. Returns True on success, false otherwise.@@@", - "@@@STEP_LOG_LINE@python.inline@ out = subprocess.check_output([ADB, 'wait-for-device'])@@@", + "@@@STEP_LOG_LINE@python.inline@ out = subprocess.check_output([ADB, 'wait-for-device']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ print(out)@@@", "@@@STEP_LOG_LINE@python.inline@ cmd = [ASAN_SETUP]@@@", "@@@STEP_LOG_LINE@python.inline@ if revert:@@@", @@ -108,8 +108,8 @@ "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@ # this also blocks until command finishes@@@", "@@@STEP_LOG_LINE@python.inline@ (stdout, stderr) = process.communicate()@@@", - "@@@STEP_LOG_LINE@python.inline@ print(stdout)@@@", - "@@@STEP_LOG_LINE@python.inline@ print('Stderr: %s' % stderr)@@@", + "@@@STEP_LOG_LINE@python.inline@ print(stdout.decode('utf-8'))@@@", + "@@@STEP_LOG_LINE@python.inline@ print('Stderr: %s' % stderr.decode('utf-8'))@@@", "@@@STEP_LOG_LINE@python.inline@ return process.returncode == 0@@@", "@@@STEP_LOG_LINE@python.inline@@@@", "@@@STEP_LOG_LINE@python.inline@if not installASAN():@@@", @@ -138,7 +138,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "0", "1" @@ -160,7 +160,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -169,15 +169,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -188,7 +188,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "1", "1" @@ -210,7 +210,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -219,15 +219,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -238,7 +238,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "2", "1" @@ -260,7 +260,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -269,15 +269,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -288,7 +288,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "3", "1" @@ -310,7 +310,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -319,15 +319,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -338,7 +338,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "4", "ondemand" @@ -360,16 +360,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -380,7 +383,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "0", "ondemand" @@ -402,16 +405,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -526,7 +532,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -554,9 +560,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -570,7 +577,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -598,9 +605,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -735,7 +743,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -763,9 +771,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -779,7 +788,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/images" ], @@ -807,9 +816,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -944,7 +954,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -972,9 +982,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -988,7 +999,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -1016,9 +1027,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1167,7 +1179,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -1184,8 +1196,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1222,7 +1234,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1238,7 +1250,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1246,7 +1258,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android.json b/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android.json index dee26d7d8dcd..54f7aaa690e9 100644 --- a/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android.json +++ b/infra/bots/recipes/test.expected/Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android.json @@ -48,7 +48,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "0", "1" @@ -70,7 +70,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -79,15 +79,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -98,7 +98,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "1", "1" @@ -120,7 +120,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -129,15 +129,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -148,7 +148,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "2", "1" @@ -170,7 +170,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -179,15 +179,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -198,7 +198,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif prior_status == str(value):\n print('CPU %d online already %d' % (cpu, value))\n sys.exit()\n\nsubprocess.check_call([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", "/usr/bin/adb.1.0.35", "3", "1" @@ -220,7 +220,7 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@value = int(sys.argv[3])@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", @@ -229,15 +229,15 @@ "@@@STEP_LOG_LINE@python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", "@@@STEP_LOG_LINE@python.inline@# So, check the value before trying to write it.@@@", "@@@STEP_LOG_LINE@python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if prior_status == str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ print('CPU %d online already %d' % (cpu, value))@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit()@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %s > '@@@", "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", "@@@STEP_LOG_LINE@python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_status != str(value):@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_status, value))@@@", @@ -248,7 +248,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "4", "ondemand" @@ -270,16 +270,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -290,7 +293,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", + "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", "/usr/bin/adb.1.0.35", "0", "ondemand" @@ -312,16 +315,19 @@ "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@", "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", "@@@STEP_LOG_LINE@python.inline@print(log)@@@", "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@", "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", - "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", - "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", + "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@", + "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@", + "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@", + "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@", + "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@", "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@", "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@", @@ -436,7 +442,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SKP_VERSION" ], @@ -464,9 +470,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -480,7 +487,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/skps" ], @@ -508,9 +515,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -645,7 +653,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" ], @@ -673,9 +681,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -689,7 +698,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/images" ], @@ -717,9 +726,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -854,7 +864,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/SVG_VERSION" ], @@ -882,9 +892,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -898,7 +909,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/svgs" ], @@ -926,9 +937,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1039,7 +1051,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", + "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n", "/usr/bin/adb.1.0.35", "/sdcard/revenge_of_the_skiabot/dm_out" ], @@ -1067,9 +1079,10 @@ "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@", "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@", + "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ output = e.output@@@", + "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@", "@@@STEP_LOG_LINE@python.inline@print('======')@@@", "@@@STEP_LOG_LINE@python.inline@print(output)@@@", @@ -1230,7 +1243,7 @@ "cmd": [ "python", "-u", - "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", + "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n", "/data/local/tmp/", "dm.sh" ], @@ -1247,8 +1260,8 @@ "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@", "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@", "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',@@@", - "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@", "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@", "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@", "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", @@ -1374,7 +1387,7 @@ "cmd": [ "python", "-u", - "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n", "[START_DIR]/build" ], "env": { @@ -1390,7 +1403,7 @@ "@@@STEP_LOG_LINE@python.inline@import subprocess@@@", "@@@STEP_LOG_LINE@python.inline@import sys@@@", "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@", + "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@", "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@", "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", @@ -1398,7 +1411,8 @@ "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@", "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@", "@@@STEP_LOG_LINE@python.inline@ try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", + "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@", + "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@", "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@", "@@@STEP_LOG_LINE@python.inline@ pass@@@", diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py index 08d45d1d55f2..753dfc68cba0 100644 --- a/infra/bots/recipes/test.py +++ b/infra/bots/recipes/test.py @@ -8,7 +8,7 @@ import json -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'env', diff --git a/infra/bots/recipes/test_canvaskit.py b/infra/bots/recipes/test_canvaskit.py index cdb4531678c0..06ae06bbeeb3 100644 --- a/infra/bots/recipes/test_canvaskit.py +++ b/infra/bots/recipes/test_canvaskit.py @@ -4,7 +4,7 @@ # Recipe which runs the Canvaskit tests using docker -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/test_lottie_web.py b/infra/bots/recipes/test_lottie_web.py index 113cae481799..4ed1e03c05a2 100644 --- a/infra/bots/recipes/test_lottie_web.py +++ b/infra/bots/recipes/test_lottie_web.py @@ -4,7 +4,7 @@ # Recipe which generates the Gold images for lottie-web using docker -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/test_pathkit.py b/infra/bots/recipes/test_pathkit.py index 371e19e342b6..a2850c7b1d39 100644 --- a/infra/bots/recipes/test_pathkit.py +++ b/infra/bots/recipes/test_pathkit.py @@ -4,7 +4,7 @@ # Recipe which runs the PathKit tests using docker -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'checkout', diff --git a/infra/bots/recipes/upload_buildstats_results.py b/infra/bots/recipes/upload_buildstats_results.py index d785ce2557a5..8c347feb01e1 100644 --- a/infra/bots/recipes/upload_buildstats_results.py +++ b/infra/bots/recipes/upload_buildstats_results.py @@ -5,7 +5,7 @@ # Recipe for uploading buildstats results to Perf. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/recipes/upload_dm_results.py b/infra/bots/recipes/upload_dm_results.py index 159f49419629..4947c0ccbb6b 100644 --- a/infra/bots/recipes/upload_dm_results.py +++ b/infra/bots/recipes/upload_dm_results.py @@ -8,7 +8,7 @@ import calendar -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/file', diff --git a/infra/bots/recipes/upload_nano_results.py b/infra/bots/recipes/upload_nano_results.py index ac85b12d25a5..c5bd0da564af 100644 --- a/infra/bots/recipes/upload_nano_results.py +++ b/infra/bots/recipes/upload_nano_results.py @@ -5,7 +5,7 @@ # Recipe for uploading nanobench results. -PYTHON_VERSION_COMPATIBILITY = "PY2+3" +PYTHON_VERSION_COMPATIBILITY = "PY3" DEPS = [ 'recipe_engine/context', diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 97948e337347..c60dbe0beb88 100755 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -3148,6 +3148,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3157,8 +3161,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3240,6 +3244,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3249,8 +3257,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3342,6 +3350,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3351,8 +3363,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3434,6 +3446,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3443,8 +3459,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3526,6 +3542,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3535,8 +3555,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3618,6 +3638,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3627,8 +3651,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3720,6 +3744,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3729,8 +3757,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3812,6 +3840,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3821,8 +3853,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3904,6 +3936,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -3913,8 +3949,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -3996,6 +4032,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4005,8 +4045,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4088,6 +4128,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4097,8 +4141,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4180,6 +4224,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4189,8 +4237,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4272,6 +4320,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4281,8 +4333,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4364,6 +4416,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4373,8 +4429,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4456,6 +4512,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4465,8 +4525,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4548,6 +4608,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4557,8 +4621,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4640,6 +4704,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4649,8 +4717,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4741,6 +4809,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4750,8 +4822,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4833,6 +4905,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4842,8 +4918,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -4925,6 +5001,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -4934,8 +5014,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5017,6 +5097,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5026,8 +5110,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5109,6 +5193,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5118,8 +5206,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5210,6 +5298,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5219,8 +5311,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5311,6 +5403,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5320,8 +5416,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5412,6 +5508,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5421,8 +5521,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5509,6 +5609,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5518,8 +5622,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5610,6 +5714,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5619,8 +5727,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5711,6 +5819,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5720,8 +5832,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5812,6 +5924,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5821,8 +5937,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -5913,6 +6029,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -5922,8 +6042,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6019,6 +6139,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6028,8 +6152,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6125,6 +6249,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6134,8 +6262,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6226,6 +6354,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6235,8 +6367,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6327,6 +6459,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6336,8 +6472,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6428,6 +6564,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6437,8 +6577,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6529,6 +6669,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6538,8 +6682,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6630,6 +6774,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6639,8 +6787,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6731,6 +6879,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6740,8 +6892,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6864,6 +7016,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6873,8 +7029,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -6960,6 +7116,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -6969,8 +7129,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7061,6 +7221,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7070,8 +7234,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7162,6 +7326,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7171,8 +7339,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7286,6 +7454,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7295,8 +7467,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7386,6 +7558,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7395,8 +7571,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7487,6 +7663,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7496,8 +7676,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7588,6 +7768,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7597,8 +7781,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7689,6 +7873,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7698,8 +7886,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7790,6 +7978,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7799,8 +7991,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7896,6 +8088,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -7905,8 +8101,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -7997,6 +8193,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8006,8 +8206,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8098,6 +8298,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8107,8 +8311,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8199,6 +8403,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8208,8 +8416,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8300,6 +8508,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8309,8 +8521,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8401,6 +8613,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8410,8 +8626,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8502,6 +8718,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8511,8 +8731,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8603,6 +8823,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8612,8 +8836,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8704,6 +8928,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8713,8 +8941,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8805,6 +9033,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8814,8 +9046,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -8906,6 +9138,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -8915,8 +9151,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9007,6 +9243,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9016,8 +9256,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9108,6 +9348,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9117,8 +9361,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9258,6 +9502,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9267,8 +9515,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9359,6 +9607,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9368,8 +9620,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9460,6 +9712,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9469,8 +9725,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9561,6 +9817,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9570,8 +9830,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9662,6 +9922,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9671,8 +9935,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9763,6 +10027,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9772,8 +10040,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9864,6 +10132,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9873,8 +10145,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -9988,6 +10260,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -9997,8 +10273,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10091,6 +10367,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10100,8 +10380,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10195,6 +10475,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10204,8 +10488,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10286,6 +10570,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10295,8 +10583,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10390,6 +10678,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10399,8 +10691,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10494,6 +10786,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10503,8 +10799,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10598,6 +10894,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10607,8 +10907,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10707,6 +11007,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10716,8 +11020,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10816,6 +11120,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10825,8 +11133,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -10925,6 +11233,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -10934,8 +11246,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11029,6 +11341,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11038,8 +11354,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11133,6 +11449,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11142,8 +11462,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11237,6 +11557,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11246,8 +11570,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11346,6 +11670,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11355,8 +11683,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11455,6 +11783,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11464,8 +11796,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11564,6 +11896,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11573,8 +11909,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11673,6 +12009,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11682,8 +12022,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11777,6 +12117,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11786,8 +12130,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11881,6 +12225,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11890,8 +12238,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -11985,6 +12333,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -11994,8 +12346,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12116,6 +12468,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12125,8 +12481,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12219,6 +12575,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12228,8 +12588,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12323,6 +12683,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12332,8 +12696,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12454,6 +12818,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12463,8 +12831,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12557,6 +12925,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12566,8 +12938,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12661,6 +13033,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12670,8 +13046,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12765,6 +13141,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12774,8 +13154,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12874,6 +13254,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12883,8 +13267,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -12983,6 +13367,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -12992,8 +13380,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13092,6 +13480,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13101,8 +13493,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13201,6 +13593,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13210,8 +13606,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13294,6 +13690,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13303,8 +13703,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13387,6 +13787,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13396,8 +13800,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13480,6 +13884,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13489,8 +13897,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13573,6 +13981,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13582,8 +13994,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13665,6 +14077,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13674,8 +14090,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13758,6 +14174,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13767,8 +14187,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13851,6 +14271,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13860,8 +14284,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -13944,6 +14368,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -13953,8 +14381,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14037,6 +14465,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14046,8 +14478,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14130,6 +14562,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14139,8 +14575,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14223,6 +14659,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14232,8 +14672,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14316,6 +14756,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14325,8 +14769,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14409,6 +14853,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14418,8 +14866,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14502,6 +14950,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14511,8 +14963,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14595,6 +15047,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14604,8 +15060,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14688,6 +15144,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14697,8 +15157,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14781,6 +15241,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14790,8 +15254,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14874,6 +15338,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14883,8 +15351,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -14967,6 +15435,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -14976,8 +15448,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15060,6 +15532,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15069,8 +15545,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15153,6 +15629,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15162,8 +15642,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15241,6 +15721,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15250,8 +15734,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15329,6 +15813,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15338,8 +15826,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15417,6 +15905,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15426,8 +15918,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15505,6 +15997,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15514,8 +16010,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15593,6 +16089,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15602,8 +16102,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15681,6 +16181,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15690,8 +16194,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15769,6 +16273,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15778,8 +16286,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15857,6 +16365,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15866,8 +16378,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -15945,6 +16457,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -15954,8 +16470,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16033,6 +16549,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16042,8 +16562,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16121,6 +16641,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16130,8 +16654,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16209,6 +16733,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16218,8 +16746,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16297,6 +16825,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16306,8 +16838,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16385,6 +16917,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16394,8 +16930,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16506,6 +17042,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16515,8 +17055,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16625,6 +17165,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16634,8 +17178,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16744,6 +17288,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16753,8 +17301,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16863,6 +17411,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16872,8 +17424,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -16982,6 +17534,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -16991,8 +17547,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -17101,6 +17657,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -17110,8 +17670,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -17220,6 +17780,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -17229,8 +17793,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -17339,6 +17903,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -17348,8 +17916,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -17458,6 +18026,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -17467,8 +18039,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -18328,6 +18900,9 @@ "pool:SkiaCT", "os:Debian-10.3" ], + "environment": { + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "GOROOT": [ "go/go" @@ -18341,9 +18916,6 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" - ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" ] @@ -18482,7 +19054,7 @@ { "name": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", "path": "recipe_bundle", - "version": "git_revision:a8bcedad6768e206c4d2bd1718caa849f29cd42d" + "version": "git_revision:1a28cb094add070f4beefd052725223930d8c27a" }, { "name": "infra/tools/git/${platform}", @@ -18531,6 +19103,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -18540,8 +19116,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -18641,6 +19217,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -18650,8 +19230,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -18870,6 +19450,12 @@ "idempotent": true }, "Housekeeper-PerCommit-BundleRecipes": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], "casSpec": "recipes", "cipd_packages": [ { @@ -18920,10 +19506,20 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", "cipd_bin_packages", "cipd_bin_packages/bin" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" ] }, "idempotent": true @@ -19041,6 +19637,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "GOROOT": [ "go/go" @@ -19054,8 +19654,8 @@ "cipd_bin_packages/bin", "go/go/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -19337,6 +19937,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "GOROOT": [ "go/go" @@ -19350,8 +19954,8 @@ "cipd_bin_packages/bin", "go/go/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -19694,6 +20298,9 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -19701,9 +20308,6 @@ "cipd_bin_packages/cpython3", "cipd_bin_packages/cpython3/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" - ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" ] @@ -19813,6 +20417,9 @@ "pool:SkiaCT", "os:Debian-10.3" ], + "environment": { + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "GOROOT": [ "go/go" @@ -19826,9 +20433,6 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" - ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" ] @@ -19900,6 +20504,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -19909,8 +20517,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -19994,6 +20602,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20003,8 +20615,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20083,6 +20695,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20092,8 +20708,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20171,6 +20787,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20180,8 +20800,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20259,6 +20879,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20268,8 +20892,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20347,6 +20971,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20356,8 +20984,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20436,6 +21064,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20445,8 +21077,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20524,6 +21156,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20533,8 +21169,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20612,6 +21248,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20621,8 +21261,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20701,6 +21341,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20710,8 +21354,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20790,6 +21434,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20799,8 +21447,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20879,6 +21527,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20888,8 +21540,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -20968,6 +21620,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -20977,8 +21633,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21062,6 +21718,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21071,8 +21731,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21151,6 +21811,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21160,8 +21824,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21240,6 +21904,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21249,8 +21917,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21329,6 +21997,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21338,8 +22010,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21418,6 +22090,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21427,8 +22103,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21506,6 +22182,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21515,8 +22195,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21594,6 +22274,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21603,8 +22287,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21682,6 +22366,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21691,8 +22379,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21771,6 +22459,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21780,8 +22472,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21860,6 +22552,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21869,8 +22565,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -21949,6 +22645,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -21958,8 +22658,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22038,6 +22738,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22047,8 +22751,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22127,6 +22831,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22136,8 +22844,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22216,6 +22924,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22225,8 +22937,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22310,6 +23022,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22319,8 +23035,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22399,6 +23115,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22408,8 +23128,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22488,6 +23208,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22497,8 +23221,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22577,6 +23301,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22586,8 +23314,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22665,6 +23393,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22674,8 +23406,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22753,6 +23485,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22762,8 +23498,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22842,6 +23578,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22851,8 +23591,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -22930,6 +23670,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -22939,8 +23683,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23018,6 +23762,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23027,8 +23775,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23107,6 +23855,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23116,8 +23868,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23196,6 +23948,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23205,8 +23961,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23285,6 +24041,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23294,8 +24054,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23374,6 +24134,10 @@ "pool:Skia", "release_version:14092.77.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23383,8 +24147,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23463,6 +24227,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23472,8 +24240,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23552,6 +24320,10 @@ "pool:Skia", "release_version:14150.39.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23561,8 +24333,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23641,6 +24413,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23650,8 +24426,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23747,6 +24523,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23756,8 +24536,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23853,6 +24633,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23862,8 +24646,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -23954,6 +24738,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -23963,8 +24751,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24055,6 +24843,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24064,8 +24856,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24156,6 +24948,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24165,8 +24961,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24257,6 +25053,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24266,8 +25066,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24363,6 +25163,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24372,8 +25176,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24464,6 +25268,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24473,8 +25281,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24564,6 +25372,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24573,8 +25385,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24665,6 +25477,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24674,8 +25490,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24770,6 +25586,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24779,8 +25599,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24880,6 +25700,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -24889,8 +25713,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -24995,6 +25819,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25004,8 +25832,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25100,6 +25928,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25109,8 +25941,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25210,6 +26042,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25219,8 +26055,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25320,6 +26156,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25329,8 +26169,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25425,6 +26265,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25434,8 +26278,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25530,6 +26374,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25539,8 +26387,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25617,6 +26465,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25626,8 +26478,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -25704,6 +26556,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -25713,8 +26569,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26028,6 +26884,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26037,8 +26897,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26128,6 +26988,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26137,8 +27001,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26228,6 +27092,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26237,8 +27105,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26328,6 +27196,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26337,8 +27209,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26428,6 +27300,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26437,8 +27313,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26528,6 +27404,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26537,8 +27417,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26629,6 +27509,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26638,8 +27522,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26730,6 +27614,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26739,8 +27627,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26830,6 +27718,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26839,8 +27731,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -26930,6 +27822,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -26939,8 +27835,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27030,6 +27926,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27039,8 +27939,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27130,6 +28030,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27139,8 +28043,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27230,6 +28134,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27239,8 +28147,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27325,6 +28233,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27334,8 +28246,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27420,6 +28332,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27429,8 +28345,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27515,6 +28431,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27524,8 +28444,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27620,6 +28540,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27629,8 +28553,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27720,6 +28644,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27729,8 +28657,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27825,6 +28753,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27834,8 +28766,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -27925,6 +28857,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -27934,8 +28870,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28031,6 +28967,10 @@ "pool:Skia", "valgrind:1" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28040,8 +28980,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28136,6 +29076,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28145,8 +29089,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28668,6 +29612,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28677,8 +29625,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28777,6 +29725,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28786,8 +29738,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28877,6 +29829,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28886,8 +29842,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -28977,6 +29933,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -28986,8 +29946,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29072,6 +30032,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29081,8 +30045,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29172,6 +30136,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29181,8 +30149,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29267,6 +30235,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29276,8 +30248,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29367,6 +30339,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29376,8 +30352,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29467,6 +30443,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29476,8 +30456,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29562,6 +30542,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29571,8 +30555,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29662,6 +30646,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29671,8 +30659,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29757,6 +30745,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29766,8 +30758,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29852,6 +30844,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29861,8 +30857,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -29947,6 +30943,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -29956,8 +30956,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30047,6 +31047,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30056,8 +31060,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30147,6 +31151,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30156,8 +31164,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30247,6 +31255,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30256,8 +31268,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30347,6 +31359,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30356,8 +31372,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30447,6 +31463,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30456,8 +31476,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30547,6 +31567,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30556,8 +31580,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30647,6 +31671,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30656,8 +31684,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30747,6 +31775,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30756,8 +31788,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30847,6 +31879,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30856,8 +31892,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -30947,6 +31983,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -30956,8 +31996,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31047,6 +32087,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31056,8 +32100,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31147,6 +32191,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31156,8 +32204,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31247,6 +32295,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31256,8 +32308,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31347,6 +32399,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31356,8 +32412,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31447,6 +32503,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31456,8 +32516,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31547,6 +32607,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31556,8 +32620,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31647,6 +32711,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31656,8 +32724,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31747,6 +32815,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31756,8 +32828,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31847,6 +32919,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31856,8 +32932,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -31947,6 +33023,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -31956,8 +33036,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32047,6 +33127,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32056,8 +33140,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32148,6 +33232,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32157,8 +33245,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32249,6 +33337,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32258,8 +33350,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32350,6 +33442,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32359,8 +33455,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32443,6 +33539,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32452,8 +33552,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32536,6 +33636,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32545,8 +33649,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32629,6 +33733,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32638,8 +33746,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32722,6 +33830,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32731,8 +33843,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32815,6 +33927,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32824,8 +33940,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -32908,6 +34024,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -32917,8 +34037,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33001,6 +34121,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33010,8 +34134,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33094,6 +34218,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33103,8 +34231,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33187,6 +34315,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33196,8 +34328,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33280,6 +34412,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33289,8 +34425,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33374,6 +34510,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33383,8 +34523,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33469,6 +34609,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33478,8 +34622,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33564,6 +34708,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33573,8 +34721,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33659,6 +34807,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33668,8 +34820,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33754,6 +34906,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33763,8 +34919,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33849,6 +35005,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33858,8 +35018,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -33944,6 +35104,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -33953,8 +35117,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34039,6 +35203,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34048,8 +35216,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34134,6 +35302,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34143,8 +35315,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34229,6 +35401,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34238,8 +35414,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34324,6 +35500,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34333,8 +35513,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34419,6 +35599,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34428,8 +35612,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34514,6 +35698,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34523,8 +35711,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34609,6 +35797,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34618,8 +35810,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34704,6 +35896,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34713,8 +35909,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34799,6 +35995,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34808,8 +36008,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34894,6 +36094,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34903,8 +36107,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -34989,6 +36193,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -34998,8 +36206,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35084,6 +36292,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35093,8 +36305,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35179,6 +36391,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35188,8 +36404,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35274,6 +36490,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35283,8 +36503,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35369,6 +36589,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35378,8 +36602,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35464,6 +36688,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35473,8 +36701,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35559,6 +36787,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35568,8 +36800,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35654,6 +36886,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35663,8 +36899,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35749,6 +36985,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35758,8 +36998,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35844,6 +37084,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35853,8 +37097,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -35939,6 +37183,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -35948,8 +37196,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36034,6 +37282,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36043,8 +37295,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36129,6 +37381,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36138,8 +37394,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36224,6 +37480,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36233,8 +37493,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36319,6 +37579,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36328,8 +37592,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36414,6 +37678,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36423,8 +37691,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36509,6 +37777,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36518,8 +37790,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36604,6 +37876,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36613,8 +37889,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36699,6 +37975,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36708,8 +37988,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36794,6 +38074,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36803,8 +38087,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36889,6 +38173,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36898,8 +38186,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -36984,6 +38272,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -36993,8 +38285,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37079,6 +38371,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37088,8 +38384,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37174,6 +38470,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37183,8 +38483,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37269,6 +38569,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37278,8 +38582,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37364,6 +38668,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37373,8 +38681,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37459,6 +38767,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37468,8 +38780,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37554,6 +38866,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37563,8 +38879,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37649,6 +38965,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37658,8 +38978,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37744,6 +39064,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37753,8 +39077,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37839,6 +39163,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37848,8 +39176,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -37934,6 +39262,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -37943,8 +39275,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38029,6 +39361,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38038,8 +39374,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38124,6 +39460,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38133,8 +39473,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38215,6 +39555,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38224,8 +39568,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38305,6 +39649,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38314,8 +39662,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38399,6 +39747,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38408,8 +39760,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38494,6 +39846,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38503,8 +39859,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38589,6 +39945,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38598,8 +39958,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38684,6 +40044,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38693,8 +40057,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38779,6 +40143,10 @@ "os:Android", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38788,8 +40156,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38874,6 +40242,10 @@ "pool:Skia", "release_version:14092.77.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38883,8 +40255,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -38969,6 +40341,10 @@ "pool:Skia", "release_version:14092.77.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -38978,8 +40354,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39064,6 +40440,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39073,8 +40453,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39159,6 +40539,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39168,8 +40552,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39254,6 +40638,10 @@ "pool:Skia", "release_version:14150.39.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39263,8 +40651,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39349,6 +40737,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39358,8 +40750,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39444,6 +40836,10 @@ "pool:Skia", "release_version:14233.0.0" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39453,8 +40849,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39551,6 +40947,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39560,8 +40960,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39658,6 +41058,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39667,8 +41071,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39765,6 +41169,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39774,8 +41182,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39872,6 +41280,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39881,8 +41293,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -39979,6 +41391,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -39988,8 +41404,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40086,6 +41502,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40095,8 +41515,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40193,6 +41613,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40202,8 +41626,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40300,6 +41724,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40309,8 +41737,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40407,6 +41835,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40416,8 +41848,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40514,6 +41946,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40523,8 +41959,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40621,6 +42057,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40630,8 +42070,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40728,6 +42168,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40737,8 +42181,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40835,6 +42279,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40844,8 +42292,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -40942,6 +42390,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -40951,8 +42403,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41049,6 +42501,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41058,8 +42514,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41156,6 +42612,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41165,8 +42625,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41262,6 +42722,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41271,8 +42735,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41368,6 +42832,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41377,8 +42845,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41474,6 +42942,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41483,8 +42955,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41580,6 +43052,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41589,8 +43065,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41687,6 +43163,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41696,8 +43176,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41794,6 +43274,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41803,8 +43287,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -41900,6 +43384,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -41909,8 +43397,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42011,6 +43499,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42020,8 +43512,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42127,6 +43619,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42136,8 +43632,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42238,6 +43734,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42247,8 +43747,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42354,6 +43854,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42363,8 +43867,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42465,6 +43969,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42474,8 +43982,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42581,6 +44089,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42590,8 +44102,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42691,6 +44203,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42700,8 +44216,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42807,6 +44323,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42816,8 +44336,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -42918,6 +44438,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -42927,8 +44451,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43033,6 +44557,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43042,8 +44570,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43143,6 +44671,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43152,8 +44684,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43258,6 +44790,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43267,8 +44803,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43368,6 +44904,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43377,8 +44917,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43479,6 +45019,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43488,8 +45032,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43594,6 +45138,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43603,8 +45151,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43704,6 +45252,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43713,8 +45265,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43819,6 +45371,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43828,8 +45384,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -43929,6 +45485,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -43938,8 +45498,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44044,6 +45604,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44053,8 +45617,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44155,6 +45719,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44164,8 +45732,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44266,6 +45834,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44275,8 +45847,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44377,6 +45949,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44386,8 +45962,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44488,6 +46064,10 @@ "os:Debian-10.10", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44497,8 +46077,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44581,6 +46161,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44590,8 +46174,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44674,6 +46258,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44683,8 +46271,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44767,6 +46355,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44776,8 +46368,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44860,6 +46452,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44869,8 +46465,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -44968,6 +46564,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -44977,8 +46577,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45076,6 +46676,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45085,8 +46689,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45184,6 +46788,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45193,8 +46801,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45292,6 +46900,10 @@ "pool:Skia", "docker_installed:true" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45301,8 +46913,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45398,6 +47010,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45407,8 +47023,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45504,6 +47120,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45513,8 +47133,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45610,6 +47230,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45619,8 +47243,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45716,6 +47340,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45725,8 +47353,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45822,6 +47450,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45831,8 +47463,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -45928,6 +47560,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -45937,8 +47573,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46034,6 +47670,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46043,8 +47683,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46135,6 +47775,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46144,8 +47788,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46240,6 +47884,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46249,8 +47897,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46346,6 +47994,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46355,8 +48007,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46447,6 +48099,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46456,8 +48112,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46553,6 +48209,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46562,8 +48222,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46660,6 +48320,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46669,8 +48333,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46767,6 +48431,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46776,8 +48444,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46873,6 +48541,10 @@ "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46882,8 +48554,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -46979,6 +48651,10 @@ "os:Mac-10.14.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -46988,8 +48664,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47085,6 +48761,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47094,8 +48774,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47186,6 +48866,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47195,8 +48879,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47291,6 +48975,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47300,8 +48988,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47397,6 +49085,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47406,8 +49098,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47503,6 +49195,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47512,8 +49208,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47609,6 +49305,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47618,8 +49318,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47715,6 +49415,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47724,8 +49428,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47821,6 +49525,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47830,8 +49538,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -47927,6 +49635,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -47936,8 +49648,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48033,6 +49745,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48042,8 +49758,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48139,6 +49855,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48148,8 +49868,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48245,6 +49965,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48254,8 +49978,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48351,6 +50075,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48360,8 +50088,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48452,6 +50180,10 @@ "os:Mac-10.15.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48461,8 +50193,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48557,6 +50289,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48566,8 +50302,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48663,6 +50399,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48672,8 +50412,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48769,6 +50509,10 @@ "os:Mac-10.15.7", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48778,8 +50522,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48875,6 +50619,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48884,8 +50632,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -48981,6 +50729,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -48990,8 +50742,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49087,6 +50839,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49096,8 +50852,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49188,6 +50944,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49197,8 +50957,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49293,6 +51053,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49302,8 +51066,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49394,6 +51158,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49403,8 +51171,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49499,6 +51267,10 @@ "os:Mac-11.4", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49508,8 +51280,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49605,6 +51377,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49614,8 +51390,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49710,6 +51486,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49719,8 +51499,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49821,6 +51601,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49830,8 +51614,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -49927,6 +51711,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -49936,8 +51724,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50037,6 +51825,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50046,8 +51838,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50143,6 +51935,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50152,8 +51948,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50253,6 +52049,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50262,8 +52062,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50354,6 +52154,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50363,8 +52167,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50464,6 +52268,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50473,8 +52281,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50570,6 +52378,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50579,8 +52391,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50676,6 +52488,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50685,8 +52501,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50786,6 +52602,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50795,8 +52615,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -50891,6 +52711,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -50900,8 +52724,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51001,6 +52825,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51010,8 +52838,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51101,6 +52929,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51110,8 +52942,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51211,6 +53043,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51220,8 +53056,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51317,6 +53153,10 @@ "pool:Skia", "valgrind:1" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51326,8 +53166,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51423,6 +53263,10 @@ "pool:Skia", "valgrind:1" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51432,8 +53276,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51529,6 +53373,10 @@ "pool:Skia", "valgrind:1" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51538,8 +53386,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51639,6 +53487,10 @@ "os:Ubuntu-18.04", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51648,8 +53500,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51829,6 +53681,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51838,8 +53694,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -51929,6 +53785,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -51938,8 +53798,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52029,6 +53889,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52038,8 +53902,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52129,6 +53993,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52138,8 +54006,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52229,6 +54097,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52238,8 +54110,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52329,6 +54201,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52338,8 +54214,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52429,6 +54305,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52438,8 +54318,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52529,6 +54409,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52538,8 +54422,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52629,6 +54513,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52638,8 +54526,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52729,6 +54617,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52738,8 +54630,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52829,6 +54721,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52838,8 +54734,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -52929,6 +54825,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -52938,8 +54838,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53029,6 +54929,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53038,8 +54942,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53134,6 +55038,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53143,8 +55051,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53234,6 +55142,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53243,8 +55155,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53334,6 +55246,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53343,8 +55259,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53434,6 +55350,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53443,8 +55363,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53534,6 +55454,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53543,8 +55467,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53634,6 +55558,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53643,8 +55571,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53739,6 +55667,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53748,8 +55680,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53839,6 +55771,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53848,8 +55784,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -53939,6 +55875,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -53948,8 +55888,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54039,6 +55979,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54048,8 +55992,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54139,6 +56083,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54148,8 +56096,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54239,6 +56187,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54248,8 +56200,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54339,6 +56291,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54348,8 +56304,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54439,6 +56395,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54448,8 +56408,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54539,6 +56499,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54548,8 +56512,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54639,6 +56603,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54648,8 +56616,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54739,6 +56707,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54748,8 +56720,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54839,6 +56811,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54848,8 +56824,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -54939,6 +56915,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -54948,8 +56928,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55039,6 +57019,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55048,8 +57032,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55139,6 +57123,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55148,8 +57136,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55239,6 +57227,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55248,8 +57240,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55339,6 +57331,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55348,8 +57344,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55439,6 +57435,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55448,8 +57448,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55539,6 +57539,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55548,8 +57552,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55639,6 +57643,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55648,8 +57656,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55739,6 +57747,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55748,8 +57760,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55839,6 +57851,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55848,8 +57864,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -55939,6 +57955,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -55948,8 +57968,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56039,6 +58059,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56048,8 +58072,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56139,6 +58163,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56148,8 +58176,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56239,6 +58267,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56248,8 +58280,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56339,6 +58371,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56348,8 +58384,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56439,6 +58475,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56448,8 +58488,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56539,6 +58579,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56548,8 +58592,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56639,6 +58683,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56648,8 +58696,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56739,6 +58787,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56748,8 +58800,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56839,6 +58891,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56848,8 +58904,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -56939,6 +58995,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -56948,8 +59008,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57039,6 +59099,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57048,8 +59112,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57139,6 +59203,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57148,8 +59216,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57239,6 +59307,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57248,8 +59320,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57339,6 +59411,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57348,8 +59424,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57439,6 +59515,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57448,8 +59528,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57539,6 +59619,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57548,8 +59632,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57639,6 +59723,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57648,8 +59736,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57739,6 +59827,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57748,8 +59840,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57839,6 +59931,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57848,8 +59944,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -57939,6 +60035,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -57948,8 +60048,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58039,6 +60139,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58048,8 +60152,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58139,6 +60243,10 @@ "os:Windows-10-19041", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58148,8 +60256,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58239,6 +60347,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58248,8 +60360,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58339,6 +60451,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58348,8 +60464,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58439,6 +60555,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58448,8 +60568,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58539,6 +60659,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58548,8 +60672,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58639,6 +60763,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58648,8 +60776,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58739,6 +60867,10 @@ "os:Windows-10-19043", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58748,8 +60880,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58840,6 +60972,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58849,8 +60985,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -58941,6 +61077,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -58950,8 +61090,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59042,6 +61182,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59051,8 +61195,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59143,6 +61287,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59152,8 +61300,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59244,6 +61392,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59253,8 +61405,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59345,6 +61497,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59354,8 +61510,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59446,6 +61602,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59455,8 +61615,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59547,6 +61707,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59556,8 +61720,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59648,6 +61812,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59657,8 +61825,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59749,6 +61917,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59758,8 +61930,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59850,6 +62022,10 @@ "os:Windows-Server-17763", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59859,8 +62035,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -59950,6 +62126,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -59959,8 +62139,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60050,6 +62230,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60059,8 +62243,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60150,6 +62334,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60159,8 +62347,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60250,6 +62438,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60259,8 +62451,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60350,6 +62542,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60359,8 +62555,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60450,6 +62646,10 @@ "os:Windows-7-SP1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60459,8 +62659,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60550,6 +62750,10 @@ "os:Windows-8.1-SP0", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60559,8 +62763,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60650,6 +62854,10 @@ "os:Windows-8.1-SP0", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60659,8 +62867,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60750,6 +62958,10 @@ "os:Windows-8.1-SP0", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60759,8 +62971,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60850,6 +63062,10 @@ "os:Windows-8.1-SP0", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60859,8 +63075,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -60948,6 +63164,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -60957,8 +63177,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61047,6 +63267,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61056,8 +63280,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61146,6 +63370,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61155,8 +63383,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61245,6 +63473,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61254,8 +63486,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61344,6 +63576,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61353,8 +63589,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61443,6 +63679,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61452,8 +63692,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61542,6 +63782,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61551,8 +63795,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61641,6 +63885,10 @@ "os:iOS-12.4.5", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61650,8 +63898,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61740,6 +63988,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61749,8 +64001,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61839,6 +64091,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61848,8 +64104,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -61938,6 +64194,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -61947,8 +64207,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62037,6 +64297,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62046,8 +64310,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62136,6 +64400,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62145,8 +64413,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62235,6 +64503,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62244,8 +64516,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62334,6 +64606,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62343,8 +64619,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62433,6 +64709,10 @@ "os:iOS-13.3.1", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62442,8 +64722,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62532,6 +64812,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62541,8 +64825,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62631,6 +64915,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62640,8 +64928,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62730,6 +65018,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62739,8 +65031,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62829,6 +65121,10 @@ "os:iOS-13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62838,8 +65134,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -62922,6 +65218,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -62931,8 +65231,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63011,6 +65311,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63020,8 +65324,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63100,6 +65404,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63109,8 +65417,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63189,6 +65497,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63198,8 +65510,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63278,6 +65590,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63287,8 +65603,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63367,6 +65683,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63376,8 +65696,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63456,6 +65776,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63465,8 +65789,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63545,6 +65869,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63554,8 +65882,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63634,6 +65962,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63643,8 +65975,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63723,6 +66055,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63732,8 +66068,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63812,6 +66148,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63821,8 +66161,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63901,6 +66241,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63910,8 +66254,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -63990,6 +66334,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -63999,8 +66347,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64079,6 +66427,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64088,8 +66440,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64168,6 +66520,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64177,8 +66533,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64257,6 +66613,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64266,8 +66626,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64346,6 +66706,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64355,8 +66719,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64435,6 +66799,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64444,8 +66812,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64524,6 +66892,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64533,8 +66905,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64613,6 +66985,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64622,8 +66998,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64702,6 +67078,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64711,8 +67091,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64791,6 +67171,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64800,8 +67184,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64880,6 +67264,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64889,8 +67277,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -64969,6 +67357,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -64978,8 +67370,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65058,6 +67450,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65067,8 +67463,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65147,6 +67543,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65156,8 +67556,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65236,6 +67636,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65245,8 +67649,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65325,6 +67729,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65334,8 +67742,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65414,6 +67822,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65423,8 +67835,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65503,6 +67915,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65512,8 +67928,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65592,6 +68008,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65601,8 +68021,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65681,6 +68101,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65690,8 +68114,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65770,6 +68194,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65779,8 +68207,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65859,6 +68287,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65868,8 +68300,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -65948,6 +68380,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -65957,8 +68393,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66037,6 +68473,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66046,8 +68486,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66126,6 +68566,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66135,8 +68579,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66215,6 +68659,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66224,8 +68672,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66304,6 +68752,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66313,8 +68765,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66393,6 +68845,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66402,8 +68858,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66482,6 +68938,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66491,8 +68951,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66571,6 +69031,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66580,8 +69044,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66660,6 +69124,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66669,8 +69137,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66749,6 +69217,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66758,8 +69230,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66838,6 +69310,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66847,8 +69323,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -66927,6 +69403,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -66936,8 +69416,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67016,6 +69496,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67025,8 +69509,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67105,6 +69589,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67114,8 +69602,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67194,6 +69682,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67203,8 +69695,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67283,6 +69775,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67292,8 +69788,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67372,6 +69868,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67381,8 +69881,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67461,6 +69961,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67470,8 +69974,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67550,6 +70054,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67559,8 +70067,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67639,6 +70147,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67648,8 +70160,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67728,6 +70240,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67737,8 +70253,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67817,6 +70333,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67826,8 +70346,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67906,6 +70426,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -67915,8 +70439,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -67995,6 +70519,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68004,8 +70532,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68084,6 +70612,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68093,8 +70625,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68173,6 +70705,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68182,8 +70718,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68262,6 +70798,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68271,8 +70811,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68351,6 +70891,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68360,8 +70904,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68440,6 +70984,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68449,8 +70997,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68529,6 +71077,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68538,8 +71090,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68618,6 +71170,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68627,8 +71183,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68707,6 +71263,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68716,8 +71276,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68796,6 +71356,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68805,8 +71369,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68885,6 +71449,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68894,8 +71462,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -68974,6 +71542,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -68983,8 +71555,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69063,6 +71635,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69072,8 +71648,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69152,6 +71728,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69161,8 +71741,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69241,6 +71821,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69250,8 +71834,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69330,6 +71914,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69339,8 +71927,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69419,6 +72007,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69428,8 +72020,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69508,6 +72100,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69517,8 +72113,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69597,6 +72193,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69606,8 +72206,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69686,6 +72286,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69695,8 +72299,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69775,6 +72379,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69784,8 +72392,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69864,6 +72472,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69873,8 +72485,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -69953,6 +72565,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -69962,8 +72578,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70042,6 +72658,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70051,8 +72671,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70131,6 +72751,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70140,8 +72764,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70220,6 +72844,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70229,8 +72857,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70309,6 +72937,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70318,8 +72950,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70398,6 +73030,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70407,8 +73043,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70487,6 +73123,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70496,8 +73136,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70576,6 +73216,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70585,8 +73229,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70665,6 +73309,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70674,8 +73322,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70754,6 +73402,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70763,8 +73415,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70843,6 +73495,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70852,8 +73508,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -70932,6 +73588,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -70941,8 +73601,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71021,6 +73681,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71030,8 +73694,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71110,6 +73774,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71119,8 +73787,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71199,6 +73867,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71208,8 +73880,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71288,6 +73960,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71297,8 +73973,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71377,6 +74053,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71386,8 +74066,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71466,6 +74146,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71475,8 +74159,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71555,6 +74239,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71564,8 +74252,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71644,6 +74332,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71653,8 +74345,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71733,6 +74425,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71742,8 +74438,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71822,6 +74518,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71831,8 +74531,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -71911,6 +74611,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -71920,8 +74624,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72000,6 +74704,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72009,8 +74717,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72089,6 +74797,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72098,8 +74810,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72178,6 +74890,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72187,8 +74903,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72267,6 +74983,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72276,8 +74996,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72356,6 +75076,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72365,8 +75089,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72445,6 +75169,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72454,8 +75182,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72534,6 +75262,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72543,8 +75275,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72623,6 +75355,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72632,8 +75368,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72712,6 +75448,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72721,8 +75461,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72801,6 +75541,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72810,8 +75554,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72890,6 +75634,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72899,8 +75647,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -72979,6 +75727,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -72988,8 +75740,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73068,6 +75820,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73077,8 +75833,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73157,6 +75913,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73166,8 +75926,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73246,6 +76006,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73255,8 +76019,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73335,6 +76099,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73344,8 +76112,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73424,6 +76192,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73433,8 +76205,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73513,6 +76285,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73522,8 +76298,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73602,6 +76378,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73611,8 +76391,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73691,6 +76471,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73700,8 +76484,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73780,6 +76564,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73789,8 +76577,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73869,6 +76657,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73878,8 +76670,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -73958,6 +76750,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -73967,8 +76763,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74047,6 +76843,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74056,8 +76856,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74136,6 +76936,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74145,8 +76949,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74225,6 +77029,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74234,8 +77042,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74314,6 +77122,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74323,8 +77135,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74403,6 +77215,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74412,8 +77228,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74492,6 +77308,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74501,8 +77321,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74581,6 +77401,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74590,8 +77414,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74670,6 +77494,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74679,8 +77507,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74759,6 +77587,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74768,8 +77600,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74848,6 +77680,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74857,8 +77693,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -74937,6 +77773,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -74946,8 +77786,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75026,6 +77866,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75035,8 +77879,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75115,6 +77959,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75124,8 +77972,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75204,6 +78052,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75213,8 +78065,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75293,6 +78145,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75302,8 +78158,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75382,6 +78238,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75391,8 +78251,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75471,6 +78331,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75480,8 +78344,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75560,6 +78424,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75569,8 +78437,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75649,6 +78517,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75658,8 +78530,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75738,6 +78610,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75747,8 +78623,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75827,6 +78703,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75836,8 +78716,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -75916,6 +78796,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -75925,8 +78809,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76005,6 +78889,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76014,8 +78902,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76094,6 +78982,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76103,8 +78995,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76183,6 +79075,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76192,8 +79088,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76272,6 +79168,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76281,8 +79181,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76361,6 +79261,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76370,8 +79274,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76450,6 +79354,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76459,8 +79367,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76539,6 +79447,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76548,8 +79460,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76628,6 +79540,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76637,8 +79553,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76717,6 +79633,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76726,8 +79646,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76806,6 +79726,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76815,8 +79739,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76895,6 +79819,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76904,8 +79832,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -76984,6 +79912,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -76993,8 +79925,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77073,6 +80005,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77082,8 +80018,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77162,6 +80098,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77171,8 +80111,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77251,6 +80191,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77260,8 +80204,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77340,6 +80284,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77349,8 +80297,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77429,6 +80377,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77438,8 +80390,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77518,6 +80470,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77527,8 +80483,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77607,6 +80563,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77616,8 +80576,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77696,6 +80656,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77705,8 +80669,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77785,6 +80749,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77794,8 +80762,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77874,6 +80842,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77883,8 +80855,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -77963,6 +80935,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -77972,8 +80948,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78052,6 +81028,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78061,8 +81041,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78141,6 +81121,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78150,8 +81134,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78230,6 +81214,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78239,8 +81227,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78319,6 +81307,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78328,8 +81320,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78408,6 +81400,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78417,8 +81413,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78497,6 +81493,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78506,8 +81506,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78586,6 +81586,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78595,8 +81599,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78675,6 +81679,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78684,8 +81692,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78764,6 +81772,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78773,8 +81785,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78853,6 +81865,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78862,8 +81878,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -78942,6 +81958,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -78951,8 +81971,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79031,6 +82051,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79040,8 +82064,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79120,6 +82144,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79129,8 +82157,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79209,6 +82237,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79218,8 +82250,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79298,6 +82330,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79307,8 +82343,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79387,6 +82423,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79396,8 +82436,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79476,6 +82516,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79485,8 +82529,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79565,6 +82609,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79574,8 +82622,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79654,6 +82702,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79663,8 +82715,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79743,6 +82795,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79752,8 +82808,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79832,6 +82888,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79841,8 +82901,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -79921,6 +82981,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -79930,8 +82994,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80010,6 +83074,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80019,8 +83087,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80099,6 +83167,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80108,8 +83180,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80188,6 +83260,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80197,8 +83273,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80277,6 +83353,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80286,8 +83366,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80366,6 +83446,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80375,8 +83459,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80455,6 +83539,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80464,8 +83552,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80544,6 +83632,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80553,8 +83645,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80633,6 +83725,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80642,8 +83738,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80722,6 +83818,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80731,8 +83831,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80811,6 +83911,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80820,8 +83924,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80900,6 +84004,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80909,8 +84017,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -80989,6 +84097,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -80998,8 +84110,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81078,6 +84190,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81087,8 +84203,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81167,6 +84283,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81176,8 +84296,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81256,6 +84376,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81265,8 +84389,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81345,6 +84469,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81354,8 +84482,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81434,6 +84562,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81443,8 +84575,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81523,6 +84655,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81532,8 +84668,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81612,6 +84748,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81621,8 +84761,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81701,6 +84841,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81710,8 +84854,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81790,6 +84934,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81799,8 +84947,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81879,6 +85027,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81888,8 +85040,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -81968,6 +85120,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -81977,8 +85133,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82057,6 +85213,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82066,8 +85226,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82146,6 +85306,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82155,8 +85319,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82235,6 +85399,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82244,8 +85412,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82324,6 +85492,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82333,8 +85505,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82413,6 +85585,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82422,8 +85598,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82502,6 +85678,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82511,8 +85691,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82591,6 +85771,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82600,8 +85784,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82680,6 +85864,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82689,8 +85877,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82769,6 +85957,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82778,8 +85970,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82858,6 +86050,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82867,8 +86063,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -82947,6 +86143,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -82956,8 +86156,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -83036,6 +86236,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -83045,8 +86249,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -83125,6 +86329,10 @@ "os:Debian-10.3", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ "cipd_bin_packages/cpython", @@ -83134,8 +86342,8 @@ "cipd_bin_packages", "cipd_bin_packages/bin" ], - "VPYTHON_LOG_TRACE": [ - "1" + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" ], "VPYTHON_VIRTUALENV_ROOT": [ "cache/vpython" @@ -83154,6 +86362,7 @@ "canvaskit": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/canvaskit", "skia/modules/canvaskit", @@ -83170,6 +86379,7 @@ "skia/.clang-format", "skia/.clang-tidy", "skia/.gn", + "skia/.vpython", "skia/BUILD.gn", "skia/bench", "skia/bin/fetch-clang-format", @@ -83219,6 +86429,7 @@ "lottie-ci": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/lottiecap", "skia/tools/lottie-web-perf", @@ -83231,6 +86442,7 @@ "lottie-web": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/tools/lottie-web-perf" ], @@ -83241,6 +86453,7 @@ "pathkit": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/infra/pathkit", "skia/modules/pathkit" @@ -83252,6 +86465,7 @@ "perf": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/platform_tools/ios/bin", @@ -83265,6 +86479,7 @@ "puppeteer": { "root": "../skia", "paths": [ + ".vpython", "tools/perf-canvaskit-puppeteer" ], "excludes": [ @@ -83288,6 +86503,7 @@ "recreate-skps": { "root": "..", "paths": [ + "skia/.vpython", "skia/DEPS", "skia/bin/fetch-sk", "skia/infra/bots/assets/skp", @@ -83302,6 +86518,7 @@ "run-recipe": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py" ], "excludes": [ @@ -83311,6 +86528,7 @@ "skottie-wasm": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/run_recipe.py", "skia/tools/skottie-wasm-perf" ], @@ -83321,6 +86539,7 @@ "skpbench": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/tools/skpbench", @@ -83333,6 +86552,7 @@ "task-drivers": { "root": "..", "paths": [ + "skia/.vpython", "skia/go.mod", "skia/go.sum", "skia/infra/bots/build_task_drivers.sh", @@ -83346,6 +86566,7 @@ "test": { "root": "..", "paths": [ + "skia/.vpython", "skia/infra/bots/assets", "skia/infra/bots/run_recipe.py", "skia/platform_tools/ios/bin", @@ -83359,6 +86580,7 @@ "wasm-gm": { "root": "../skia", "paths": [ + ".vpython", "resources", "tools/run-wasm-gm-tests" ], diff --git a/infra/bots/utils.py b/infra/bots/utils.py index e305bb9f847b..52d1bdde150e 100755 --- a/infra/bots/utils.py +++ b/infra/bots/utils.py @@ -22,7 +22,7 @@ GCLIENT = 'gclient.bat' if sys.platform == 'win32' else 'gclient' WHICH = 'where' if sys.platform == 'win32' else 'which' -GIT = subprocess.check_output([WHICH, 'git']).splitlines()[0] +GIT = subprocess.check_output([WHICH, 'git']).decode('utf-8').splitlines()[0] class print_timings(object): def __init__(self): @@ -90,15 +90,15 @@ def __init__(self): self._stashed = False def __enter__(self): - output = subprocess.check_output([GIT, 'stash']) + output = subprocess.check_output([GIT, 'stash']).decode('utf-8') self._stashed = 'No local changes' not in output # Get the original branch name or commit hash. self._orig_branch = subprocess.check_output([ - GIT, 'rev-parse', '--abbrev-ref', 'HEAD']).rstrip() + GIT, 'rev-parse', '--abbrev-ref', 'HEAD']).decode('utf-8').rstrip() if self._orig_branch == 'HEAD': self._orig_branch = subprocess.check_output([ - GIT, 'rev-parse', 'HEAD']).rstrip() + GIT, 'rev-parse', 'HEAD']).decode('utf-8').rstrip() # Check out a new branch, based at updated origin/main. subprocess.check_call([GIT, 'fetch', 'origin'])