chromium/ios/testing/plugin/test_plugin_service.proto

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package ios_test_plugin;

option optimize_for = LITE_RUNTIME;

service TestPluginService {
  // API to signal the plugin service that a test case is about to start
  rpc TestCaseWillStart(TestCaseWillStartRequest)
      returns (TestCaseWillStartResponse) {};

  // API to signal the plugin service that a test case has finished running
  rpc TestCaseDidFinish(TestCaseDidFinishRequest)
      returns (TestCaseDidFinishResponse) {};

  // API to signal the plugin service that a test case failed unexpectedly
  rpc TestCaseDidFail(TestCaseDidFailRequest)
      returns (TestCaseDidFailResponse) {};

  // API to signal the plugin service that the test bundle is about to finish
  rpc TestBundleWillFinish(TestBundleWillFinishRequest)
      returns (TestBundleWillFinishResponse) {};

  // API to check on what plugins are enabled for the current test run
  rpc ListEnabledPlugins(ListEnabledPluginsRequest)
      returns (ListEnabledPluginsResponse) {};
}

// Request to signal that a test case is about to start
message TestCaseWillStartRequest {
  TestCaseInfo test_case_info = 1;
  DeviceInfo device_info = 2;
}
// Empty response because gRPC doesn't support null response
message TestCaseWillStartResponse {}

// Request to signal that a test case is finished
message TestCaseDidFinishRequest {
  TestCaseInfo test_case_info = 1;
  DeviceInfo device_info = 2;
}
// Empty response
message TestCaseDidFinishResponse {}

// Request to signal that a test case failed unexpectedly
message TestCaseDidFailRequest {
  TestCaseInfo test_case_info = 1;
  DeviceInfo device_info = 2;
}
// Empty response
message TestCaseDidFailResponse {}

// Request to signal that test bundle is about to finish
message TestBundleWillFinishRequest {
  DeviceInfo device_info = 1;
}

// Empty response
message TestBundleWillFinishResponse {}

// Request to get the list of enabled plugins
message ListEnabledPluginsRequest {}
// Response for a list of enabled plugins
message ListEnabledPluginsResponse {
  repeated string enabled_plugins = 1;
}

message TestCaseInfo {
  string name = 1;
}
message DeviceInfo {
  string name = 1;
}