light/modules/renderer/_tests/pass.cpp

59 lines
1.8 KiB
C++
Raw Normal View History

2025-12-08 16:41:41 +03:30
import renderer.frontend;
import renderer.test_utils;
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(
constants::api,
2025-12-08 16:41:41 +03:30
fixture.device(),
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
);
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)
);
};
Case { "unhappy path throws" } = [] {
2025-12-08 16:41:41 +03:30
auto fixture = FixtureDeviceSwapchain {};
expect_throw([&] {
2025-12-08 16:41:41 +03:30
std::ignore = lt::renderer::create_pass(
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(
lt::renderer::Api::none,
2025-12-08 16:41:41 +03:30
fixture.device(),
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
expect_throw([&] {
2025-12-08 16:41:41 +03:30
std::ignore = lt::renderer::create_pass(
lt::renderer::Api::direct_x,
2025-12-08 16:41:41 +03:30
fixture.device(),
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
expect_throw([&] {
2025-12-08 16:41:41 +03:30
std::ignore = lt::renderer::create_pass(
lt::renderer::Api::metal,
2025-12-08 16:41:41 +03:30
fixture.device(),
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
};
};