From 0ec9b0eb9226828a2fa7a67b3e9d7400015acbef Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 7 Aug 2023 15:25:07 -0700 Subject: [PATCH] snapuesrd: Build snapuserd_test on host. Bug: 288273605 Test: snapuserd_test Change-Id: I10e099feff30f09b8c9f0b9dcca64336cb0861b9 --- fs_mgr/libsnapshot/snapuserd/Android.bp | 2 ++ .../snapuserd/include/snapuserd/snapuserd_kernel.h | 6 ++++-- .../snapuserd/user-space-merge/snapuserd_test.cpp | 9 ++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/fs_mgr/libsnapshot/snapuserd/Android.bp b/fs_mgr/libsnapshot/snapuserd/Android.bp index f5b87e04f..fe7f99c67 100644 --- a/fs_mgr/libsnapshot/snapuserd/Android.bp +++ b/fs_mgr/libsnapshot/snapuserd/Android.bp @@ -90,6 +90,7 @@ cc_library_static { ramdisk_available: true, vendor_ramdisk_available: true, recovery_available: true, + host_supported: true, } cc_defaults { @@ -256,4 +257,5 @@ cc_test { }, auto_gen_config: true, require_root: false, + host_supported: true, } diff --git a/fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_kernel.h b/fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_kernel.h index 0d83f4789..7ab75dc79 100644 --- a/fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_kernel.h +++ b/fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_kernel.h @@ -14,6 +14,8 @@ #pragma once +#include + namespace android { namespace snapshot { @@ -70,7 +72,7 @@ struct disk_header { /* In sectors */ uint32_t chunk_size; -} __packed; +} __attribute__((packed)); // A disk exception is a mapping of old_chunk to new_chunk // old_chunk is the chunk ID of a dm-snapshot device. @@ -78,7 +80,7 @@ struct disk_header { struct disk_exception { uint64_t old_chunk; uint64_t new_chunk; -} __packed; +} __attribute__((packed)); // Control structures to communicate with dm-user // It comprises of header and a payload 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 0f1374cd1..9c923847d 100644 --- a/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp +++ b/fs_mgr/libsnapshot/snapuserd/user-space-merge/snapuserd_test.cpp @@ -41,6 +41,7 @@ #include "handler_manager.h" #include "snapuserd_core.h" #include "testing/dm_user_harness.h" +#include "testing/host_harness.h" #include "testing/temp_device.h" #include "utility.h" @@ -80,7 +81,11 @@ class SnapuserdTestBase : public ::testing::Test { }; void SnapuserdTestBase::SetUp() { +#if __ANDROID__ harness_ = std::make_unique(); +#else + harness_ = std::make_unique(); +#endif } void SnapuserdTestBase::TearDown() {} @@ -269,7 +274,9 @@ void SnapuserdTest::TearDown() { } void SnapuserdTest::Shutdown() { - ASSERT_TRUE(dmuser_dev_->Destroy()); + if (dmuser_dev_) { + ASSERT_TRUE(dmuser_dev_->Destroy()); + } auto misc_device = "/dev/dm-user/" + system_device_ctrl_name_; ASSERT_TRUE(handlers_->DeleteHandler(system_device_ctrl_name_));