feat: Add test recording and replay functionality to ImGuiTestHarness

- Introduced TestRecorder class to capture GUI automation RPCs and export them as JSON test scripts.
- Implemented StartRecording, StopRecording, and ReplayTest RPCs in ImGuiTestHarnessService.
- Updated imgui_test_harness.proto to include new RPCs and message definitions for recording and replay.
- Created TestScriptParser for reading and writing test scripts in JSON format.
- Enhanced DiscoverWidgetsRequest and DiscoveredWidget messages with detailed comments for clarity.
- Added ScopedSuspension mechanism in TestRecorder to manage recording state.
This commit is contained in:
scawful
2025-10-02 18:00:58 -04:00
parent e0b308a93f
commit d8f863a9ce
8 changed files with 1351 additions and 35 deletions

View File

@@ -238,8 +238,15 @@ if(YAZE_WITH_GRPC)
target_sources(yaze PRIVATE
${CMAKE_SOURCE_DIR}/src/app/core/imgui_test_harness_service.cc
${CMAKE_SOURCE_DIR}/src/app/core/imgui_test_harness_service.h
${CMAKE_SOURCE_DIR}/src/app/core/test_recorder.cc
${CMAKE_SOURCE_DIR}/src/app/core/test_recorder.h
${CMAKE_SOURCE_DIR}/src/app/core/test_script_parser.cc
${CMAKE_SOURCE_DIR}/src/app/core/test_script_parser.h
${CMAKE_SOURCE_DIR}/src/app/core/widget_discovery_service.cc
${CMAKE_SOURCE_DIR}/src/app/core/widget_discovery_service.h)
target_include_directories(yaze PRIVATE
${CMAKE_SOURCE_DIR}/third_party/json/include)
# Link gRPC libraries
target_link_libraries(yaze PRIVATE