Lines Matching refs:fd
32 void TestCreateRegion(size_t size, unique_fd &fd, int prot) { in TestCreateRegion() argument
33 fd = unique_fd(ashmem_create_region(nullptr, size)); in TestCreateRegion()
34 ASSERT_TRUE(fd >= 0); in TestCreateRegion()
35 ASSERT_TRUE(ashmem_valid(fd)); in TestCreateRegion()
36 ASSERT_EQ(size, static_cast<size_t>(ashmem_get_size_region(fd))); in TestCreateRegion()
37 ASSERT_EQ(0, ashmem_set_prot_region(fd, prot)); in TestCreateRegion()
42 ASSERT_EQ(FD_CLOEXEC, (fcntl(fd, F_GETFD) & FD_CLOEXEC)); in TestCreateRegion()
45 void TestMmap(const unique_fd& fd, size_t size, int prot, void** region, off_t off = 0) { in TestMmap() argument
46 ASSERT_TRUE(fd >= 0); in TestMmap()
47 ASSERT_TRUE(ashmem_valid(fd)); in TestMmap()
48 *region = mmap(nullptr, size, prot, MAP_SHARED, fd, off); in TestMmap()
52 void TestProtDenied(const unique_fd &fd, size_t size, int prot) { in TestProtDenied() argument
53 ASSERT_TRUE(fd >= 0); in TestProtDenied()
54 ASSERT_TRUE(ashmem_valid(fd)); in TestProtDenied()
55 EXPECT_EQ(MAP_FAILED, mmap(nullptr, size, prot, MAP_SHARED, fd, 0)); in TestProtDenied()
58 void TestProtIs(const unique_fd& fd, int prot) { in TestProtIs() argument
59 ASSERT_TRUE(fd >= 0); in TestProtIs()
60 ASSERT_TRUE(ashmem_valid(fd)); in TestProtIs()
61 EXPECT_EQ(prot, ioctl(fd, ASHMEM_GET_PROT_MASK)); in TestProtIs()
75 unique_fd fd; in TEST() local
76 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ | PROT_WRITE)); in TEST()
79 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_READ | PROT_WRITE, ®ion1)); in TEST()
87 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_READ, ®ion2)); in TEST()
97 unique_fd fd; in TEST() local
98 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ | PROT_WRITE)); in TEST()
101 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_READ | PROT_WRITE, ®ion1)); in TEST()
109 if (!ashmem_valid(fd)) { in TEST()
112 void* region2 = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); in TEST()
127 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_READ | PROT_WRITE, ®ion2)); in TEST()
133 unique_fd fd; in TEST() local
140 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ | PROT_WRITE)); in TEST()
141 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, dataSize, PROT_READ | PROT_WRITE, ®ion, holeSize)); in TEST()
172 ASSERT_TRUE(ashmem_valid(fd)); in TEST()
173 auto off = lseek(fd, cfg.offset, cfg.whence); in TEST()
182 ASSERT_EQ(readSize, TEMP_FAILURE_RETRY(read(fd, buf, readSize))); in TEST()
191 unique_fd fd; in TEST() local
195 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ)); in TEST()
196 TestProtDenied(fd, size, PROT_WRITE); in TEST()
197 TestProtIs(fd, PROT_READ); in TEST()
198 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_READ, ®ion)); in TEST()
201 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_WRITE)); in TEST()
202 TestProtDenied(fd, size, PROT_READ); in TEST()
203 TestProtIs(fd, PROT_WRITE); in TEST()
204 ASSERT_NO_FATAL_FAILURE(TestMmap(fd, size, PROT_WRITE, ®ion)); in TEST()
207 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ | PROT_WRITE)); in TEST()
208 TestProtIs(fd, PROT_READ | PROT_WRITE); in TEST()
209 ASSERT_EQ(0, ashmem_set_prot_region(fd, PROT_READ)); in TEST()
211 ASSERT_EQ(-1, ashmem_set_prot_region(fd, PROT_READ | PROT_WRITE)) in TEST()
214 TestProtIs(fd, PROT_READ); in TEST()
215 TestProtDenied(fd, size, PROT_WRITE); in TEST()
219 unique_fd fd; in TEST() local
224 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd, PROT_READ | PROT_WRITE)); in TEST()
227 if (!ashmem_valid(fd)) { in TEST()
229 } else if (ashmem_set_prot_region(fd, protFlags[i]) >= 0) { in TEST()
236 ASSERT_NO_FATAL_FAILURE(TestProtDenied(fd, size, protFlags[1-i])); in TEST()
246 unique_fd fd[nRegions]; in TEST() local
248 ASSERT_NO_FATAL_FAILURE(TestCreateRegion(size, fd[i], PROT_READ | PROT_WRITE)); in TEST()
250 ASSERT_NO_FATAL_FAILURE(TestMmap(fd[i], size, PROT_READ | PROT_WRITE, ®ion)); in TEST()
258 if (!ashmem_valid(fd[i])) { in TEST()
261 void *region = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd[i], 0); in TEST()
278 ASSERT_NO_FATAL_FAILURE(TestMmap(fd[i], size, PROT_READ | PROT_WRITE, ®ion)); in TEST()