blob: 2a1e45bb3046523939341a9554799c6cedaa0e9c [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from recipe_engine import recipe_test_api
from google.protobuf import json_format as jsonpb
from PB.go.fuchsia.dev.fuchsia.tools.integration.fint.proto import (
build_artifacts as fint_build_artifacts_pb2,
set_artifacts as fint_set_artifacts_pb2,
)
class FuchsiaBuildTestApi(recipe_test_api.RecipeTestApi):
def mock_triage_sources_manifest(self):
"""Returns a mock triage_sources.json file."""
return ["../../config.triage", "../../other/config.triage"]
def create_shards(self, with_multipliers=False):
"""Returns mock step data for test shards.
This should be used by any test which expects to shard tests.
Args:
with_multipliers (bool): Whether to create multiplier shards.
"""
shards = [
self.m.testsharder.shard(
name="Vim2",
tests=["test"],
dimensions=dict(device_type="Khadas Vim2 Max"),
),
]
if with_multipliers:
shards.append(
self.m.testsharder.shard(
name="multiplied:Vim2-test",
tests=["test"] * 2,
dimensions=dict(device_type="Khadas Vim2 Max"),
),
)
return self.m.testsharder.execute(step_name="create test shards", shards=shards)
def fint_build_artifacts_proto(self, **kwargs):
final_kwargs = {
"ninja_log_path": "/tmp/ninja_log.txt",
"ninja_compdb_path": "/tmp/ninja_compdb.json",
"ninja_graph_path": "/tmp/ninja_graph.dot",
"built_archives": [
{"name": "archive", "path": "build-archive.tgz", "type": "tgz"},
],
"built_images": [
{"name": "zircon-a", "type": "zbi", "path": "fuchsia.zbi"}
],
"ninja_duration_seconds": 15 * 60,
"log_files": {"some_cmd_stdout": "/tmp/stdout.txt"},
}
final_kwargs.update(kwargs)
proto = fint_build_artifacts_pb2.BuildArtifacts()
jsonpb.ParseDict(final_kwargs, proto)
return proto
def fint_build_artifacts(self, **kwargs):
proto = self.fint_build_artifacts_proto(**kwargs)
return self.step_data(
"build.read fint build artifacts", self.m.file.read_proto(proto)
)
def fint_set_artifacts(self, **kwargs):
kwargs.setdefault("use_goma", True)
return self.step_data(
"build.read fint set artifacts",
self.m.file.read_proto(fint_set_artifacts_pb2.SetArtifacts(**kwargs)),
)