Merge "aconfig: make MutableMappedStorageFiles inherit MappedStoargeFiles" into main am: 015de62d7a

Original change: https://android-review.googlesource.com/c/platform/build/+/3077003

Change-Id: I1061ef4129c236572f51b89e3596f805e86ea3de
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Dennis Shen 2024-05-08 19:23:02 +00:00 committed by Automerger Merge Worker
commit 3807c32bff
5 changed files with 9 additions and 29 deletions

View file

@ -28,7 +28,8 @@ message storage_file_info {
optional string flag_val = 5; optional string flag_val = 5;
optional string flag_info = 6; optional string flag_info = 6;
optional string local_overrides = 7; optional string local_overrides = 7;
optional int64 timestamp = 8; optional string default_flag_val = 8;
optional int64 timestamp = 9;
} }
message storage_files { message storage_files {

View file

@ -41,7 +41,7 @@ enum FlagInfoBit {
struct MappedStorageFile { struct MappedStorageFile {
void* file_ptr; void* file_ptr;
size_t file_size; size_t file_size;
~MappedStorageFile(); virtual ~MappedStorageFile();
}; };
/// Package read context query result /// Package read context query result

View file

@ -17,11 +17,6 @@ using namespace android::base;
namespace aconfig_storage { namespace aconfig_storage {
/// destructor
MutableMappedStorageFile::~MutableMappedStorageFile() {
munmap(file_ptr, file_size);
}
/// Map a storage file /// Map a storage file
Result<MutableMappedStorageFile*> map_mutable_storage_file(std::string const& file) { Result<MutableMappedStorageFile*> map_mutable_storage_file(std::string const& file) {
struct stat file_stat; struct stat file_stat;

View file

@ -11,11 +11,7 @@ using namespace android::base;
namespace aconfig_storage { namespace aconfig_storage {
/// Mapped flag value file /// Mapped flag value file
struct MutableMappedStorageFile{ struct MutableMappedStorageFile : MappedStorageFile {};
void* file_ptr;
size_t file_size;
~MutableMappedStorageFile();
};
/// Map a storage file /// Map a storage file
Result<MutableMappedStorageFile*> map_mutable_storage_file( Result<MutableMappedStorageFile*> map_mutable_storage_file(

View file

@ -80,13 +80,10 @@ TEST_F(AconfigStorageTest, test_boolean_flag_value_update) {
ASSERT_TRUE(mapped_file_result.ok()); ASSERT_TRUE(mapped_file_result.ok());
auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result); auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result);
auto ro_mapped_file = api::MappedStorageFile();
ro_mapped_file.file_ptr = mapped_file->file_ptr;
ro_mapped_file.file_size = mapped_file->file_size;
for (int offset = 0; offset < 8; ++offset) { for (int offset = 0; offset < 8; ++offset) {
auto update_result = api::set_boolean_flag_value(*mapped_file, offset, true); auto update_result = api::set_boolean_flag_value(*mapped_file, offset, true);
ASSERT_TRUE(update_result.ok()); ASSERT_TRUE(update_result.ok());
auto value = api::get_boolean_flag_value(ro_mapped_file, offset); auto value = api::get_boolean_flag_value(*mapped_file, offset);
ASSERT_TRUE(value.ok()); ASSERT_TRUE(value.ok());
ASSERT_TRUE(*value); ASSERT_TRUE(*value);
} }
@ -97,7 +94,6 @@ TEST_F(AconfigStorageTest, test_invalid_boolean_flag_value_update) {
auto mapped_file_result = api::map_mutable_storage_file(flag_val); auto mapped_file_result = api::map_mutable_storage_file(flag_val);
ASSERT_TRUE(mapped_file_result.ok()); ASSERT_TRUE(mapped_file_result.ok());
auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result); auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result);
auto update_result = api::set_boolean_flag_value(*mapped_file, 8, true); auto update_result = api::set_boolean_flag_value(*mapped_file, 8, true);
ASSERT_FALSE(update_result.ok()); ASSERT_FALSE(update_result.ok());
ASSERT_EQ(update_result.error().message(), ASSERT_EQ(update_result.error().message(),
@ -110,16 +106,12 @@ TEST_F(AconfigStorageTest, test_flag_has_server_override_update) {
ASSERT_TRUE(mapped_file_result.ok()); ASSERT_TRUE(mapped_file_result.ok());
auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result); auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result);
auto ro_mapped_file = api::MappedStorageFile();
ro_mapped_file.file_ptr = mapped_file->file_ptr;
ro_mapped_file.file_size = mapped_file->file_size;
for (int offset = 0; offset < 8; ++offset) { for (int offset = 0; offset < 8; ++offset) {
auto update_result = api::set_flag_has_server_override( auto update_result = api::set_flag_has_server_override(
*mapped_file, api::FlagValueType::Boolean, offset, true); *mapped_file, api::FlagValueType::Boolean, offset, true);
ASSERT_TRUE(update_result.ok()) << update_result.error(); ASSERT_TRUE(update_result.ok()) << update_result.error();
auto attribute = api::get_flag_attribute( auto attribute = api::get_flag_attribute(
ro_mapped_file, api::FlagValueType::Boolean, offset); *mapped_file, api::FlagValueType::Boolean, offset);
ASSERT_TRUE(attribute.ok()); ASSERT_TRUE(attribute.ok());
ASSERT_TRUE(*attribute & api::FlagInfoBit::HasServerOverride); ASSERT_TRUE(*attribute & api::FlagInfoBit::HasServerOverride);
@ -127,7 +119,7 @@ TEST_F(AconfigStorageTest, test_flag_has_server_override_update) {
*mapped_file, api::FlagValueType::Boolean, offset, false); *mapped_file, api::FlagValueType::Boolean, offset, false);
ASSERT_TRUE(update_result.ok()); ASSERT_TRUE(update_result.ok());
attribute = api::get_flag_attribute( attribute = api::get_flag_attribute(
ro_mapped_file, api::FlagValueType::Boolean, offset); *mapped_file, api::FlagValueType::Boolean, offset);
ASSERT_TRUE(attribute.ok()); ASSERT_TRUE(attribute.ok());
ASSERT_FALSE(*attribute & api::FlagInfoBit::HasServerOverride); ASSERT_FALSE(*attribute & api::FlagInfoBit::HasServerOverride);
} }
@ -139,16 +131,12 @@ TEST_F(AconfigStorageTest, test_flag_has_local_override_update) {
ASSERT_TRUE(mapped_file_result.ok()); ASSERT_TRUE(mapped_file_result.ok());
auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result); auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result);
auto ro_mapped_file = api::MappedStorageFile();
ro_mapped_file.file_ptr = mapped_file->file_ptr;
ro_mapped_file.file_size = mapped_file->file_size;
for (int offset = 0; offset < 8; ++offset) { for (int offset = 0; offset < 8; ++offset) {
auto update_result = api::set_flag_has_local_override( auto update_result = api::set_flag_has_local_override(
*mapped_file, api::FlagValueType::Boolean, offset, true); *mapped_file, api::FlagValueType::Boolean, offset, true);
ASSERT_TRUE(update_result.ok()); ASSERT_TRUE(update_result.ok());
auto attribute = api::get_flag_attribute( auto attribute = api::get_flag_attribute(
ro_mapped_file, api::FlagValueType::Boolean, offset); *mapped_file, api::FlagValueType::Boolean, offset);
ASSERT_TRUE(attribute.ok()); ASSERT_TRUE(attribute.ok());
ASSERT_TRUE(*attribute & api::FlagInfoBit::HasLocalOverride); ASSERT_TRUE(*attribute & api::FlagInfoBit::HasLocalOverride);
@ -156,7 +144,7 @@ TEST_F(AconfigStorageTest, test_flag_has_local_override_update) {
*mapped_file, api::FlagValueType::Boolean, offset, false); *mapped_file, api::FlagValueType::Boolean, offset, false);
ASSERT_TRUE(update_result.ok()); ASSERT_TRUE(update_result.ok());
attribute = api::get_flag_attribute( attribute = api::get_flag_attribute(
ro_mapped_file, api::FlagValueType::Boolean, offset); *mapped_file, api::FlagValueType::Boolean, offset);
ASSERT_TRUE(attribute.ok()); ASSERT_TRUE(attribute.ok());
ASSERT_FALSE(*attribute & api::FlagInfoBit::HasLocalOverride); ASSERT_FALSE(*attribute & api::FlagInfoBit::HasLocalOverride);
} }