snapuserd_test: Create dup of fd before passing it to cow writer
Bug: 352085551
Test: snapuserd_test - atest 10 iterations passed
Change-Id: I25549e546cb3ce234fcf92533effb124793f1953
Signed-off-by: Akilesh Kailash <akailash@google.com>
diff --git a/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp b/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp
index 56f7b59..6d0ae3d 100644
--- a/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp
+++ b/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp
@@ -79,6 +79,8 @@
std::unique_ptr<ICowWriter> CreateCowDeviceInternal();
std::unique_ptr<ICowWriter> CreateV3Cow();
+ unique_fd GetCowFd() { return unique_fd{dup(cow_system_->fd)}; }
+
std::unique_ptr<ITestHarness> harness_;
size_t size_ = 10_MiB;
int total_base_size_ = 0;
@@ -101,7 +103,9 @@
#endif
}
-void SnapuserdTestBase::TearDown() {}
+void SnapuserdTestBase::TearDown() {
+ cow_system_ = nullptr;
+}
void SnapuserdTestBase::CreateBaseDevice() {
total_base_size_ = (size_ * 5);
@@ -132,10 +136,7 @@
CowOptions options;
options.compression = "gz";
- unique_fd fd(cow_system_->fd);
- cow_system_->fd = -1;
-
- return CreateCowWriter(2, options, std::move(fd));
+ return CreateCowWriter(2, options, GetCowFd());
}
std::unique_ptr<ICowWriter> SnapuserdTestBase::CreateV3Cow() {
@@ -151,10 +152,7 @@
std::string path = android::base::GetExecutableDirectory();
cow_system_ = std::make_unique<TemporaryFile>(path);
- unique_fd fd(cow_system_->fd);
- cow_system_->fd = -1;
-
- return CreateCowWriter(3, options, std::move(fd));
+ return CreateCowWriter(3, options, GetCowFd());
}
void SnapuserdTestBase::CreateCowDevice() {