From 4c42269ce6c44af40ea63f048d67dc0b898c8213 Mon Sep 17 00:00:00 2001 From: Pppp1116 Date: Fri, 3 Apr 2026 13:26:49 +0100 Subject: monitor: centralize solitary and scanout eligibility checks --- tests/helpers/Drm.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/helpers/Drm.cpp (limited to 'tests') diff --git a/tests/helpers/Drm.cpp b/tests/helpers/Drm.cpp new file mode 100644 index 00000000..6ebc2367 --- /dev/null +++ b/tests/helpers/Drm.cpp @@ -0,0 +1,32 @@ +#include + +#include + +#include +#include +#include + +TEST(Helpers, drmDevIDFromFDCharacterDevice) { + const int FD = open("/dev/null", O_RDONLY | O_CLOEXEC); + ASSERT_GE(FD, 0); + + struct stat stat = {}; + ASSERT_EQ(fstat(FD, &stat), 0); + + const auto devID = DRM::devIDFromFD(FD); + EXPECT_TRUE(devID.has_value()); + EXPECT_EQ(*devID, stat.st_rdev); + + close(FD); +} + +TEST(Helpers, drmDevIDFromFDRejectsRegularFiles) { + char path[] = "/tmp/hyprland-drm-testXXXXXX"; + const int FD = mkstemp(path); + ASSERT_GE(FD, 0); + + EXPECT_FALSE(DRM::devIDFromFD(FD).has_value()); + + close(FD); + unlink(path); +} -- cgit v1.2.3