Clean up previously running Fuchsia emulator before tests start
See fxbug.dev/121613
Change-Id: If2deefc27aea3806506d5f56593d61e8848728f8
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/38901
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Amit Uttamchandani <amituttam@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 8d70459..07a0877 100644
--- a/recipes/engine/femu_test.expected/arm64_emulator_arch.json
+++ b/recipes/engine/femu_test.expected/arm64_emulator_arch.json
@@ -2719,6 +2719,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-arm64"
@@ -2992,34 +3043,6 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "emu",
- "list"
- ],
- "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
- "env": {
- "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 arm64.run v2_test.list emulators",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"-v",
"emu",
"stop",
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 d19a0b9..86906ac 100644
--- a/recipes/engine/femu_test.expected/femu_with_package_list.json
+++ b/recipes/engine/femu_test.expected/femu_with_package_list.json
@@ -2732,6 +2732,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
diff --git a/recipes/engine/femu_test.expected/invalid_emulator_arch.json b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
index ebb06c5..21b7d40 100644
--- a/recipes/engine/femu_test.expected/invalid_emulator_arch.json
+++ b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
@@ -2712,6 +2712,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
@@ -2981,34 +3032,6 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "emu",
- "list"
- ],
- "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
- "env": {
- "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.list emulators",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"-v",
"emu",
"stop",
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 e86ce1e..e5abbd2 100644
--- a/recipes/engine/femu_test.expected/multiple_non_root_fars.json
+++ b/recipes/engine/femu_test.expected/multiple_non_root_fars.json
@@ -2722,6 +2722,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
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 16d8455..742886a 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
@@ -2750,6 +2750,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
@@ -3046,34 +3097,6 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
- "emu",
- "list"
- ],
- "cwd": "[CLEANUP]/femu_runfiles__tmp_1",
- "env": {
- "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 run-on-both-arch.list emulators",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"-v",
"emu",
"stop",
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 66df4b5..79b84e8 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
@@ -2725,6 +2725,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
diff --git a/recipes/engine/femu_test.expected/start_femu.json b/recipes/engine/femu_test.expected/start_femu.json
index e4cd803..03ebf68 100644
--- a/recipes/engine/femu_test.expected/start_femu.json
+++ b/recipes/engine/femu_test.expected/start_femu.json
@@ -2724,6 +2724,57 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "list"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "list emulators"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CACHE]/builder",
+ "env": {
+ "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": "stop all emulator instances"
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
"terminal.qemu-x64"
diff --git a/recipes/engine/femu_test.py b/recipes/engine/femu_test.py
index 2dac9ff..4ad100c 100644
--- a/recipes/engine/femu_test.py
+++ b/recipes/engine/femu_test.py
@@ -230,7 +230,12 @@
fserve = checkout.join('fuchsia/sdk/linux/tools/x64/fserve')
fpublish = checkout.join('fuchsia/sdk/linux/tools/x64/fpublish')
+ # Disable ffx analytics so this does not count as a real user
api.step('disable ffx analytics', [ffx, 'config', 'analytics', 'disable'])
+ # TODO(fxb/121613). Workaround for the issue of previously running
+ # emulator.
+ api.step('list emulators', [ffx, 'emu', 'list'])
+ api.step('stop all emulator instances', [ffx, 'emu', 'stop', '--all'])
# Retrieve the required product bundle
# Contains necessary images, packages, etc to launch the emulator
@@ -284,6 +289,9 @@
# 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(' '))
@@ -296,7 +304,6 @@
# Cleans up running processes to prevent clashing with future test runs
api.step('kill fserve', [fserve, '-kill'])
- api.step('list emulators', [ffx, 'emu', 'list'])
api.step('stop %s emulator' % arch, [ffx, '-v', 'emu', 'stop', '--all'])