light/modules/renderer/frontend/context/device.test.cpp
light7734 3c0dcb672e
Some checks reported errors
continuous-integration/drone/push Build was killed
wip: convert from include style to module import style :D
2025-11-07 22:59:33 +03:30

55 lines
1.3 KiB
C++

#include <memory/reference.hpp>
#include <ranges>
#include <renderer/frontend/context/device.hpp>
#include <renderer/frontend/context/surface.hpp>
#include <renderer/test/utils.hpp>
#include <surface/components.hpp>
#include <surface/system.hpp>
#include <test/test.hpp>
Suite raii = "device_raii"_suite = [] {
Case { "happy path won't throw" } = [] {
auto fixture = Fixture_SurfaceGpu {};
std::ignore = lt::renderer::IDevice::create(
constants::api,
fixture.gpu(),
fixture.surface()
);
};
Case { "unhappy path throws" } = [] {
auto fixture = Fixture_SurfaceGpu {};
expect_throw([&] {
ignore = lt::renderer::IDevice::create(constants::api, nullptr, fixture.surface());
});
expect_throw([&] {
ignore = lt::renderer::IDevice::create(constants::api, fixture.gpu(), nullptr);
});
expect_throw([&] {
ignore = lt::renderer::IDevice::create(
lt::renderer::Api::none,
fixture.gpu(),
fixture.surface()
);
});
expect_throw([&] {
ignore = lt::renderer::IDevice::create(
lt::renderer::Api::direct_x,
fixture.gpu(),
fixture.surface()
);
});
expect_throw([&] {
ignore = lt::renderer::IDevice::create(
lt::renderer::Api::metal,
fixture.gpu(),
fixture.surface()
);
});
};
};