错误处理

This commit is contained in:
2026-08-16 17:53:46 +08:00
parent 00a3c54820
commit 8612b5ff86
47 changed files with 744 additions and 544 deletions
@@ -59,7 +59,9 @@ std::size_t colored_pixel_count(const Pixel_Frame& frame) {
TEST(PointRenderIntegration, RendersRealRgbaAndResizes) {
try {
auto demo = make_test_scene(Scene_Options{.viewport = {320, 200}});
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(demo.scene->render_scene().wait_for_render(),
Scene_Render_Error::none);
auto first = demo.scene->latest_frame();
ASSERT_NE(first, nullptr);
EXPECT_EQ(first->extent, (Extent{320, 200}));
@@ -67,7 +69,9 @@ TEST(PointRenderIntegration, RendersRealRgbaAndResizes) {
EXPECT_GT(colored_pixel_count(*first), 100U);
demo.scene->resize({480, 270});
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(demo.scene->render_scene().wait_for_render(),
Scene_Render_Error::none);
auto resized = demo.scene->latest_frame();
ASSERT_NE(resized, nullptr);
EXPECT_EQ(resized->extent, (Extent{480, 270}));
@@ -81,7 +85,9 @@ TEST(PointRenderIntegration, RendersRealRgbaAndResizes) {
TEST(PointRenderIntegration, KernelEventsReachDatovizArcballOnItsDomain) {
try {
auto demo = make_test_scene(Scene_Options{.viewport = {320, 200}});
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(demo.scene->render_scene().wait_for_render(),
Scene_Render_Error::none);
const auto before = demo.scene->latest_frame()->rgba8;
::renderive::Basic_Pointer_Event<Event_Point> press(
@@ -102,7 +108,9 @@ TEST(PointRenderIntegration, KernelEventsReachDatovizArcballOnItsDomain) {
release.button = ::renderive::Mouse_Button::Left;
demo.scene->dispatch(release);
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(demo.scene->render_scene().wait_for_render(),
Scene_Render_Error::none);
const auto after_drag = demo.scene->latest_frame();
ASSERT_NE(after_drag, nullptr);
EXPECT_NE(after_drag->rgba8, before);
@@ -113,7 +121,9 @@ TEST(PointRenderIntegration, KernelEventsReachDatovizArcballOnItsDomain) {
wheel.angle_delta_y = -216.0;
demo.scene->dispatch(wheel);
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(demo.scene->render_scene().wait_for_render(),
Scene_Render_Error::none);
const auto after_wheel = demo.scene->latest_frame();
ASSERT_NE(after_wheel, nullptr);
EXPECT_GT(colored_pixel_count(*after_wheel), 100U);
@@ -131,7 +141,8 @@ TEST(PointRenderIntegration,
const auto request = kernel_scene.capture_next_frame();
ASSERT_TRUE(request);
const Capture_Session_Id capture = request.session_id;
ASSERT_TRUE(demo.scene->request_frame());
ASSERT_EQ(demo.scene->request_frame(), Frame_Request_Error::none);
ASSERT_EQ(kernel_scene.wait_for_render(), Scene_Render_Error::none);
const auto session = kernel_scene.capture_session(capture);
ASSERT_TRUE(session);