Don't hardcode test filters. Read gtest_filters.yaml to determine disabled tests.
diff --git a/recipe_modules/adhoc_validation/examples/full.expected/invalid_validation.json b/recipe_modules/adhoc_validation/examples/full.expected/invalid_validation.json index 79d8ab8..c806571 100644 --- a/recipe_modules/adhoc_validation/examples/full.expected/invalid_validation.json +++ b/recipe_modules/adhoc_validation/examples/full.expected/invalid_validation.json
@@ -7,8 +7,18 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/adhoc_validation/examples/full.py\", line 19, in RunSteps", " api.adhoc_validation.run('Docs', validation, {}, {})", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/adhoc_validation/api.py\", line 37, in run", " raise AssertionError(msg)", "AssertionError: invalid is not listed in available_validations."
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json index 9f8a956..7bfa68d 100644 --- a/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json +++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages_tiggers_exception_and_package_exists.json
@@ -38,12 +38,26 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/examples/full.py\", line 22, in RunSteps", " 'test1.zip') # zip_name", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 47, in upload_folder", " bucket_name=bucket_name)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 81, in upload_folder_and_files", " self.safe_upload(local_zip, remote_zip, bucket_name=bucket_name)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/bucket_util/api.py\", line 124, in safe_upload", " raise AssertionError('%s already exists on cloud storage' % cloud_path)", "AssertionError: gs://flutter_infra_release/flutter/00000000-0000-0000-0000-000000001337/test1.zip already exists on cloud storage"
diff --git a/recipe_modules/json_util/examples/validate_json.expected/try invalid key.json b/recipe_modules/json_util/examples/validate_json.expected/try invalid key.json index b200b5b..a91bfc3 100644 --- a/recipe_modules/json_util/examples/validate_json.expected/try invalid key.json +++ b/recipe_modules/json_util/examples/validate_json.expected/try invalid key.json
@@ -47,10 +47,22 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/examples/validate_json.py\", line 14, in RunSteps", " api.json_util.validate_json(api.path['cache'])", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 23, in validate_json", " self.validate_builder_schema('try', try_json_data)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 76, in validate_builder_schema", " (key, self.m.json.dumps(builder))", "ValueError: Unsupported key: abc in builder: {\"abc\": \"def\"}"
diff --git a/recipe_modules/json_util/examples/validate_json.expected/try missing key name.json b/recipe_modules/json_util/examples/validate_json.expected/try missing key name.json index 3d16917..776dd7f 100644 --- a/recipe_modules/json_util/examples/validate_json.expected/try missing key name.json +++ b/recipe_modules/json_util/examples/validate_json.expected/try missing key name.json
@@ -47,10 +47,22 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/examples/validate_json.py\", line 14, in RunSteps", " api.json_util.validate_json(api.path['cache'])", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 23, in validate_json", " self.validate_builder_schema('try', try_json_data)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 85, in validate_builder_schema", " 'Missing key: name in builder: %s' % self.m.json.dumps(builder)", "ValueError: Missing key: name in builder: {\"repo\": \"abc\"}"
diff --git a/recipe_modules/json_util/examples/validate_json.expected/try missing key repo.json b/recipe_modules/json_util/examples/validate_json.expected/try missing key repo.json index f110246..b4c7dd6 100644 --- a/recipe_modules/json_util/examples/validate_json.expected/try missing key repo.json +++ b/recipe_modules/json_util/examples/validate_json.expected/try missing key repo.json
@@ -47,10 +47,22 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/examples/validate_json.py\", line 14, in RunSteps", " api.json_util.validate_json(api.path['cache'])", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 23, in validate_json", " self.validate_builder_schema('try', try_json_data)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/json_util/api.py\", line 81, in validate_builder_schema", " 'Missing key: repo in builder: %s' % self.m.json.dumps(builder)", "ValueError: Missing key: repo in builder: {\"name\": \"abc\"}"
diff --git a/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json b/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json index 48fb382..52d12ff 100644 --- a/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json +++ b/recipe_modules/repo_util/examples/unsupported.expected/unsupported.json
@@ -7,8 +7,18 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/examples/unsupported.py\", line 15, in RunSteps", " api.path['start_dir'].join('unsupported_repo'))", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 94, in checkout", " raise ValueError('Unsupported repo: %s' % name)", "ValueError: Unsupported repo: unsupported_repo"
diff --git a/recipe_modules/web_util/examples/full.expected/fail case.json b/recipe_modules/web_util/examples/full.expected/fail case.json index eede892..e4fddfb 100644 --- a/recipe_modules/web_util/examples/full.expected/fail case.json +++ b/recipe_modules/web_util/examples/full.expected/fail case.json
@@ -7,8 +7,18 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipe_modules/web_util/examples/full.py\", line 23, in RunSteps", " api.web_util.prepare_dependencies(engine_checkout_path)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/web_util/api.py\", line 172, in prepare_dependencies", " raise ValueError('Dependency %s not available.' % dep)", "ValueError: Dependency invalid_dependency not available."
diff --git a/recipes/devicelab/devicelab_drone.expected/no-task-name.json b/recipes/devicelab/devicelab_drone.expected/no-task-name.json index 6758846..6c46ac1 100644 --- a/recipes/devicelab/devicelab_drone.expected/no-task-name.json +++ b/recipes/devicelab/devicelab_drone.expected/no-task-name.json
@@ -7,6 +7,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipes/devicelab/devicelab_drone.py\", line 31, in RunSteps", " raise ValueError('A task_name property is required')", "ValueError: A task_name property is required"
diff --git a/recipes/devicelab/devicelab_drone_1_26_0.expected/no-task-name.json b/recipes/devicelab/devicelab_drone_1_26_0.expected/no-task-name.json index 95f0f86..5d8f97e 100644 --- a/recipes/devicelab/devicelab_drone_1_26_0.expected/no-task-name.json +++ b/recipes/devicelab/devicelab_drone_1_26_0.expected/no-task-name.json
@@ -7,6 +7,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipes/devicelab/devicelab_drone_1_26_0.py\", line 31, in RunSteps", " raise ValueError('A task_name property is required')", "ValueError: A task_name property is required"
diff --git a/recipes/devicelab/devicelab_drone_1_27_0.expected/no-task-name.json b/recipes/devicelab/devicelab_drone_1_27_0.expected/no-task-name.json index eaafc64..899cf1d 100644 --- a/recipes/devicelab/devicelab_drone_1_27_0.expected/no-task-name.json +++ b/recipes/devicelab/devicelab_drone_1_27_0.expected/no-task-name.json
@@ -7,6 +7,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " properties_def, api=api)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in invoke_with_properties", + " arg_names, **additional_args)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties", + " return callable_obj(*props, **additional_args)", " File \"RECIPE_REPO[flutter]/recipes/devicelab/devicelab_drone_1_27_0.py\", line 31, in RunSteps", " raise ValueError('A task_name property is required')", "ValueError: A task_name property is required"
diff --git a/recipes/engine/web_engine_drone.expected/linux-error.json b/recipes/engine/web_engine_drone.expected/linux-error.json index 9162573..4b3a18f 100644 --- a/recipes/engine/web_engine_drone.expected/linux-error.json +++ b/recipes/engine/web_engine_drone.expected/linux-error.json
@@ -218,8 +218,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " recipe_result = self.global_symbols['RunSteps'](*args)", " File \"RECIPE_REPO[flutter]/recipes/engine/web_engine_drone.py\", line 78, in RunSteps", " api.web_util.prepare_dependencies(checkout)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/web_util/api.py\", line 172, in prepare_dependencies", " raise ValueError('Dependency %s not available.' % dep)", "ValueError: Dependency invalid_dependency not available."
diff --git a/recipes/engine/web_engine_drone_1_26_0.expected/linux-error.json b/recipes/engine/web_engine_drone_1_26_0.expected/linux-error.json index 2365f11..73a7bbc 100644 --- a/recipes/engine/web_engine_drone_1_26_0.expected/linux-error.json +++ b/recipes/engine/web_engine_drone_1_26_0.expected/linux-error.json
@@ -218,8 +218,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " recipe_result = self.global_symbols['RunSteps'](*args)", " File \"RECIPE_REPO[flutter]/recipes/engine/web_engine_drone_1_26_0.py\", line 76, in RunSteps", " api.web_util.prepare_dependencies(checkout)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/web_util/api.py\", line 172, in prepare_dependencies", " raise ValueError('Dependency %s not available.' % dep)", "ValueError: Dependency invalid_dependency not available."
diff --git a/recipes/engine/web_engine_drone_1_27_0.expected/linux-error.json b/recipes/engine/web_engine_drone_1_27_0.expected/linux-error.json index ec08626..1a3c66e 100644 --- a/recipes/engine/web_engine_drone_1_27_0.expected/linux-error.json +++ b/recipes/engine/web_engine_drone_1_27_0.expected/linux-error.json
@@ -218,8 +218,14 @@ "The recipe has crashed at point 'Uncaught exception'!", "", "Traceback (most recent call last):", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", in run_steps", + " raw_result = recipe_obj.run_steps(api, engine)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", in run_steps", + " recipe_result = self.global_symbols['RunSteps'](*args)", " File \"RECIPE_REPO[flutter]/recipes/engine/web_engine_drone_1_27_0.py\", line 76, in RunSteps", " api.web_util.prepare_dependencies(checkout)", + " File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner", + " return func(*a, **kw)", " File \"RECIPE_REPO[flutter]/recipe_modules/web_util/api.py\", line 172, in prepare_dependencies", " raise ValueError('Dependency %s not available.' % dep)", "ValueError: Dependency invalid_dependency not available."
diff --git a/recipes/femu_test.expected/no_zircon_file.json b/recipes/femu_test.expected/no_zircon_file.json index b0862d2..d6f2c96 100644 --- a/recipes/femu_test.expected/no_zircon_file.json +++ b/recipes/femu_test.expected/no_zircon_file.json
@@ -513,6 +513,89 @@ "name": "Package Fuchsia Artifacts" }, { + "cmd": [], + "name": "Retrieve list of gtest filters", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@yaml@txt_tests: -ParagraphTest.*@@@", + "@@@STEP_LOG_LINE@yaml@fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure@@@", + "@@@STEP_LOG_END@yaml@@@" + ] + }, + { + "cmd": [ + "vpython", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[CACHE]/builder/src/flutter/testing/fuchsia/gtest_filters.yaml", + "/path/to/tmp/" + ], + "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]" + ] + }, + "infra_step": true, + "name": "Retrieve list of gtest filters.read", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@gtest_filters.yaml@txt_tests: -ParagraphTest.*@@@", + "@@@STEP_LOG_LINE@gtest_filters.yaml@fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure@@@", + "@@@STEP_LOG_END@gtest_filters.yaml@@@" + ] + }, + { + "cmd": [ + "vpython", + "-u", + "RECIPE_MODULE[flutter::yaml]/resources/parse_yaml.py", + "--yaml_file", + "[CACHE]/builder/src/flutter/testing/fuchsia/gtest_filters.yaml", + "--json_file", + "/path/to/tmp/json" + ], + "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": "Retrieve list of gtest filters.parse", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"fml_tests\": \"-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"txt_tests\": \"-ParagraphTest.*\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { "cmd": [ "vpython", "-u",
diff --git a/recipes/femu_test.expected/start_femu_with_vdl.json b/recipes/femu_test.expected/start_femu_with_vdl.json index ef1db44..ca7a306 100644 --- a/recipes/femu_test.expected/start_femu_with_vdl.json +++ b/recipes/femu_test.expected/start_femu_with_vdl.json
@@ -513,6 +513,89 @@ "name": "Package Fuchsia Artifacts" }, { + "cmd": [], + "name": "Retrieve list of gtest filters", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@yaml@txt_tests: -ParagraphTest.*@@@", + "@@@STEP_LOG_LINE@yaml@fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure@@@", + "@@@STEP_LOG_END@yaml@@@" + ] + }, + { + "cmd": [ + "vpython", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[CACHE]/builder/src/flutter/testing/fuchsia/gtest_filters.yaml", + "/path/to/tmp/" + ], + "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]" + ] + }, + "infra_step": true, + "name": "Retrieve list of gtest filters.read", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@gtest_filters.yaml@txt_tests: -ParagraphTest.*@@@", + "@@@STEP_LOG_LINE@gtest_filters.yaml@fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure@@@", + "@@@STEP_LOG_END@gtest_filters.yaml@@@" + ] + }, + { + "cmd": [ + "vpython", + "-u", + "RECIPE_MODULE[flutter::yaml]/resources/parse_yaml.py", + "--yaml_file", + "[CACHE]/builder/src/flutter/testing/fuchsia/gtest_filters.yaml", + "--json_file", + "/path/to/tmp/json" + ], + "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": "Retrieve list of gtest filters.parse", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"fml_tests\": \"-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"txt_tests\": \"-ParagraphTest.*\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { "cmd": [ "vpython", "-u",
diff --git a/recipes/femu_test.py b/recipes/femu_test.py index b6f0566..3ff0c4e 100644 --- a/recipes/femu_test.py +++ b/recipes/femu_test.py
@@ -17,6 +17,7 @@ 'depot_tools/depot_tools', 'flutter/json_util', 'flutter/repo_util', + 'flutter/yaml', 'fuchsia/display_util', 'fuchsia/sdk', 'fuchsia/ssh', @@ -176,35 +177,14 @@ def TestFuchsiaFEMU(api): """Run flutter tests on FEMU.""" + checkout = GetCheckoutPath(api) + gtest_filters_file = checkout.join('flutter', 'testing', 'fuchsia', + 'gtest_filters.yaml') + gtest_filters = api.yaml.read('Retrieve list of gtest filters', + gtest_filters_file, api.json.output()) test_args = { - 'txt_tests': - '--gtest_filter=-ParagraphTest.*', - 'fml_tests': - '--gtest_filter=-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure', - 'shell_tests': - ( - '--gtest_filter=-' - 'ShellTest.ReportTimingsIsCalledLaterInReleaseMode:' - 'ShellTest.ReportTimingsIsCalledSoonerInNonReleaseMode:' - 'ShellTest.CacheSkSLWorks:' - 'ShellTest.FrameRasterizedCallbackIsCalled:' - 'ShellTest.ExternalEmbedderNoThreadMerger:' - 'ShellTest.OnPlatformViewDestroyWithoutRasterThreadMerger:' - 'ShellTest.ReportTimingsIsCalledImmediatelyAfterTheFirstFrame:' - 'ShellTest.DisallowedDartVMFlag:' - 'ShellTest.SetResourceCacheSize:' - 'ShellTest.SetResourceCacheSizeEarly:' - 'ShellTest.SetResourceCacheSizeNotifiesDart:' - 'ShellTest.Screenshot:' - 'ShellTest.RasterizerScreenshot:' - 'ShellTest.DiscardLayerTreeOnResize:' - 'SkpWarmupTest.Basic:' - 'SkpWarmupTest.Image:' - 'FuchsiaShellTest.LocaltimesVaryOnTimezoneChanges'), - 'flutter_runner_scenic_tests': - '--gtest_filter=-SessionConnectionTest.*:CalculateNextLatchPointTest.*', - 'flutter_runner_tests': - '--gtest_filter=-EngineTest.SkpWarmup', + test_type: '--gtest_filter={filter}'.format(filter=gtest_filter) + for test_type, gtest_filter in gtest_filters.json.output.items() } flutter_tests, root_dir, isolated_hash = IsolateSymlink(api) cmd = ['./run_vdl_test.sh'] @@ -337,6 +317,18 @@ ), ), api.step_data( + 'Retrieve list of gtest filters.parse', + api.json.output({ + 'txt_tests': '-ParagraphTest.*', + 'fml_tests': '-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure' + }) + ), + api.step_data( + 'Retrieve list of gtest filters.read', + api.file.read_text('''txt_tests: -ParagraphTest.* +fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure''') + ), + api.step_data( 'Read manifest', api.file.read_json({'id': '0.20200101.0.1'}), ), @@ -384,6 +376,18 @@ vdl_version='g3-revision:vdl_fuchsia_xxxxxxxx_RC00', ),), api.step_data( + 'Retrieve list of gtest filters.parse', + api.json.output({ + 'txt_tests': '-ParagraphTest.*', + 'fml_tests': '-MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure' + }) + ), + api.step_data( + 'Retrieve list of gtest filters.read', + api.file.read_text('''txt_tests: -ParagraphTest.* +fml_tests: -MessageLoop.TimeSensistiveTest_*:FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure''') + ), + api.step_data( 'Read manifest', api.file.read_json({'id': '0.20200101.0.1'}), ),