summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPppp1116 <pcaiadoguerreiro@gmail.com>2026-04-03 13:26:49 +0100
committerVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-04 08:26:24 -0400
commit4c42269ce6c44af40ea63f048d67dc0b898c8213 (patch)
tree469602f310004ec1c41bc99432abae9828b2012a /tests
parentd5b00bbc1759d2e8f6486152c0e622e57fc54b72 (diff)
monitor: centralize solitary and scanout eligibility checks
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers/Drm.cpp32
1 files changed, 32 insertions, 0 deletions
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 <helpers/Drm.hpp>
+
+#include <gtest/gtest.h>
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+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);
+}