Add ffx and arm64 emulator support for femu_test and emulator_arch flag in engine.proto
Also introduces a 'platform' attribute to test_suites.yaml. This will allow us to determine whether to run a test on an arm64/x64 emulator (or both)
Bug:fxb/114574
Change-Id: I894bac672b06e51f5ca387167bd7dd16f31f673b
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/36360
Commit-Queue: Erik Lin <erkln@google.com>
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipes/engine/engine.proto b/recipes/engine/engine.proto
index d35d91c..b6f7ab0 100644
--- a/recipes/engine/engine.proto
+++ b/recipes/engine/engine.proto
@@ -65,6 +65,10 @@
// GClient variables.
GClientVariables gclient_variables = 31;
+
+ // emulator architecture to run tests on
+ // Currently only used by femu_test
+ string emulator_arch = 32;
}
message EnvProperties {
diff --git a/recipes/engine/femu_test.expected/test-run test_command.json b/recipes/engine/femu_test.expected/arm64_emulator_arch.json
similarity index 94%
copy from recipes/engine/femu_test.expected/test-run test_command.json
copy to recipes/engine/femu_test.expected/arm64_emulator_arch.json
index 83a7065..c4708ec 100644
--- a/recipes/engine/femu_test.expected/test-run test_command.json
+++ b/recipes/engine/femu_test.expected/arm64_emulator_arch.json
@@ -187,7 +187,7 @@
"--goma",
"--fuchsia",
"--fuchsia-cpu",
- "x64",
+ "arm64",
"--runtime-mode",
"debug",
"--no-lto"
@@ -209,7 +209,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "gn --fuchsia --fuchsia-cpu x64 --runtime-mode debug --no-lto"
+ "name": "gn --fuchsia --fuchsia-cpu arm64 --runtime-mode debug --no-lto"
},
{
"cmd": [
@@ -218,7 +218,7 @@
"--goma",
"--fuchsia",
"--fuchsia-cpu",
- "x64",
+ "arm64",
"--runtime-mode",
"profile",
"--no-lto"
@@ -240,7 +240,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "gn --fuchsia --fuchsia-cpu x64 --runtime-mode profile --no-lto"
+ "name": "gn --fuchsia --fuchsia-cpu arm64 --runtime-mode profile --no-lto"
},
{
"cmd": [],
@@ -456,7 +456,7 @@
"-j",
"1024",
"-C",
- "[CACHE]/builder/src/out/fuchsia_debug_x64",
+ "[CACHE]/builder/src/out/fuchsia_debug_arm64",
"flutter/shell/platform/fuchsia:fuchsia",
"fuchsia_tests"
],
@@ -479,7 +479,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "build fuchsia_debug_x64 flutter/shell/platform/fuchsia:fuchsia fuchsia_tests"
+ "name": "build fuchsia_debug_arm64 flutter/shell/platform/fuchsia:fuchsia fuchsia_tests"
},
{
"cmd": [],
@@ -734,7 +734,7 @@
"-j",
"1024",
"-C",
- "[CACHE]/builder/src/out/fuchsia_profile_x64",
+ "[CACHE]/builder/src/out/fuchsia_profile_arm64",
"flutter/shell/platform/fuchsia:fuchsia",
"fuchsia_tests"
],
@@ -757,7 +757,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "build fuchsia_profile_x64 flutter/shell/platform/fuchsia:fuchsia fuchsia_tests"
+ "name": "build fuchsia_profile_arm64 flutter/shell/platform/fuchsia:fuchsia fuchsia_tests"
},
{
"cmd": [],
@@ -971,7 +971,7 @@
"HEAD",
"--skip-build",
"--archs",
- "x64",
+ "arm64",
"--runtime-mode",
"debug"
],
@@ -1002,7 +1002,7 @@
"HEAD",
"--skip-build",
"--archs",
- "x64",
+ "arm64",
"--runtime-mode",
"profile",
"--skip-remove-buckets"
@@ -2636,12 +2636,10 @@
"name": "Retrieve list of test suites",
"~followup_annotations": [
"@@@STEP_LOG_LINE@yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
- "@@@STEP_LOG_LINE@yaml@ run_with_dart_aot: true@@@",
- "@@@STEP_LOG_LINE@yaml@ packages:@@@",
- "@@@STEP_LOG_LINE@yaml@ - dart-aot-runner-integration-test-0.far@@@",
- "@@@STEP_LOG_LINE@yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@yaml@- package: v2_test-123.far@@@",
+ "@@@STEP_LOG_LINE@yaml@ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm@@@",
+ "@@@STEP_LOG_LINE@yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@yaml@ - arm64@@@",
"@@@STEP_LOG_END@yaml@@@"
]
},
@@ -2678,12 +2676,10 @@
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ run_with_dart_aot: true@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ packages:@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - dart-aot-runner-integration-test-0.far@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@- package: v2_test-123.far@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ - arm64@@@",
"@@@STEP_LOG_END@test_suites.yaml@@@"
]
},
@@ -2719,12 +2715,11 @@
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@json.output@[@@@",
"@@@STEP_LOG_LINE@json.output@ {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"packages\": [@@@",
- "@@@STEP_LOG_LINE@json.output@ \"dart-aot-runner-integration-test-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"dart_aot_runner-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"emulator_arch\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"arm64\"@@@",
"@@@STEP_LOG_LINE@json.output@ ], @@@",
- "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"v2_test-123.far\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm\"@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
"@@@STEP_LOG_LINE@json.output@]@@@",
"@@@STEP_LOG_END@json.output@@@"
@@ -2736,7 +2731,7 @@
"-u",
"RECIPE_MODULE[fuchsia::cas_util]/resources/hardlink.py",
"--link-json",
- "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/x64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart-aot-runner-integration-test-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart-aot-runner-integration-test-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_jit_echo_server.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
+ "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/arm64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_arm64/v2_test-123.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/v2_test-123.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
],
"cwd": "[CACHE]/builder",
"env": {
@@ -2921,7 +2916,7 @@
},
{
"cmd": [],
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test",
+ "name": "FEMU Test.run FEMU Test v2_test",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -2931,7 +2926,7 @@
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"product-bundle",
"get",
- "terminal.qemu-x64"
+ "terminal.qemu-arm64"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -2950,7 +2945,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.get terminal.qemu-x64 product bundle",
+ "name": "FEMU Test.run FEMU Test v2_test.get terminal.qemu-arm64 product bundle",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -2960,10 +2955,14 @@
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"emu",
"start",
- "terminal.qemu-x64",
+ "terminal.qemu-arm64",
+ "--engine",
+ "qemu",
"--headless",
+ "--startup-timeout",
+ "360",
"--log",
- "/path/to/tmp/"
+ "[CLEANUP]/emulator_log_tmp_1"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -2982,18 +2981,16 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.launch x64 emulator with QEMU engine",
+ "name": "FEMU Test.run FEMU Test v2_test.launch arm64 emulator with QEMU engine",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
"-image",
- "qemu-x64",
+ "qemu-arm64",
"-server-port",
"8084"
],
@@ -3014,7 +3011,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.start fserve",
+ "name": "FEMU Test.run FEMU Test v2_test.start fserve",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3022,7 +3019,7 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart-aot-runner-integration-test-0.far"
+ "v2_test-123.far"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -3041,61 +3038,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart-aot-runner-integration-test-0.far",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart_aot_runner-0.far"
- ],
- "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_aot_runner-0.far",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart_jit_echo_server.far"
- ],
- "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_jit_echo_server.far",
+ "name": "FEMU Test.run FEMU Test v2_test.publishing v2_test-123.far",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3105,7 +3048,7 @@
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"test",
"run",
- "fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm"
+ "fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -3124,7 +3067,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.run ffx test",
+ "name": "FEMU Test.run FEMU Test v2_test.run ffx test",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3152,7 +3095,65 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.dump ffx log",
+ "name": "FEMU Test.run FEMU Test v2_test.ffx log dump",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@emulator_log@log@@@",
+ "@@@STEP_LOG_END@emulator_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test v2_test.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test v2_test.stop arm64 emulator",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/engine/femu_test.expected/test-run test_command.json b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
similarity index 94%
copy from recipes/engine/femu_test.expected/test-run test_command.json
copy to recipes/engine/femu_test.expected/invalid_emulator_arch.json
index 83a7065..f4a9b00 100644
--- a/recipes/engine/femu_test.expected/test-run test_command.json
+++ b/recipes/engine/femu_test.expected/invalid_emulator_arch.json
@@ -2636,12 +2636,8 @@
"name": "Retrieve list of test suites",
"~followup_annotations": [
"@@@STEP_LOG_LINE@yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
- "@@@STEP_LOG_LINE@yaml@ run_with_dart_aot: true@@@",
- "@@@STEP_LOG_LINE@yaml@ packages:@@@",
- "@@@STEP_LOG_LINE@yaml@ - dart-aot-runner-integration-test-0.far@@@",
- "@@@STEP_LOG_LINE@yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@yaml@- package: v2_test-123.far@@@",
+ "@@@STEP_LOG_LINE@yaml@ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm@@@",
"@@@STEP_LOG_END@yaml@@@"
]
},
@@ -2678,12 +2674,8 @@
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ run_with_dart_aot: true@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ packages:@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - dart-aot-runner-integration-test-0.far@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@- package: v2_test-123.far@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm@@@",
"@@@STEP_LOG_END@test_suites.yaml@@@"
]
},
@@ -2719,12 +2711,8 @@
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@json.output@[@@@",
"@@@STEP_LOG_LINE@json.output@ {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"packages\": [@@@",
- "@@@STEP_LOG_LINE@json.output@ \"dart-aot-runner-integration-test-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"dart_aot_runner-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\"@@@",
- "@@@STEP_LOG_LINE@json.output@ ], @@@",
- "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"v2_test-123.far\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm\"@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
"@@@STEP_LOG_LINE@json.output@]@@@",
"@@@STEP_LOG_END@json.output@@@"
@@ -2736,7 +2724,7 @@
"-u",
"RECIPE_MODULE[fuchsia::cas_util]/resources/hardlink.py",
"--link-json",
- "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/x64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart-aot-runner-integration-test-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart-aot-runner-integration-test-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_jit_echo_server.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
+ "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/x64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/v2_test-123.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/v2_test-123.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
],
"cwd": "[CACHE]/builder",
"env": {
@@ -2921,7 +2909,7 @@
},
{
"cmd": [],
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test",
+ "name": "FEMU Test.run FEMU Test v2_test",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -2950,7 +2938,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.get terminal.qemu-x64 product bundle",
+ "name": "FEMU Test.run FEMU Test v2_test.get terminal.qemu-x64 product bundle",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -2963,7 +2951,7 @@
"terminal.qemu-x64",
"--headless",
"--log",
- "/path/to/tmp/"
+ "[CLEANUP]/emulator_log_tmp_1"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -2982,11 +2970,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.launch x64 emulator with QEMU engine",
+ "name": "FEMU Test.run FEMU Test v2_test.launch x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@2@@@"
]
},
{
@@ -3014,7 +3000,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.start fserve",
+ "name": "FEMU Test.run FEMU Test v2_test.start fserve",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3022,7 +3008,7 @@
{
"cmd": [
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart-aot-runner-integration-test-0.far"
+ "v2_test-123.far"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -3041,61 +3027,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart-aot-runner-integration-test-0.far",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart_aot_runner-0.far"
- ],
- "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_aot_runner-0.far",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart_jit_echo_server.far"
- ],
- "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_jit_echo_server.far",
+ "name": "FEMU Test.run FEMU Test v2_test.publishing v2_test-123.far",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3105,7 +3037,7 @@
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"test",
"run",
- "fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm"
+ "fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -3124,7 +3056,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.run ffx test",
+ "name": "FEMU Test.run FEMU Test v2_test.run ffx test",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3152,7 +3084,65 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.dump ffx log",
+ "name": "FEMU Test.run FEMU Test v2_test.ffx log dump",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@emulator_log@log@@@",
+ "@@@STEP_LOG_END@emulator_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test v2_test.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test v2_test.stop x64 emulator",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/engine/femu_test.expected/test-run test_command.json b/recipes/engine/femu_test.expected/run_on_test_specified_arch.json
similarity index 94%
copy from recipes/engine/femu_test.expected/test-run test_command.json
copy to recipes/engine/femu_test.expected/run_on_test_specified_arch.json
index 83a7065..9bce7b6 100644
--- a/recipes/engine/femu_test.expected/test-run test_command.json
+++ b/recipes/engine/femu_test.expected/run_on_test_specified_arch.json
@@ -2636,12 +2636,19 @@
"name": "Retrieve list of test suites",
"~followup_annotations": [
"@@@STEP_LOG_LINE@yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
+ "@@@STEP_LOG_LINE@yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm@@@",
"@@@STEP_LOG_LINE@yaml@ run_with_dart_aot: true@@@",
"@@@STEP_LOG_LINE@yaml@ packages:@@@",
"@@@STEP_LOG_LINE@yaml@ - dart-aot-runner-integration-test-0.far@@@",
"@@@STEP_LOG_LINE@yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@yaml@ - x64@@@",
+ "@@@STEP_LOG_LINE@yaml@ - arm64@@@",
+ "@@@STEP_LOG_LINE@yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/only-run-on-arm64#meta/only-run-on-arm64',@@@",
+ "@@@STEP_LOG_LINE@yaml@ packages:@@@",
+ "@@@STEP_LOG_LINE@yaml@ - dart_aot_runner-0.far'@@@",
+ "@@@STEP_LOG_LINE@yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@yaml@ - arm64@@@",
"@@@STEP_LOG_END@yaml@@@"
]
},
@@ -2678,12 +2685,19 @@
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@# This is a comment.@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@ run_with_dart_aot: true@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@ packages:@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@ - dart-aot-runner-integration-test-0.far@@@",
"@@@STEP_LOG_LINE@test_suites.yaml@ - dart_aot_runner-0.far@@@",
- "@@@STEP_LOG_LINE@test_suites.yaml@ - gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ - x64@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ - arm64@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@- test_command: test-run fuchsia-pkg://fuchsia.com/only-run-on-arm64#meta/only-run-on-arm64',@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ packages:@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ - dart_aot_runner-0.far'@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ emulator_arch:@@@",
+ "@@@STEP_LOG_LINE@test_suites.yaml@ - arm64@@@",
"@@@STEP_LOG_END@test_suites.yaml@@@"
]
},
@@ -2719,12 +2733,24 @@
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@json.output@[@@@",
"@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"emulator_arch\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"x64\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"arm64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
"@@@STEP_LOG_LINE@json.output@ \"packages\": [@@@",
"@@@STEP_LOG_LINE@json.output@ \"dart-aot-runner-integration-test-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"dart_aot_runner-0.far\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"dart_aot_runner-0.far\"@@@",
"@@@STEP_LOG_LINE@json.output@ ], @@@",
- "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }, @@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"emulator_arch\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"arm64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"packages\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"dart_aot_runner-0.far\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_command\": \"test-run fuchsia-pkg://fuchsia.com/only-run-on-arm64#meta/only-run-on-arm64\"@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
"@@@STEP_LOG_LINE@json.output@]@@@",
"@@@STEP_LOG_END@json.output@@@"
@@ -2736,7 +2762,7 @@
"-u",
"RECIPE_MODULE[fuchsia::cas_util]/resources/hardlink.py",
"--link-json",
- "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/x64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart-aot-runner-integration-test-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart-aot-runner-integration-test-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/gen/flutter/shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_jit_runner/dart_jit_echo_server/dart_jit_echo_server/dart_jit_echo_server.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_jit_echo_server.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
+ "{\"RECIPE[flutter::engine/femu_test].resources/run_vdl_test.sh\": [\"[CLEANUP]/vdl_runfiles__tmp_1/run_vdl_test.sh\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_buildargs\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_kernel\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files\": [\"[CLEANUP]/vdl_runfiles__tmp_1/amber-files\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/pm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/far\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/fvm\": [\"[CLEANUP]/vdl_runfiles__tmp_1/fvm\"], \"[CACHE]/builder/0.20200101.0.1/fuchsia_sdk/linux_intel_64/tools/x64/symbolizer\": [\"[CLEANUP]/vdl_runfiles__tmp_1/symbolizer\"], \"[CACHE]/builder/aemu\": [\"[CLEANUP]/vdl_runfiles__tmp_1/aemu\"], \"[CACHE]/builder/device_spec/virtual_device.textproto\": [\"[CLEANUP]/vdl_runfiles__tmp_1/virtual_device.textproto\"], \"[CACHE]/builder/src/out/fuchsia_bucket/flutter/x64/debug/aot/flutter_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/flutter_aot_runner-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart-aot-runner-integration-test-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart-aot-runner-integration-test-0.far\"], \"[CACHE]/builder/src/out/fuchsia_debug_x64/dart_aot_runner-0.far\": [\"[CLEANUP]/vdl_runfiles__tmp_1/dart_aot_runner-0.far\"], \"[CACHE]/builder/ssh/id_ed25519\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519\"], \"[CACHE]/builder/ssh/id_ed25519.pub\": [\"[CLEANUP]/vdl_runfiles__tmp_1/id_ed25519.pub\"], \"[CACHE]/builder/ssh_config\": [\"[CLEANUP]/vdl_runfiles__tmp_1/ssh_config\"], \"[CACHE]/builder/vdl/device_launcher\": [\"[CLEANUP]/vdl_runfiles__tmp_1/device_launcher\"], \"[CACHE]/builder/zircon-authorized.zbi\": [\"[CLEANUP]/vdl_runfiles__tmp_1/qemu_zircona-ed25519\"]}"
],
"cwd": "[CACHE]/builder",
"env": {
@@ -2921,7 +2947,7 @@
},
{
"cmd": [],
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -2950,7 +2976,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.get terminal.qemu-x64 product bundle",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.get terminal.qemu-x64 product bundle",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -2963,7 +2989,7 @@
"terminal.qemu-x64",
"--headless",
"--log",
- "/path/to/tmp/"
+ "[CLEANUP]/emulator_log_tmp_1"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -2982,11 +3008,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.launch x64 emulator with QEMU engine",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.launch x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@2@@@"
]
},
{
@@ -3014,7 +3038,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.start fserve",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.start fserve",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3041,7 +3065,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart-aot-runner-integration-test-0.far",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.publishing dart-aot-runner-integration-test-0.far",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3068,34 +3092,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_aot_runner-0.far",
- "~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@"
- ]
- },
- {
- "cmd": [
- "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fpublish",
- "dart_jit_echo_server.far"
- ],
- "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.publishing dart_jit_echo_server.far",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.publishing dart_aot_runner-0.far",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3105,7 +3102,7 @@
"[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
"test",
"run",
- "fuchsia-pkg://fuchsia.com/dart-jit-runner-integration-test#meta/dart-jit-runner-integration-test.cm"
+ "fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -3124,7 +3121,7 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.run ffx test",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.run ffx test",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -3152,7 +3149,65 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.dump ffx log",
+ "name": "FEMU Test.run FEMU Test run-on-both-arch.ffx log dump",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@emulator_log@log@@@",
+ "@@@STEP_LOG_END@emulator_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test run-on-both-arch.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test run-on-both-arch.stop x64 emulator",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/engine/femu_test.expected/test-run test_command.json b/recipes/engine/femu_test.expected/test_run_command.json
similarity index 98%
rename from recipes/engine/femu_test.expected/test-run test_command.json
rename to recipes/engine/femu_test.expected/test_run_command.json
index 83a7065..eb85152 100644
--- a/recipes/engine/femu_test.expected/test-run test_command.json
+++ b/recipes/engine/femu_test.expected/test_run_command.json
@@ -2963,7 +2963,7 @@
"terminal.qemu-x64",
"--headless",
"--log",
- "/path/to/tmp/"
+ "[CLEANUP]/emulator_log_tmp_1"
],
"cwd": "[CLEANUP]/vdl_runfiles__tmp_1",
"env": {
@@ -2982,11 +2982,9 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.launch x64 emulator with QEMU engine",
+ "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.launch x64 emulator",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_LOG_LINE@emulator_log@@@@",
- "@@@STEP_LOG_END@emulator_log@@@"
+ "@@@STEP_NEST_LEVEL@2@@@"
]
},
{
@@ -3152,7 +3150,65 @@
"RECIPE_REPO[depot_tools]"
]
},
- "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.dump ffx log",
+ "name": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.ffx log dump",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@emulator_log@log@@@",
+ "@@@STEP_LOG_END@emulator_log@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/fserve",
+ "-kill"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.kill fserve",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[CACHE]/builder/src/fuchsia/sdk/linux/tools/x64/ffx",
+ "emu",
+ "stop",
+ "--all"
+ ],
+ "cwd": "[CLEANUP]/vdl_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": "FEMU Test.run FEMU Test dart-jit-runner-integration-test.stop x64 emulator",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/engine/femu_test.py b/recipes/engine/femu_test.py
index d741f99..8801b60 100644
--- a/recipes/engine/femu_test.py
+++ b/recipes/engine/femu_test.py
@@ -37,12 +37,21 @@
PROPERTIES = InputProperties
ENV_PROPERTIES = EnvProperties
+FSERVE_PORT = 8084
def GetCheckoutPath(api):
return api.path['cache'].join('builder', 'src')
+def GetEmulatorArch(api):
+ arch = api.properties.get('emulator_arch', 'x64')
+ if arch not in ['arm64', 'x64']:
+ api.step.StepWarning('invalid architecture: %s - defaulting to x64' % arch)
+ return 'x64'
+ return arch
+
+
def Build(api, config, *targets):
checkout = GetCheckoutPath(api)
build_dir = checkout.join('out/%s' % config)
@@ -62,16 +71,17 @@
def BuildAndTestFuchsia(api, build_script, git_rev):
+ arch = GetEmulatorArch(api)
# Prepares build files for debug/JIT Fuchsia
- RunGN(api, '--fuchsia', '--fuchsia-cpu', 'x64', '--runtime-mode', 'debug',
+ RunGN(api, '--fuchsia', '--fuchsia-cpu', arch, '--runtime-mode', 'debug',
'--no-lto')
# Prepares build files for profile/AOT Fuchsia
- RunGN(api, '--fuchsia', '--fuchsia-cpu', 'x64', '--runtime-mode', 'profile',
+ RunGN(api, '--fuchsia', '--fuchsia-cpu', arch, '--runtime-mode', 'profile',
'--no-lto')
# Builds debug/JIT Fuchsia
- Build(api, 'fuchsia_debug_x64', *GetFlutterFuchsiaBuildTargets(False, True))
+ Build(api, 'fuchsia_debug_%s' % arch, *GetFlutterFuchsiaBuildTargets(False, True))
# Builds profile/AOT Fuchsia
- Build(api, 'fuchsia_profile_x64', *GetFlutterFuchsiaBuildTargets(False, True))
+ Build(api, 'fuchsia_profile_%s' % arch, *GetFlutterFuchsiaBuildTargets(False, True))
# Package the build artifacts.
#
@@ -82,11 +92,11 @@
# TODO(akbiggs): Clean this up if we feel brave.
fuchsia_debug_package_cmd = [
'python', build_script, '--engine-version', git_rev, '--skip-build',
- '--archs', 'x64', '--runtime-mode', 'debug',
+ '--archs', arch, '--runtime-mode', 'debug',
]
fuchsia_profile_package_cmd = [
'python', build_script, '--engine-version', git_rev, '--skip-build',
- '--archs', 'x64', '--runtime-mode', 'profile', '--skip-remove-buckets'
+ '--archs', arch, '--runtime-mode', 'profile', '--skip-remove-buckets'
]
api.step('Package Debug/JIT Fuchsia Artifacts', fuchsia_debug_package_cmd)
api.step('Package Profile/AOT Fuchsia Artifacts', fuchsia_profile_package_cmd)
@@ -168,13 +178,22 @@
add(ssh_config, "ssh_config")
def addFlutterTests():
+ arch = GetEmulatorArch(api)
add(
- checkout.join('out', 'fuchsia_bucket', 'flutter', 'x64', 'debug', 'aot',
+ checkout.join('out', 'fuchsia_bucket', 'flutter', arch, 'debug', 'aot',
'flutter_aot_runner-0.far'), 'flutter_aot_runner-0.far')
test_suites_file = checkout.join(
'flutter', 'testing', 'fuchsia', 'test_suites.yaml')
+
for suite in api.yaml.read('Retrieve list of test suites',
test_suites_file, api.json.output()).json.output:
+ # Default behavior is to run all tests on x64 if "emulator_arch" not present
+ # If "emulator_arch" is present, we run based on the emulator_arch specified
+ # x64 - femu_test.py
+ # arm64 - arm_femu_test.py
+ if arch not in suite.get('emulator_arch', ['x64']):
+ continue
+
# Ensure command is well-formed.
# See https://fuchsia.dev/fuchsia-src/concepts/packages/package_url.
match = re.match(r'^(run-test-component|run-test-suite|test-run) (?P<test_far_file>fuchsia-pkg://[0-9a-z\-_\.]+/(?P<name>[0-9a-z\-_\.]+)#meta/[0-9a-z\-_\.]+(\.cm|\.cmx))( +[0-9a-zA-Z\-_*\.: =]+)?$', suite['test_command'])
@@ -193,9 +212,9 @@
basename = re.match(r'(:?.*/)*([^/]*$)', path).group(2)
suite['package_basenames'].append(basename)
if suite['run_with_dart_aot']:
- add(checkout.join('out', 'fuchsia_profile_x64', path), basename)
+ add(checkout.join('out', 'fuchsia_profile_%s' % arch, path), basename)
else:
- add(checkout.join('out', 'fuchsia_debug_x64', path), basename)
+ add(checkout.join('out', 'fuchsia_debug_%s' % arch, path), basename)
test_suites.append(suite)
def addTestScript():
@@ -217,6 +236,8 @@
def TestFuchsiaFEMU(api):
"""Run flutter tests on FEMU."""
test_suites, root_dir, cas_hash = CasRoot(api)
+ arch = GetEmulatorArch(api)
+
cmd = ['./run_vdl_test.sh']
# These flags will be passed through to VDL
cmd.append('--emulator_binary_path=aemu/emulator')
@@ -250,21 +271,69 @@
fserve = checkout.join('fuchsia/sdk/linux/tools/x64/fserve')
fpublish = checkout.join('fuchsia/sdk/linux/tools/x64/fpublish')
- with api.context(cwd=root_dir), api.step.nest('FEMU Test'), api.step.defer_results():
+ with api.context(
+ cwd=root_dir), api.step.nest('FEMU Test'), api.step.defer_results():
for suite in test_suites:
if 'test-run' in suite['test_command']:
- with api.context(cwd=root_dir), api.step.nest('run FEMU Test %s' % suite['name']):
- api.step('get terminal.qemu-x64 product bundle', [ffx, 'product-bundle', 'get', 'terminal.qemu-x64'])
- deferred_launch_step = api.step('launch x64 emulator with QEMU engine', [ffx, 'emu', 'start', 'terminal.qemu-x64', '--headless', '--log', api.raw_io.output_text(name='emulator_log')])
- launch_step = deferred_launch_step.get_result()
- launch_step.presentation.logs['emulator_log'] = launch_step.raw_io.output_texts['emulator_log']
- api.step('start fserve', [fserve, '-image', 'qemu-x64', '-server-port', '8084'])
+ with api.step.nest('run FEMU Test %s' % suite['name']):
+ # Retrieve the required product bundle
+ # Contains necessary images, packages, etc to launch the emulator
+ api.step('get terminal.qemu-%s product bundle' % arch,
+ [ffx, 'product-bundle', 'get',
+ 'terminal.qemu-%s' % arch])
+ # 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':
+ deferred_launch_step = api.step(
+ 'launch arm64 emulator with QEMU engine', [
+ ffx, '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:
+ deferred_launch_step = api.step(
+ 'launch x64 emulator', [
+ ffx, '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')))
+
+ # 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])
- api.step('run ffx test', [ffx, 'test', 'run', suite['test_far_file']])
- api.step('dump ffx log', [ffx, 'log', 'dump'])
+ # Run the actual test
+ api.retry.step('run ffx test',
+ [ffx, 'test', 'run', suite['test_far_file']])
+
+ # Outputs ffx log and emulator_log for debugging
+ deferred_dump_step = api.step('ffx log dump', [ffx, 'log', 'dump'])
+ dump_step = deferred_dump_step.get_result()
+ launch_step = deferred_launch_step.get_result()
+ # 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']
+
+ # Cleans up running processes to prevent clashing with future test runs
+ api.step('kill fserve', [fserve, '-kill'])
+ api.step('stop %s emulator' % arch, [ffx, 'emu', 'stop', '--all'])
else:
if suite['run_with_dart_aot']:
test_cmd = cmd + [
@@ -309,6 +378,7 @@
)
)
+
def BuildFuchsia(api):
"""
Schedules release builds for x64 on other bots, and then builds the x64 runners
@@ -746,7 +816,7 @@
)
yield api.test(
- 'test-run test_command',
+ 'test_run_command',
api.properties(
InputProperties(
goma_jobs='1024',
@@ -810,3 +880,208 @@
api.path['cache'].join('builder/ssh/ssh_host_key'),
),
)
+
+ yield api.test(
+ 'invalid_emulator_arch',
+ api.properties(
+ InputProperties(
+ goma_jobs='1024',
+ build_fuchsia=True,
+ test_fuchsia=True,
+ git_url='https://github.com/flutter/engine',
+ git_ref='refs/pull/1/head',
+ clobber=False,
+ emulator_arch='x32'
+ ),),
+ api.step_data(
+ 'Retrieve list of test suites.parse',
+ api.json.output([{
+ 'package':
+ 'v2_test-123.far',
+ 'test_command':
+ 'test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm'
+ }])),
+ api.step_data(
+ 'Retrieve list of test suites.read',
+ api.file.read_text("""# This is a comment.
+- package: v2_test-123.far
+ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm""")),
+ api.step_data(
+ 'Read manifest',
+ api.file.read_json({'id': '0.20200101.0.1'}),
+ ),
+ api.properties.environ(EnvProperties(SWARMING_TASK_ID='deadbeef')),
+ api.platform('linux', 64),
+ api.path.exists(
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/zircon-a.zbi'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm'),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/qemu-x64.tar.gz'
+ ),
+ api.path['cache'].join('builder/ssh/id_ed25519.pub'),
+ api.path['cache'].join('builder/ssh/id_ed25519'),
+ api.path['cache'].join('builder/ssh/ssh_host_key.pub'),
+ api.path['cache'].join('builder/ssh/ssh_host_key'),
+ ),
+ )
+
+ yield api.test(
+ 'run_on_test_specified_arch',
+ api.properties(
+ InputProperties(
+ goma_jobs='1024',
+ build_fuchsia=True,
+ test_fuchsia=True,
+ git_url='https://github.com/flutter/engine',
+ git_ref='refs/pull/1/head',
+ clobber=False,
+ ),),
+ api.step_data(
+ 'Retrieve list of test suites.parse',
+ api.json.output([{
+ 'test_command': 'test-run fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm',
+ 'packages': [
+ 'dart-aot-runner-integration-test-0.far',
+ 'dart_aot_runner-0.far',
+ ],
+ 'emulator_arch': [
+ 'x64',
+ 'arm64',
+ ]
+ },{
+ 'test_command': 'test-run fuchsia-pkg://fuchsia.com/only-run-on-arm64#meta/only-run-on-arm64',
+ 'packages': [
+ 'dart_aot_runner-0.far'
+ ],
+ 'emulator_arch': [
+ 'arm64'
+ ]
+ }])
+ ),
+ api.step_data(
+ 'Retrieve list of test suites.read',
+ api.file.read_text('''# This is a comment.
+- test_command: test-run fuchsia-pkg://fuchsia.com/run-on-both-arch#meta/run-on-both-arch.cm
+ run_with_dart_aot: true
+ packages:
+ - dart-aot-runner-integration-test-0.far
+ - dart_aot_runner-0.far
+ emulator_arch:
+ - x64
+ - arm64
+- test_command: test-run fuchsia-pkg://fuchsia.com/only-run-on-arm64#meta/only-run-on-arm64',
+ packages:
+ - dart_aot_runner-0.far'
+ emulator_arch:
+ - arm64''')
+ ),
+ api.step_data(
+ 'Read manifest',
+ api.file.read_json({'id': '0.20200101.0.1'}),
+ ),
+ api.properties.environ(EnvProperties(SWARMING_TASK_ID='deadbeef')),
+ api.platform('linux', 64),
+ api.path.exists(
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/zircon-a.zbi'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm'),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/qemu-x64.tar.gz'
+ ),
+ api.path['cache'].join('builder/ssh/id_ed25519.pub'),
+ api.path['cache'].join('builder/ssh/id_ed25519'),
+ api.path['cache'].join('builder/ssh/ssh_host_key.pub'),
+ api.path['cache'].join('builder/ssh/ssh_host_key'),
+ ),
+ )
+
+ yield api.test(
+ 'arm64_emulator_arch',
+ api.properties(
+ InputProperties(
+ goma_jobs='1024',
+ build_fuchsia=True,
+ test_fuchsia=True,
+ git_url='https://github.com/flutter/engine',
+ git_ref='refs/pull/1/head',
+ clobber=False,
+ emulator_arch='arm64'
+ ),),
+ api.step_data(
+ 'Retrieve list of test suites.parse',
+ api.json.output([{
+ 'package':
+ 'v2_test-123.far',
+ 'test_command':
+ 'test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm',
+ 'emulator_arch': ['arm64']
+ }])),
+ api.step_data(
+ 'Retrieve list of test suites.read',
+ api.file.read_text("""# This is a comment.
+- package: v2_test-123.far
+ test_command: test-run fuchsia-pkg://fuchsia.com/v2_test#meta/v2_test.cm
+ emulator_arch:
+ - arm64""")),
+ api.step_data(
+ 'Read manifest',
+ api.file.read_json({'id': '0.20200101.0.1'}),
+ ),
+ api.properties.environ(EnvProperties(SWARMING_TASK_ID='deadbeef')),
+ api.platform('linux', 64),
+ api.path.exists(
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/buildargs.gn'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/qemu-kernel.kernel'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/storage-full.blk'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_image/linux_intel_64/zircon-a.zbi'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/pm'),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/amber-files'
+ ),
+ api.path['cache'].join(
+ 'builder/0.20200101.0.1/fuchsia_packages/linux_intel_64/qemu-x64.tar.gz'
+ ),
+ api.path['cache'].join('builder/ssh/id_ed25519.pub'),
+ api.path['cache'].join('builder/ssh/id_ed25519'),
+ api.path['cache'].join('builder/ssh/ssh_host_key.pub'),
+ api.path['cache'].join('builder/ssh/ssh_host_key'),
+ ),
+ )