2025-12-08 16:41:41 +03:30
|
|
|
import renderer.frontend;
|
|
|
|
|
import renderer.test_utils;
|
2025-10-09 14:08:14 +00:00
|
|
|
|
2025-10-01 17:31:46 +03:30
|
|
|
Suite raii = "pass_raii"_suite = [] {
|
|
|
|
|
Case { "happy path won't throw" } = [] {
|
2025-12-08 16:41:41 +03:30
|
|
|
auto fixture = FixtureDeviceSwapchain {};
|
|
|
|
|
std::ignore = lt::renderer::create_pass(
|
2025-10-07 16:09:50 +03:30
|
|
|
constants::api,
|
2025-12-08 16:41:41 +03:30
|
|
|
fixture.device(),
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
|
|
|
);
|
2025-10-09 14:08:14 +00:00
|
|
|
|
2025-12-08 16:41:41 +03:30
|
|
|
expect_false(fixture.has_any_messages_of(lt::renderer::IDebugger ::MessageSeverity::error));
|
|
|
|
|
expect_false(
|
|
|
|
|
fixture.has_any_messages_of(lt::renderer::IDebugger ::MessageSeverity::warning)
|
|
|
|
|
);
|
2025-10-07 16:09:50 +03:30
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Case { "unhappy path throws" } = [] {
|
2025-12-08 16:41:41 +03:30
|
|
|
auto fixture = FixtureDeviceSwapchain {};
|
2025-10-07 16:09:50 +03:30
|
|
|
expect_throw([&] {
|
2025-12-08 16:41:41 +03:30
|
|
|
std::ignore = lt::renderer::create_pass(
|
2025-10-07 16:09:50 +03:30
|
|
|
constants::api,
|
|
|
|
|
nullptr,
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
expect_throw([&] {
|
2025-12-08 16:41:41 +03:30
|
|
|
std::ignore = lt::renderer::create_pass(
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::renderer::Api::none,
|
2025-12-08 16:41:41 +03:30
|
|
|
fixture.device(),
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
|
|
|
);
|
|
|
|
|
});
|
2025-10-01 17:31:46 +03:30
|
|
|
|
2025-10-07 16:09:50 +03:30
|
|
|
expect_throw([&] {
|
2025-12-08 16:41:41 +03:30
|
|
|
std::ignore = lt::renderer::create_pass(
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::renderer::Api::direct_x,
|
2025-12-08 16:41:41 +03:30
|
|
|
fixture.device(),
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
|
|
|
);
|
|
|
|
|
});
|
2025-10-01 17:31:46 +03:30
|
|
|
|
2025-10-07 16:09:50 +03:30
|
|
|
expect_throw([&] {
|
2025-12-08 16:41:41 +03:30
|
|
|
std::ignore = lt::renderer::create_pass(
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::renderer::Api::metal,
|
2025-12-08 16:41:41 +03:30
|
|
|
fixture.device(),
|
2025-10-07 16:09:50 +03:30
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
|
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
|
|
|
);
|
|
|
|
|
});
|
2025-10-01 17:31:46 +03:30
|
|
|
};
|
|
|
|
|
};
|