Lines Matching +full:self +full:- +full:test
1 // SPDX-License-Identifier: GPL-2.0
10 * This test suite verifies the functionality and behavior of the
14 * - Device access: basic open/close, and enforcement of exclusive access.
15 * - Session management: creation of unique sessions, and duplicate name detection.
16 * - Resource preservation: successfully preserving individual and multiple memfds,
18 * - Complex multi-session scenarios involving mixed empty and populated files.
41 self->fd1 = -1; in FIXTURE_SETUP()
42 self->fd2 = -1; in FIXTURE_SETUP()
47 if (self->fd1 >= 0) in FIXTURE_TEARDOWN()
48 close(self->fd1); in FIXTURE_TEARDOWN()
49 if (self->fd2 >= 0) in FIXTURE_TEARDOWN()
50 close(self->fd2); in FIXTURE_TEARDOWN()
54 * Test Case: Basic Open and Close
61 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
63 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
66 ASSERT_GE(self->fd1, 0); in TEST_F()
67 ASSERT_EQ(close(self->fd1), 0); in TEST_F()
68 self->fd1 = -1; in TEST_F()
72 * Test Case: Exclusive Open Enforcement
80 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
82 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
85 ASSERT_GE(self->fd1, 0); in TEST_F()
86 self->fd2 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
87 EXPECT_LT(self->fd2, 0); in TEST_F()
97 strncpy((char *)args.name, name, sizeof(args.name) - 1); in create_session()
100 return -errno; in create_session()
106 * Test Case: Create Duplicate Session
115 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
116 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
119 ASSERT_GE(self->fd1, 0); in TEST_F()
121 session_fd1 = create_session(self->fd1, "duplicate-session-test"); in TEST_F()
124 session_fd2 = create_session(self->fd1, "duplicate-session-test"); in TEST_F()
126 EXPECT_EQ(-session_fd2, EEXIST); in TEST_F()
132 * Test Case: Create Distinct Sessions
140 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
141 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
144 ASSERT_GE(self->fd1, 0); in TEST_F()
146 session_fd1 = create_session(self->fd1, "distinct-session-1"); in TEST_F()
149 session_fd2 = create_session(self->fd1, "distinct-session-2"); in TEST_F()
165 return -errno; in preserve_fd()
171 * Test Case: Preserve MemFD
182 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
183 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
185 ASSERT_GE(self->fd1, 0); in TEST_F()
187 session_fd = create_session(self->fd1, "preserve-memfd-test"); in TEST_F()
190 mem_fd = memfd_create("test-memfd", 0); in TEST_F()
204 * Test Case: Preserve Multiple MemFDs
217 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
218 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
220 ASSERT_GE(self->fd1, 0); in TEST_F()
222 session_fd = create_session(self->fd1, "preserve-multi-memfd-test"); in TEST_F()
225 mem_fd1 = memfd_create("test-memfd-1", 0); in TEST_F()
227 mem_fd2 = memfd_create("test-memfd-2", 0); in TEST_F()
252 * Test Case: Preserve Complex Scenario
255 * and non-empty memfds distributed across them.
265 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
266 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
268 ASSERT_GE(self->fd1, 0); in TEST_F()
270 session_fd1 = create_session(self->fd1, "complex-session-1"); in TEST_F()
272 session_fd2 = create_session(self->fd1, "complex-session-2"); in TEST_F()
318 * Test Case: Preserve Unsupported File Descriptor
330 self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); in TEST_F()
331 if (self->fd1 < 0 && errno == ENOENT) in TEST_F()
333 ASSERT_GE(self->fd1, 0); in TEST_F()
335 session_fd = create_session(self->fd1, "unsupported-fd-test"); in TEST_F()
342 EXPECT_EQ(ret, -ENOENT); in TEST_F()