light/modules/renderer/_tests/device.cpp

46 lines
1 KiB
C++
Raw Normal View History

2025-12-08 16:41:41 +03:30
import renderer.frontend;
import renderer.test_utils;
Suite raii = "device_raii"_suite = [] {
Case { "happy path won't throw" } = [] {
auto fixture = Fixture_SurfaceGpu {};
2025-12-08 16:41:41 +03:30
std::ignore = lt::renderer::create_device(constants::api, fixture.gpu(), fixture.surface());
};
Case { "unhappy path throws" } = [] {
auto fixture = Fixture_SurfaceGpu {};
expect_throw([&] {
2025-12-08 16:41:41 +03:30
ignore = lt::renderer::create_device(constants::api, nullptr, fixture.surface());
});
expect_throw([&] {
2025-12-08 16:41:41 +03:30
ignore = lt::renderer::create_device(constants::api, fixture.gpu(), nullptr);
});
expect_throw([&] {
2025-12-08 16:41:41 +03:30
ignore = lt::renderer::create_device(
lt::renderer::Api::none,
fixture.gpu(),
fixture.surface()
);
});
expect_throw([&] {
2025-12-08 16:41:41 +03:30
ignore = lt::renderer::create_device(
lt::renderer::Api::direct_x,
fixture.gpu(),
fixture.surface()
);
});
expect_throw([&] {
2025-12-08 16:41:41 +03:30
ignore = lt::renderer::create_device(
lt::renderer::Api::metal,
fixture.gpu(),
fixture.surface()
);
});
};
};