mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
test-reread-partition-table: Don't keep open fds around
Avoids EBUSY from BLKRRPART when built without libblkid support.
This commit is contained in:
@@ -97,11 +97,12 @@ TEST(rereadpt) {
|
||||
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
|
||||
_cleanup_close_ int pfd = open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||
ASSERT_OK_ERRNO(pfd);
|
||||
_cleanup_close_ int pfd = -EBADF;
|
||||
ASSERT_OK_ERRNO(pfd = open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY));
|
||||
uint64_t size;
|
||||
ASSERT_OK(blockdev_get_device_size(pfd, &size));
|
||||
ASSERT_EQ(size, 20U*1024U*1024U);
|
||||
pfd = safe_close(pfd);
|
||||
|
||||
/* No change */
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
@@ -122,11 +123,14 @@ TEST(rereadpt) {
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
|
||||
ASSERT_OK_ERRNO(pfd = open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY));
|
||||
ASSERT_OK(blockdev_get_device_size(pfd, &size));
|
||||
ASSERT_EQ(size, 30U*1024U*1024U);
|
||||
pfd = safe_close(pfd);
|
||||
|
||||
/* No change */
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
ASSERT_OK_ERRNO(pfd = open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY));
|
||||
|
||||
/* Move */
|
||||
log_notice("MOVING BY 50M");
|
||||
@@ -137,19 +141,19 @@ TEST(rereadpt) {
|
||||
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
ASSERT_ERROR(reread_partition_table_fd(loop->fd, /* flags= */ 0), EBUSY);
|
||||
pfd = safe_close(pfd);
|
||||
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
|
||||
safe_close(pfd);
|
||||
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
|
||||
pfd = open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||
ASSERT_OK_ERRNO(pfd);
|
||||
pfd = ASSERT_OK_ERRNO(open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY));
|
||||
ASSERT_OK(blockdev_get_device_size(pfd, &size));
|
||||
ASSERT_EQ(size, 15U*1024U*1024U);
|
||||
pfd = safe_close(pfd);
|
||||
|
||||
/* No change */
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
pfd = ASSERT_OK_ERRNO(open(p, O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY));
|
||||
|
||||
/* Remove */
|
||||
log_notice("REMOVING");
|
||||
@@ -159,9 +163,9 @@ TEST(rereadpt) {
|
||||
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
ASSERT_ERROR(reread_partition_table_fd(loop->fd, /* flags= */ 0), EBUSY);
|
||||
pfd = safe_close(pfd);
|
||||
|
||||
ASSERT_OK_ZERO_ERRNO(access(p, F_OK));
|
||||
pfd = safe_close(pfd);
|
||||
ASSERT_OK(reread_partition_table_fd(loop->fd, /* flags= */ 0));
|
||||
ASSERT_ERROR_ERRNO(access(p, F_OK), ENOENT);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user