refactor: Rename GetTestStatusResponse enum for clarity

- Changed the enum name from Status to TestStatus in GetTestStatusResponse to improve clarity and better reflect its purpose.
- Updated the corresponding function ConvertHarnessStatus to align with the new enum name, ensuring consistency across the codebase.
This commit is contained in:
scawful
2025-10-09 21:24:06 -04:00
parent 74a5144128
commit 0491781dd5
3 changed files with 94 additions and 87 deletions

View File

@@ -109,7 +109,7 @@ struct RPCState {
namespace {
::yaze::test::GetTestStatusResponse_Status ConvertHarnessStatus(
::yaze::test::GetTestStatusResponse_TestStatus ConvertHarnessStatus(
::yaze::test::HarnessTestStatus status) {
switch (status) {
case ::yaze::test::HarnessTestStatus::kQueued:

View File

@@ -52,20 +52,20 @@ yaze::test::WidgetType ConvertWidgetTypeFilterToProto(WidgetTypeFilter filter) {
}
TestRunStatus ConvertStatusProto(
yaze::test::GetTestStatusResponse::Status status) {
using ProtoStatus = yaze::test::GetTestStatusResponse::Status;
yaze::test::GetTestStatusResponse::TestStatus status) {
using ProtoStatus = yaze::test::GetTestStatusResponse::TestStatus;
switch (status) {
case ProtoStatus::GetTestStatusResponse_Status_STATUS_QUEUED:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_QUEUED:
return TestRunStatus::kQueued;
case ProtoStatus::GetTestStatusResponse_Status_STATUS_RUNNING:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_RUNNING:
return TestRunStatus::kRunning;
case ProtoStatus::GetTestStatusResponse_Status_STATUS_PASSED:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_PASSED:
return TestRunStatus::kPassed;
case ProtoStatus::GetTestStatusResponse_Status_STATUS_FAILED:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_FAILED:
return TestRunStatus::kFailed;
case ProtoStatus::GetTestStatusResponse_Status_STATUS_TIMEOUT:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_TIMEOUT:
return TestRunStatus::kTimeout;
case ProtoStatus::GetTestStatusResponse_Status_STATUS_UNSPECIFIED:
case ProtoStatus::GetTestStatusResponse_TestStatus_STATUS_UNSPECIFIED:
default:
return TestRunStatus::kUnknown;
}
@@ -79,17 +79,17 @@ GuiAutomationClient::GuiAutomationClient(const std::string& server_address)
absl::Status GuiAutomationClient::Connect() {
#ifdef YAZE_WITH_GRPC
auto channel = grpc::CreateChannel(server_address_,
grpc::InsecureChannelCredentials());
auto channel =
grpc::CreateChannel(server_address_, grpc::InsecureChannelCredentials());
if (!channel) {
return absl::InternalError("Failed to create gRPC channel");
}
stub_ = yaze::test::ImGuiTestHarness::NewStub(channel);
if (!stub_) {
return absl::InternalError("Failed to create gRPC stub");
}
// Test connection with a ping
auto result = Ping("connection_test");
if (!result.ok()) {
@@ -97,7 +97,7 @@ absl::Status GuiAutomationClient::Connect() {
absl::StrFormat("Failed to connect to test harness at %s: %s",
server_address_, result.status().message()));
}
connected_ = true;
return absl::OkStatus();
#else
@@ -110,27 +110,28 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Ping(
const std::string& message) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::PingRequest request;
request.set_message(message);
yaze::test::PingResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Ping(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Ping RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = true;
result.message = absl::StrFormat("Server version: %s (timestamp: %lld)",
response.yaze_version(),
response.timestamp_ms());
result.message =
absl::StrFormat("Server version: %s (timestamp: %lld)",
response.yaze_version(), response.timestamp_ms());
result.execution_time = std::chrono::milliseconds(0);
result.test_id.clear();
return result;
@@ -144,7 +145,8 @@ absl::StatusOr<ReplayTestResult> GuiAutomationClient::ReplayTest(
const std::map<std::string, std::string>& parameter_overrides) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::ReplayTestRequest request;
@@ -191,7 +193,8 @@ absl::StatusOr<StartRecordingResult> GuiAutomationClient::StartRecording(
const std::string& description) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::StartRecordingRequest request;
@@ -223,7 +226,8 @@ absl::StatusOr<StopRecordingResult> GuiAutomationClient::StopRecording(
const std::string& recording_id, bool discard) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
if (recording_id.empty()) {
return absl::InvalidArgumentError("recording_id must not be empty");
@@ -258,46 +262,43 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Click(
const std::string& target, ClickType type) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::ClickRequest request;
request.set_target(target);
switch (type) {
case ClickType::kLeft:
request.set_type(
yaze::test::ClickRequest::CLICK_TYPE_LEFT);
request.set_type(yaze::test::ClickRequest::CLICK_TYPE_LEFT);
break;
case ClickType::kRight:
request.set_type(
yaze::test::ClickRequest::CLICK_TYPE_RIGHT);
request.set_type(yaze::test::ClickRequest::CLICK_TYPE_RIGHT);
break;
case ClickType::kMiddle:
request.set_type(
yaze::test::ClickRequest::CLICK_TYPE_MIDDLE);
request.set_type(yaze::test::ClickRequest::CLICK_TYPE_MIDDLE);
break;
case ClickType::kDouble:
request.set_type(
yaze::test::ClickRequest::CLICK_TYPE_DOUBLE);
request.set_type(yaze::test::ClickRequest::CLICK_TYPE_DOUBLE);
break;
}
yaze::test::ClickResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Click(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Click RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = response.success();
result.message = response.message();
result.execution_time = std::chrono::milliseconds(
response.execution_time_ms());
result.execution_time =
std::chrono::milliseconds(response.execution_time_ms());
result.test_id = response.test_id();
return result;
#else
@@ -309,29 +310,30 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Type(
const std::string& target, const std::string& text, bool clear_first) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::TypeRequest request;
request.set_target(target);
request.set_text(text);
request.set_clear_first(clear_first);
yaze::test::TypeResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Type(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Type RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = response.success();
result.message = response.message();
result.execution_time = std::chrono::milliseconds(
response.execution_time_ms());
result.execution_time =
std::chrono::milliseconds(response.execution_time_ms());
result.test_id = response.test_id();
return result;
#else
@@ -343,29 +345,29 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Wait(
const std::string& condition, int timeout_ms, int poll_interval_ms) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::WaitRequest request;
request.set_condition(condition);
request.set_timeout_ms(timeout_ms);
request.set_poll_interval_ms(poll_interval_ms);
yaze::test::WaitResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Wait(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Wait RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = response.success();
result.message = response.message();
result.execution_time = std::chrono::milliseconds(
response.elapsed_ms());
result.execution_time = std::chrono::milliseconds(response.elapsed_ms());
result.test_id = response.test_id();
return result;
#else
@@ -377,22 +379,23 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Assert(
const std::string& condition) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::AssertRequest request;
request.set_condition(condition);
yaze::test::AssertResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Assert(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Assert RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = response.success();
result.message = response.message();
@@ -410,25 +413,26 @@ absl::StatusOr<AutomationResult> GuiAutomationClient::Screenshot(
const std::string& region, const std::string& format) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::ScreenshotRequest request;
request.set_window_title(""); // Empty = main window
request.set_window_title(""); // Empty = main window
request.set_output_path("/tmp/yaze_screenshot.png"); // Default path
request.set_format(
yaze::test::ScreenshotRequest::IMAGE_FORMAT_PNG); // Always PNG for now
yaze::test::ScreenshotResponse response;
grpc::ClientContext context;
grpc::Status status = stub_->Screenshot(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("Screenshot RPC failed: %s", status.error_message()));
}
AutomationResult result;
result.success = response.success();
result.message = response.message();
@@ -444,7 +448,8 @@ absl::StatusOr<TestStatusDetails> GuiAutomationClient::GetTestStatus(
const std::string& test_id) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::GetTestStatusRequest request;
@@ -456,8 +461,8 @@ absl::StatusOr<TestStatusDetails> GuiAutomationClient::GetTestStatus(
grpc::Status status = stub_->GetTestStatus(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("GetTestStatus RPC failed: %s", status.error_message()));
return absl::InternalError(absl::StrFormat("GetTestStatus RPC failed: %s",
status.error_message()));
}
TestStatusDetails details;
@@ -481,7 +486,8 @@ absl::StatusOr<ListTestsResult> GuiAutomationClient::ListTests(
const std::string& page_token) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::ListTestsRequest request;
@@ -534,7 +540,8 @@ absl::StatusOr<TestResultDetails> GuiAutomationClient::GetTestResults(
const std::string& test_id, bool include_logs) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::GetTestResultsRequest request;
@@ -547,9 +554,8 @@ absl::StatusOr<TestResultDetails> GuiAutomationClient::GetTestResults(
grpc::Status status = stub_->GetTestResults(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("GetTestResults RPC failed: %s",
status.error_message()));
return absl::InternalError(absl::StrFormat("GetTestResults RPC failed: %s",
status.error_message()));
}
TestResultDetails result;
@@ -594,7 +600,8 @@ absl::StatusOr<DiscoverWidgetsResult> GuiAutomationClient::DiscoverWidgets(
const DiscoverWidgetsQuery& query) {
#ifdef YAZE_WITH_GRPC
if (!stub_) {
return absl::FailedPreconditionError("Not connected. Call Connect() first.");
return absl::FailedPreconditionError(
"Not connected. Call Connect() first.");
}
yaze::test::DiscoverWidgetsRequest request;
@@ -613,9 +620,8 @@ absl::StatusOr<DiscoverWidgetsResult> GuiAutomationClient::DiscoverWidgets(
grpc::Status status = stub_->DiscoverWidgets(&context, request, &response);
if (!status.ok()) {
return absl::InternalError(
absl::StrFormat("DiscoverWidgets RPC failed: %s",
status.error_message()));
return absl::InternalError(absl::StrFormat("DiscoverWidgets RPC failed: %s",
status.error_message()));
}
DiscoverWidgetsResult result;
@@ -651,7 +657,8 @@ absl::StatusOr<DiscoverWidgetsResult> GuiAutomationClient::DiscoverWidgets(
}
widget.widget_id = widget_proto.widget_id();
widget.last_seen_frame = widget_proto.last_seen_frame();
widget.last_seen_at = OptionalTimeFromMillis(widget_proto.last_seen_at_ms());
widget.last_seen_at =
OptionalTimeFromMillis(widget_proto.last_seen_at_ms());
widget.stale = widget_proto.stale();
window_info.widgets.push_back(std::move(widget));
}

View File

@@ -158,7 +158,7 @@ message GetTestStatusRequest {
}
message GetTestStatusResponse {
enum Status {
enum TestStatus {
STATUS_UNSPECIFIED = 0; // Test ID not found or unspecified
STATUS_QUEUED = 1; // Waiting to execute
STATUS_RUNNING = 2; // Currently executing
@@ -167,7 +167,7 @@ message GetTestStatusResponse {
STATUS_TIMEOUT = 5; // Exceeded timeout
}
Status status = 1;
TestStatus status = 1;
int64 queued_at_ms = 2; // When test was queued
int64 started_at_ms = 3; // When test started (0 if not started)
int64 completed_at_ms = 4; // When test completed (0 if not complete)