Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d772eb3e authored by Dennis Shen's avatar Dennis Shen
Browse files

aconfig: make MutableMappedStorageFiles inherit MappedStoargeFiles

Bug: b/321077378
Test: atest -c
Change-Id: Ib052df74bf79b5bc2a0f8c793701e3ff18f4aa30
parent a49f1ba5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ message storage_file_info {
  optional string flag_val = 5;
  optional string flag_info = 6;
  optional string local_overrides = 7;
  optional int64 timestamp = 8;
  optional string default_flag_val = 8;
  optional int64 timestamp = 9;
}

message storage_files {
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ enum FlagInfoBit {
struct MappedStorageFile {
  void* file_ptr;
  size_t file_size;
  ~MappedStorageFile();
  virtual ~MappedStorageFile();
};

/// Package read context query result
+0 −5
Original line number Diff line number Diff line
@@ -17,11 +17,6 @@ using namespace android::base;

namespace aconfig_storage {

/// destructor
MutableMappedStorageFile::~MutableMappedStorageFile() {
  munmap(file_ptr, file_size);
}

/// Map a storage file
Result<MutableMappedStorageFile*> map_mutable_storage_file(std::string const& file) {
  struct stat file_stat;
+1 −5
Original line number Diff line number Diff line
@@ -11,11 +11,7 @@ using namespace android::base;
namespace aconfig_storage {

/// Mapped flag value file
struct MutableMappedStorageFile{
  void* file_ptr;
  size_t file_size;
  ~MutableMappedStorageFile();
};
struct MutableMappedStorageFile : MappedStorageFile {};

/// Map a storage file
Result<MutableMappedStorageFile*> map_mutable_storage_file(
+5 −17
Original line number Diff line number Diff line
@@ -80,13 +80,10 @@ TEST_F(AconfigStorageTest, test_boolean_flag_value_update) {
  ASSERT_TRUE(mapped_file_result.ok());
  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) {
    auto update_result = api::set_boolean_flag_value(*mapped_file, offset, true);
    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);
  }
@@ -97,7 +94,6 @@ TEST_F(AconfigStorageTest, test_invalid_boolean_flag_value_update) {
  auto mapped_file_result = api::map_mutable_storage_file(flag_val);
  ASSERT_TRUE(mapped_file_result.ok());
  auto mapped_file = std::unique_ptr<api::MutableMappedStorageFile>(*mapped_file_result);

  auto update_result = api::set_boolean_flag_value(*mapped_file, 8, true);
  ASSERT_FALSE(update_result.ok());
  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());
  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) {
    auto update_result = api::set_flag_has_server_override(
        *mapped_file, api::FlagValueType::Boolean, offset, true);
    ASSERT_TRUE(update_result.ok()) << update_result.error();
    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 & api::FlagInfoBit::HasServerOverride);

@@ -127,7 +119,7 @@ TEST_F(AconfigStorageTest, test_flag_has_server_override_update) {
        *mapped_file, api::FlagValueType::Boolean, offset, false);
    ASSERT_TRUE(update_result.ok());
    attribute = api::get_flag_attribute(
        ro_mapped_file, api::FlagValueType::Boolean, offset);
        *mapped_file, api::FlagValueType::Boolean, offset);
    ASSERT_TRUE(attribute.ok());
    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());
  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) {
    auto update_result = api::set_flag_has_local_override(
        *mapped_file, api::FlagValueType::Boolean, offset, true);
    ASSERT_TRUE(update_result.ok());
    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 & api::FlagInfoBit::HasLocalOverride);

@@ -156,7 +144,7 @@ TEST_F(AconfigStorageTest, test_flag_has_local_override_update) {
        *mapped_file, api::FlagValueType::Boolean, offset, false);
    ASSERT_TRUE(update_result.ok());
    attribute = api::get_flag_attribute(
        ro_mapped_file, api::FlagValueType::Boolean, offset);
        *mapped_file, api::FlagValueType::Boolean, offset);
    ASSERT_TRUE(attribute.ok());
    ASSERT_FALSE(*attribute & api::FlagInfoBit::HasLocalOverride);
  }