ref:main
/**
* @file tests/unit/platform/linux/test_wayland.cpp
* @brief Test Wayland output mode selection.
*/
#ifdef SUNSHINE_BUILD_WAYLAND
// test includes
#include "../../../tests_common.h"
// local includes
#include <src/platform/linux/wayland.h>
TEST(WaylandMonitorTest, IgnoresNonCurrentModesAroundCurrentMode) {
wl::monitor_t monitor {nullptr};
monitor.wl_mode(nullptr, WL_OUTPUT_MODE_PREFERRED, 1280, 720, 60000);
monitor.wl_mode(nullptr, WL_OUTPUT_MODE_CURRENT, 1920, 1080, 60000);
monitor.wl_mode(nullptr, 0, 2560, 1440, 60000);
EXPECT_EQ(monitor.viewport.width, 1920);
EXPECT_EQ(monitor.viewport.height, 1080);
}
TEST(WaylandMonitorTest, UpdatesCurrentMode) {
wl::monitor_t monitor {nullptr};
monitor.wl_mode(nullptr, WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED, 1920, 1080, 60000);
monitor.wl_mode(nullptr, WL_OUTPUT_MODE_CURRENT, 2560, 1440, 120000);
EXPECT_EQ(monitor.viewport.width, 2560);
EXPECT_EQ(monitor.viewport.height, 1440);
}
#endif