74 lines
2.2 KiB
C++
74 lines
2.2 KiB
C++
#include <assets/shader.hpp>
|
|
#include <renderer/frontend/renderer/pass.hpp>
|
|
#include <renderer/test/utils.hpp>
|
|
|
|
Suite raii = "pass_raii"_suite = [] {
|
|
Case { "happy path won't throw" } = [] {
|
|
auto fixture = Fixture_RendererSystem {};
|
|
auto &system = fixture.renderer_system();
|
|
|
|
std::ignore = lt::renderer::IPass::create(
|
|
constants::api,
|
|
system.get_device(),
|
|
system.get_swapchain(),
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
};
|
|
|
|
Case { "unhappy path throws" } = [] {
|
|
auto fixture = Fixture_RendererSystem {};
|
|
auto &system = fixture.renderer_system();
|
|
|
|
expect_throw([&] {
|
|
std::ignore = lt::renderer::IPass::create(
|
|
constants::api,
|
|
nullptr,
|
|
system.get_swapchain(),
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
});
|
|
|
|
|
|
expect_throw([&] {
|
|
std::ignore = lt::renderer::IPass::create(
|
|
constants::api,
|
|
system.get_device(),
|
|
nullptr,
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
});
|
|
|
|
expect_throw([&] {
|
|
std::ignore = lt::renderer::IPass::create(
|
|
lt::renderer::Api::none,
|
|
system.get_device(),
|
|
system.get_swapchain(),
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
});
|
|
|
|
expect_throw([&] {
|
|
std::ignore = lt::renderer::IPass::create(
|
|
lt::renderer::Api::direct_x,
|
|
system.get_device(),
|
|
system.get_swapchain(),
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
});
|
|
|
|
expect_throw([&] {
|
|
std::ignore = lt::renderer::IPass::create(
|
|
lt::renderer::Api::metal,
|
|
system.get_device(),
|
|
system.get_swapchain(),
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.vert.asset" },
|
|
lt::assets::ShaderAsset { "./data/test_assets/triangle.frag.asset" }
|
|
);
|
|
});
|
|
};
|
|
};
|