blob: 6ebc23675153d008173b93a572bbd52e0ac3ce65 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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);
}
|