1*9c5db199SXin Li# Copyright 2020 The Chromium OS Authors. All rights reserved. 2*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be 3*9c5db199SXin Li# found in the LICENSE file. 4*9c5db199SXin Li 5*9c5db199SXin Li 6*9c5db199SXin Li# Set root for generated files. 7*9c5db199SXin Lilucicfg.config( 8*9c5db199SXin Li config_dir = "metadata/generated", 9*9c5db199SXin Li) 10*9c5db199SXin Li 11*9c5db199SXin Li# Load and register protos. 12*9c5db199SXin Liload("@stdlib//internal/descpb.star", "wellknown_descpb") 13*9c5db199SXin Liprotos = proto.new_descriptor_set( 14*9c5db199SXin Li name = "chromiumos", 15*9c5db199SXin Li blob = io.read_file("//metadata/proto/descpb.bin"), 16*9c5db199SXin Li deps = [wellknown_descpb], 17*9c5db199SXin Li) 18*9c5db199SXin Liprotos.register() 19*9c5db199SXin Li 20*9c5db199SXin Li 21*9c5db199SXin Liload('@proto//chromiumos/config/api/test/metadata/v1/metadata.proto', 22*9c5db199SXin Li metadata_pb = 'chromiumos.config.api.test.metadata.v1' 23*9c5db199SXin Li) 24*9c5db199SXin Liload('//metadata/tests.star', 'define_tests') 25*9c5db199SXin Li 26*9c5db199SXin Li 27*9c5db199SXin Lidef _specification(): 28*9c5db199SXin Li return metadata_pb.Specification( 29*9c5db199SXin Li remote_test_drivers = [metadata_pb.RemoteTestDriver( 30*9c5db199SXin Li name = 'remoteTestDrivers/tauto', 31*9c5db199SXin Li tests = define_tests(), 32*9c5db199SXin Li )] 33*9c5db199SXin Li ) 34*9c5db199SXin Li 35*9c5db199SXin Li 36*9c5db199SXin Li# Generate metadata proto output. 37*9c5db199SXin Lidef _generate(config): 38*9c5db199SXin Li """ 39*9c5db199SXin Li Serializes a proto message to files. 40*9c5db199SXin Li 41*9c5db199SXin Li A text proto and binary proto are written. 42*9c5db199SXin Li """ 43*9c5db199SXin Li def _generate_impl(ctx): 44*9c5db199SXin Li ctx.output["config.cfg"] = proto.to_jsonpb(config) 45*9c5db199SXin Li ctx.output["config.binaryproto"] = proto.to_wirepb(config) 46*9c5db199SXin Li lucicfg.generator(impl = _generate_impl) 47*9c5db199SXin Li 48*9c5db199SXin Li 49*9c5db199SXin Lidef generate(): 50*9c5db199SXin Li _generate(_specification()) 51