[fuchsia] Fix the log collection step
There's no need to specify the emulator log path as we're using an
isolated config, we can simply read the log files directly. This does that and remove the explicit call to `ffx log dump`. It often happens that we need the logs because the ffx connection has dropped, reading the log files directly will help debug these issues.
led run: https://ci.chromium.org/swarming/task/60f732f302e8bc10?server=chromium-swarm.appspot.com
Change-Id: Ibc93b86515839fdcde942bf973401741108d9e8d
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/40361
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Sébastien Marchand <sebmarchand@google.com>
diff --git a/recipes/engine/femu_test.expected/arm64_emulator_arch.json b/recipes/engine/femu_test.expected/arm64_emulator_arch.json
index c6ab165..17e6be4 100644
--- a/recipes/engine/femu_test.expected/arm64_emulator_arch.json
+++ b/recipes/engine/femu_test.expected/arm64_emulator_arch.json
@@ -1598,9 +1598,7 @@
"qemu",
"--headless",
"--startup-timeout",
- "360",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "360"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1773,10 +1771,30 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on arm64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
"cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "log",
- "dump"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1796,11 +1814,119 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on arm64.run v2_test.ffx log dump",
+ "infra_step": true,
+ "name": "run FEMU test on arm64.run v2_test.logs.read ffx daemon log",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@log@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on arm64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on arm64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on arm64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
]
},
{
@@ -1826,9 +1952,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on arm64.run v2_test.kill fserve",
+ "name": "run FEMU test on arm64.run v2_test.logs.kill fserve",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
@@ -1857,9 +1983,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on arm64.run v2_test.stop arm64 emulator",
+ "name": "run FEMU test on arm64.run v2_test.logs.stop arm64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
diff --git a/recipes/engine/femu_test.expected/femu_with_package_list.json b/recipes/engine/femu_test.expected/femu_with_package_list.json
index fe9cc97..0391f68 100644
--- a/recipes/engine/femu_test.expected/femu_with_package_list.json
+++ b/recipes/engine/femu_test.expected/femu_with_package_list.json
@@ -1611,9 +1611,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1757,6 +1755,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run v2_test.publishing v2_test-123.far') (retcode: 1)"
diff --git a/recipes/engine/femu_test.expected/invalid_emulator_arch.json b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
index cd2d4ce..4084283 100644
--- a/recipes/engine/femu_test.expected/invalid_emulator_arch.json
+++ b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
@@ -1587,9 +1587,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1762,10 +1760,30 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
"cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "log",
- "dump"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1785,11 +1803,119 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.ffx log dump",
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@log@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
]
},
{
@@ -1815,9 +1941,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.kill fserve",
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
@@ -1846,9 +1972,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.stop x64 emulator",
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
diff --git a/recipes/engine/femu_test.expected/multiple_non_root_fars.json b/recipes/engine/femu_test.expected/multiple_non_root_fars.json
index 60a444a..d7ebacf 100644
--- a/recipes/engine/femu_test.expected/multiple_non_root_fars.json
+++ b/recipes/engine/femu_test.expected/multiple_non_root_fars.json
@@ -1601,9 +1601,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1747,6 +1745,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run flutter-embedder-test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run flutter-embedder-test.publishing flutter-embedder-test-0.far') (retcode: 1)"
diff --git a/recipes/engine/femu_test.expected/no_zircon_file.json b/recipes/engine/femu_test.expected/no_zircon_file.json
index cd2d4ce..4084283 100644
--- a/recipes/engine/femu_test.expected/no_zircon_file.json
+++ b/recipes/engine/femu_test.expected/no_zircon_file.json
@@ -1587,9 +1587,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1762,10 +1760,30 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
"cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "log",
- "dump"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1785,11 +1803,119 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.ffx log dump",
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@log@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
]
},
{
@@ -1815,9 +1941,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.kill fserve",
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
@@ -1846,9 +1972,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run v2_test.stop x64 emulator",
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
diff --git a/recipes/engine/femu_test.expected/run_on_test_specified_arch.json b/recipes/engine/femu_test.expected/run_on_test_specified_arch.json
index 53c26cb..883a22c 100644
--- a/recipes/engine/femu_test.expected/run_on_test_specified_arch.json
+++ b/recipes/engine/femu_test.expected/run_on_test_specified_arch.json
@@ -1625,9 +1625,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1828,10 +1826,30 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run run-on-both-arch.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
"cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "log",
- "dump"
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1851,11 +1869,119 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run run-on-both-arch.ffx log dump",
+ "infra_step": true,
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.read ffx daemon log",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@log@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
]
},
{
@@ -1881,9 +2007,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run run-on-both-arch.kill fserve",
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.kill fserve",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
@@ -1912,9 +2038,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "run FEMU test on x64.run run-on-both-arch.stop x64 emulator",
+ "name": "run FEMU test on x64.run run-on-both-arch.logs.stop x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
+ "@@@STEP_NEST_LEVEL@3@@@"
]
},
{
diff --git a/recipes/engine/femu_test.expected/run_with_dart_aot_behavior.json b/recipes/engine/femu_test.expected/run_with_dart_aot_behavior.json
index 71c7a47..745f5a7 100644
--- a/recipes/engine/femu_test.expected/run_with_dart_aot_behavior.json
+++ b/recipes/engine/femu_test.expected/run_with_dart_aot_behavior.json
@@ -1604,9 +1604,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1778,6 +1776,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run dart-jit-runner-integration-test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run dart-jit-runner-integration-test.publishing dart_aot_runner-0.far') (retcode: 1)"
diff --git a/recipes/engine/femu_test.expected/start_femu.json b/recipes/engine/femu_test.expected/start_femu.json
index d647742..eedf728 100644
--- a/recipes/engine/femu_test.expected/start_femu.json
+++ b/recipes/engine/femu_test.expected/start_femu.json
@@ -1603,9 +1603,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1632,6 +1630,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run v2_test.launch x64 emulator') (retcode: 1)"
diff --git a/recipes/engine/femu_test.expected/start_femu_with_cso.json b/recipes/engine/femu_test.expected/start_femu_with_cso.json
index 808ce80..9574647 100644
--- a/recipes/engine/femu_test.expected/start_femu_with_cso.json
+++ b/recipes/engine/femu_test.expected/start_femu_with_cso.json
@@ -1603,9 +1603,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1632,6 +1630,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run v2_test.launch x64 emulator') (retcode: 1)"
diff --git a/recipes/engine/femu_test.expected/start_femu_with_override_pbm.json b/recipes/engine/femu_test.expected/start_femu_with_override_pbm.json
index 563e7b2..7aceff7 100644
--- a/recipes/engine/femu_test.expected/start_femu_with_override_pbm.json
+++ b/recipes/engine/femu_test.expected/start_femu_with_override_pbm.json
@@ -1634,9 +1634,7 @@
"emu",
"start",
"terminal.qemu-x64",
- "--headless",
- "--log",
- "[CLEANUP]/emulator_log_tmp_1"
+ "--headless"
],
"cwd": "[CLEANUP]/femu_runfiles__tmp_1",
"env": {
@@ -1663,6 +1661,224 @@
]
},
{
+ "cmd": [],
+ "name": "run FEMU test on x64.run v2_test.logs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@ffx_daemon_log@@@@",
+ "@@@STEP_LOG_END@ffx_daemon_log@@@",
+ "@@@STEP_LOG_LINE@ffx_log@@@@",
+ "@@@STEP_LOG_END@ffx_log@@@",
+ "@@@STEP_LOG_LINE@emulator_log@@@@",
+ "@@@STEP_LOG_END@emulator_log@@@",
+ "@@@STEP_LOG_LINE@emulator_serial_log@@@@",
+ "@@@STEP_LOG_END@emulator_serial_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.daemon.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.daemon.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/cache/logs/ffx.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx log",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@ffx.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CLEANUP]/ffx_isolate_files_tmp_1/data/emu/instances/fuchsia-emulator/emulator.log.serial",
+ "/path/to/tmp/"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "infra_step": true,
+ "name": "run FEMU test on x64.run v2_test.logs.read ffx daemon log (3)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_END@emulator.log.serial@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "-v",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
+ "env": {
+ "FFX_ISOLATE_DIR": "[CLEANUP]/ffx_isolate_files_tmp_1",
+ "GOMA_DIR": "[CACHE]/goma/client"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
+ "env_suffixes": {
+ "DEPOT_TOOLS_UPDATE": [
+ "0"
+ ],
+ "PATH": [
+ "RECIPE_REPO[depot_tools]"
+ ]
+ },
+ "name": "run FEMU test on x64.run v2_test.logs.stop x64 emulator",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
"failure": {
"failure": {},
"humanReason": "Step('run FEMU test on x64.run v2_test.launch x64 emulator') (retcode: 1)"
diff --git a/recipes/engine/femu_test.py b/recipes/engine/femu_test.py
index 8d8ff3c..947b686 100644
--- a/recipes/engine/femu_test.py
+++ b/recipes/engine/femu_test.py
@@ -248,65 +248,88 @@
with api.context(cwd=root_dir), api.step.nest('run FEMU test on %s' % arch):
for suite in test_suites:
with api.step.nest('run %s' % suite['name']):
- # Launch the emulator
- # Route the emulator_log to a temporary, defined path to output later
- emulator_log_path = api.path.mkstemp('emulator_log')
- if arch == 'arm64':
- launch_step = api.step(
- 'launch arm64 emulator with QEMU engine', [
- ffx, '-v', 'emu', 'start', 'terminal.qemu-arm64', '--engine',
- 'qemu', '--headless', '--startup-timeout', '360', '--log',
- api.raw_io.output_text(
- name='emulator_log', leak_to=emulator_log_path)
- ],
- step_test_data=(lambda: api.raw_io.test_api.output_text(
- 'log', name='emulator_log')))
- else:
- launch_step = api.step(
- 'launch x64 emulator', [
- ffx, '-v', 'emu', 'start', 'terminal.qemu-x64', '--headless',
- '--log',
- api.raw_io.output_text(
- name='emulator_log', leak_to=emulator_log_path)
- ],
- step_test_data=(lambda: api.raw_io.test_api.output_text(
- 'log', name='emulator_log')))
+ try:
+ # Launch the emulator
+ if arch == 'arm64':
+ launch_step = api.step(
+ 'launch arm64 emulator with QEMU engine', [
+ ffx, '-v', 'emu', 'start', 'terminal.qemu-arm64',
+ '--engine', 'qemu', '--headless', '--startup-timeout', '360'
+ ]
+ )
+ else:
+ launch_step = api.step(
+ 'launch x64 emulator',
+ [ffx, '-v', 'emu', 'start', 'terminal.qemu-x64', '--headless']
+ )
- # Output information for current emulator
- # Contains version, product information, etc.
- api.step('list all targets in the collection', [ffx, 'target', 'list'])
- api.step('retrieve femu information', [ffx, 'target', 'show']);
+ # Output information for current emulator
+ # Contains version, product information, etc.
+ api.step(
+ 'list all targets in the collection', [ffx, 'target', 'list']
+ )
+ api.step('retrieve femu information', [ffx, 'target', 'show'])
- # Start a package server, this listens in the background for published files
- # https://fuchsia.dev/reference/tools/sdk/fserve
- api.step(
- 'start fserve',
- [fserve, '-image',
- 'qemu-%s' % arch, '-server-port', FSERVE_PORT])
+ # Start a package server, this listens in the background for published files
+ # https://fuchsia.dev/reference/tools/sdk/fserve
+ api.step(
+ 'start fserve',
+ [fserve, '-image',
+ 'qemu-%s' % arch, '-server-port', FSERVE_PORT]
+ )
- # Publishes the required FAR files needed to run the test to the package server
- # https://fuchsia.dev/reference/tools/sdk/fpublish
- for package in suite['package_basenames']:
- api.step('publishing {}'.format(package), [fpublish, package])
+ # Publishes the required FAR files needed to run the test to the package server
+ # https://fuchsia.dev/reference/tools/sdk/fpublish
+ for package in suite['package_basenames']:
+ api.step('publishing {}'.format(package), [fpublish, package])
- # Run the actual test
- # Test command is guaranteed to be well-formed
- # TODO(http://fxb/121613): Emulator instances are not cleaned up
- # when tests fail. Added a clean up step before tests start to
- # stop all running emulators.
- with api.step.defer_results():
- api.retry.step('run ffx test', [ffx] + suite['test_command'].split(' '))
+ # Run the actual test
+ # Test command is guaranteed to be well-formed
+ # TODO(http://fxb/121613): Emulator instances are not cleaned up
+ # when tests fail. Added a clean up step before tests start to
+ # stop all running emulators.
+ with api.step.defer_results():
+ api.retry.step(
+ 'run ffx test', [ffx] + suite['test_command'].split(' ')
+ )
- # Outputs ffx log and emulator_log for debugging
- dump_step = api.step('ffx log dump', [ffx, 'log', 'dump'])
- # TODO(http://fxb/115447): Investigate why emulator_log isn't
- # outputting full emulator logs
- dump_step.presentation.logs[
- 'emulator_log'] = launch_step.raw_io.output_texts['emulator_log']
+ finally:
+ with api.step.nest('logs') as dump_step:
+ dump_step.presentation.logs['ffx_daemon_log'] = api.file.read_text(
+ 'read ffx daemon log',
+ api.path.join(
+ api.context.env.get('FFX_ISOLATE_DIR'), 'cache', 'logs',
+ 'ffx.daemon.log'
+ )
+ )
+ dump_step.presentation.logs['ffx_log'] = api.file.read_text(
+ 'read ffx log',
+ api.path.join(
+ api.context.env.get('FFX_ISOLATE_DIR'), 'cache', 'logs',
+ 'ffx.log'
+ )
+ )
+ dump_step.presentation.logs['emulator_log'] = api.file.read_text(
+ 'read ffx daemon log',
+ api.path.join(
+ api.context.env.get('FFX_ISOLATE_DIR'), 'data', 'emu',
+ 'instances', 'fuchsia-emulator', 'emulator.log'
+ )
+ )
+ dump_step.presentation.logs[
+ 'emulator_serial_log'] = api.file.read_text(
+ 'read ffx daemon log',
+ api.path.join(
+ api.context.env.get('FFX_ISOLATE_DIR'), 'data', 'emu',
+ 'instances', 'fuchsia-emulator', 'emulator.log.serial'
+ )
+ )
- # Cleans up running processes to prevent clashing with future test runs
- api.step('kill fserve', [fserve, '-kill'])
- api.step('stop %s emulator' % arch, [ffx, '-v', 'emu', 'stop', '--all'])
+ # Cleans up running processes to prevent clashing with future test runs
+ api.step('kill fserve', [fserve, '-kill'])
+ api.step(
+ 'stop %s emulator' % arch, [ffx, '-v', 'emu', 'stop', '--all']
+ )
def BuildFuchsia(api):