diff options
| author | Pppp1116 <pcaiadoguerreiro@gmail.com> | 2026-04-03 13:26:49 +0100 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-04-04 08:26:24 -0400 |
| commit | 4c42269ce6c44af40ea63f048d67dc0b898c8213 (patch) | |
| tree | 469602f310004ec1c41bc99432abae9828b2012a /tests | |
| parent | d5b00bbc1759d2e8f6486152c0e622e57fc54b72 (diff) | |
monitor: centralize solitary and scanout eligibility checks
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/helpers/Drm.cpp | 32 |
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); +} |
