Merge "Ensure a single running instance of edit monitor" into main
diff --git a/tools/aconfig/aconfig/Android.bp b/tools/aconfig/aconfig/Android.bp
index 5037783..68521af 100644
--- a/tools/aconfig/aconfig/Android.bp
+++ b/tools/aconfig/aconfig/Android.bp
@@ -68,14 +68,6 @@
],
}
-aconfig_values {
- name: "aconfig.test.flag.second_values",
- package: "com.android.aconfig.test",
- srcs: [
- "tests/third.values",
- ],
-}
-
aconfig_value_set {
name: "aconfig.test.flag.value_set",
values: [
diff --git a/tools/aconfig/aconfig/src/commands.rs b/tools/aconfig/aconfig/src/commands.rs
index b585416..797a893 100644
--- a/tools/aconfig/aconfig/src/commands.rs
+++ b/tools/aconfig/aconfig/src/commands.rs
@@ -17,7 +17,7 @@
use anyhow::{bail, ensure, Context, Result};
use itertools::Itertools;
use protobuf::Message;
-use std::collections::HashMap;
+use std::collections::{BTreeMap, HashMap};
use std::hash::Hasher;
use std::io::Read;
use std::path::PathBuf;
@@ -422,30 +422,23 @@
Ok(flag_ids)
}
-// Creates a fingerprint of the flag names. Sorts the vector.
-pub fn compute_flags_fingerprint(flag_names: &mut Vec<String>) -> Result<u64> {
- flag_names.sort();
-
- let mut hasher = SipHasher13::new();
- for flag in flag_names {
- hasher.write(flag.as_bytes());
- }
- Ok(hasher.finish())
-}
-
#[allow(dead_code)] // TODO: b/316357686 - Use fingerprint in codegen to
// protect hardcoded offset reads.
-fn compute_fingerprint_from_parsed_flags(flags: ProtoParsedFlags) -> Result<u64> {
- let separated_flags: Vec<ProtoParsedFlag> = flags.parsed_flag.into_iter().collect::<Vec<_>>();
+pub fn compute_flag_offsets_fingerprint(flags_map: &HashMap<String, u16>) -> Result<u64> {
+ let mut hasher = SipHasher13::new();
- // All flags must belong to the same package as the fingerprint is per-package.
- let Some(_package) = find_unique_package(&separated_flags) else {
- bail!("No parsed flags, or the parsed flags use different packages.");
- };
+ // Need to sort to ensure the data is added to the hasher in the same order
+ // each run.
+ let sorted_map: BTreeMap<&String, &u16> = flags_map.iter().collect();
- let mut flag_names =
- separated_flags.into_iter().map(|flag| flag.name.unwrap()).collect::<Vec<_>>();
- compute_flags_fingerprint(&mut flag_names)
+ for (flag, offset) in sorted_map {
+ // See https://docs.rs/siphasher/latest/siphasher/#note for use of write
+ // over write_i16. Similarly, use to_be_bytes rather than to_ne_bytes to
+ // ensure consistency.
+ hasher.write(flag.as_bytes());
+ hasher.write(&offset.to_be_bytes());
+ }
+ Ok(hasher.finish())
}
#[cfg(test)]
@@ -456,47 +449,16 @@
#[test]
fn test_offset_fingerprint() {
let parsed_flags = crate::test::parse_test_flags();
- let expected_fingerprint: u64 = 5801144784618221668;
+ let package = find_unique_package(&parsed_flags.parsed_flag).unwrap().to_string();
+ let flag_ids = assign_flag_ids(&package, parsed_flags.parsed_flag.iter()).unwrap();
+ let expected_fingerprint = 10709892481002252132u64;
- let hash_result = compute_fingerprint_from_parsed_flags(parsed_flags);
+ let hash_result = compute_flag_offsets_fingerprint(&flag_ids);
assert_eq!(hash_result.unwrap(), expected_fingerprint);
}
#[test]
- fn test_offset_fingerprint_matches_from_package() {
- let parsed_flags: ProtoParsedFlags = crate::test::parse_test_flags();
-
- // All test flags are in the same package, so fingerprint from all of them.
- let result_from_parsed_flags = compute_fingerprint_from_parsed_flags(parsed_flags.clone());
-
- let mut flag_names_vec = parsed_flags
- .parsed_flag
- .clone()
- .into_iter()
- .map(|flag| flag.name.unwrap())
- .map(String::from)
- .collect::<Vec<_>>();
- let result_from_names = compute_flags_fingerprint(&mut flag_names_vec);
-
- // Assert the same hash is generated for each case.
- assert_eq!(result_from_parsed_flags.unwrap(), result_from_names.unwrap());
- }
-
- #[test]
- fn test_offset_fingerprint_different_packages_does_not_match() {
- // Parse flags from two packages.
- let parsed_flags: ProtoParsedFlags = crate::test::parse_test_flags();
- let second_parsed_flags = crate::test::parse_second_package_flags();
-
- let result_from_parsed_flags = compute_fingerprint_from_parsed_flags(parsed_flags).unwrap();
- let second_result = compute_fingerprint_from_parsed_flags(second_parsed_flags).unwrap();
-
- // Different flags should have a different fingerprint.
- assert_ne!(result_from_parsed_flags, second_result);
- }
-
- #[test]
fn test_parse_flags() {
let parsed_flags = crate::test::parse_test_flags(); // calls parse_flags
aconfig_protos::parsed_flags::verify_fields(&parsed_flags).unwrap();
diff --git a/tools/aconfig/aconfig/src/storage/mod.rs b/tools/aconfig/aconfig/src/storage/mod.rs
index efce24e..73339f2 100644
--- a/tools/aconfig/aconfig/src/storage/mod.rs
+++ b/tools/aconfig/aconfig/src/storage/mod.rs
@@ -25,14 +25,12 @@
flag_table::create_flag_table, flag_value::create_flag_value,
package_table::create_package_table,
};
-use aconfig_protos::ProtoParsedFlag;
-use aconfig_protos::ProtoParsedFlags;
+use aconfig_protos::{ProtoParsedFlag, ProtoParsedFlags};
use aconfig_storage_file::StorageFileType;
pub struct FlagPackage<'a> {
pub package_name: &'a str,
pub package_id: u32,
- pub fingerprint: u64,
pub flag_names: HashSet<&'a str>,
pub boolean_flags: Vec<&'a ProtoParsedFlag>,
// The index of the first boolean flag in this aconfig package among all boolean
@@ -45,7 +43,6 @@
FlagPackage {
package_name,
package_id,
- fingerprint: 0,
flag_names: HashSet::new(),
boolean_flags: vec![],
boolean_start_index: 0,
@@ -81,8 +78,6 @@
for p in packages.iter_mut() {
p.boolean_start_index = boolean_start_index;
boolean_start_index += p.boolean_flags.len() as u32;
-
- // TODO: b/316357686 - Calculate fingerprint and add to package.
}
packages
@@ -120,8 +115,6 @@
use super::*;
use crate::Input;
- use aconfig_protos::ProtoParsedFlags;
-
pub fn parse_all_test_flags() -> Vec<ProtoParsedFlags> {
let aconfig_files = [
(
diff --git a/tools/aconfig/aconfig/src/storage/package_table.rs b/tools/aconfig/aconfig/src/storage/package_table.rs
index 33bb077..c53602f 100644
--- a/tools/aconfig/aconfig/src/storage/package_table.rs
+++ b/tools/aconfig/aconfig/src/storage/package_table.rs
@@ -48,7 +48,6 @@
let node = PackageTableNode {
package_name: String::from(package.package_name),
package_id: package.package_id,
- fingerprint: package.fingerprint,
boolean_start_index: package.boolean_start_index,
next_offset: None,
};
diff --git a/tools/aconfig/aconfig/src/test.rs b/tools/aconfig/aconfig/src/test.rs
index a19b372..7409cda 100644
--- a/tools/aconfig/aconfig/src/test.rs
+++ b/tools/aconfig/aconfig/src/test.rs
@@ -295,24 +295,6 @@
aconfig_protos::parsed_flags::try_from_binary_proto(&bytes).unwrap()
}
- pub fn parse_second_package_flags() -> ProtoParsedFlags {
- let bytes = crate::commands::parse_flags(
- "com.android.aconfig.second_test",
- Some("system"),
- vec![Input {
- source: "tests/test_second_package.aconfig".to_string(),
- reader: Box::new(include_bytes!("../tests/test_second_package.aconfig").as_slice()),
- }],
- vec![Input {
- source: "tests/third.values".to_string(),
- reader: Box::new(include_bytes!("../tests/third.values").as_slice()),
- }],
- crate::commands::DEFAULT_FLAG_PERMISSION,
- )
- .unwrap();
- aconfig_protos::parsed_flags::try_from_binary_proto(&bytes).unwrap()
- }
-
pub fn first_significant_code_diff(a: &str, b: &str) -> Option<String> {
let a = a.lines().map(|line| line.trim_start()).filter(|line| !line.is_empty());
let b = b.lines().map(|line| line.trim_start()).filter(|line| !line.is_empty());
diff --git a/tools/aconfig/aconfig/tests/test.aconfig b/tools/aconfig/aconfig/tests/test.aconfig
index a818b23..c11508a 100644
--- a/tools/aconfig/aconfig/tests/test.aconfig
+++ b/tools/aconfig/aconfig/tests/test.aconfig
@@ -86,4 +86,4 @@
bug: "111"
is_fixed_read_only: true
is_exported: true
-}
+}
\ No newline at end of file
diff --git a/tools/aconfig/aconfig/tests/test_second_package.aconfig b/tools/aconfig/aconfig/tests/test_second_package.aconfig
deleted file mode 100644
index a8740b8..0000000
--- a/tools/aconfig/aconfig/tests/test_second_package.aconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-package: "com.android.aconfig.second_test"
-container: "system"
-
-flag {
- name: "testing_flag"
- namespace: "another_namespace"
- description: "This is a flag for testing."
- bug: "123"
- metadata {
- purpose: PURPOSE_UNSPECIFIED
- }
-}
diff --git a/tools/aconfig/aconfig/tests/third.values b/tools/aconfig/aconfig/tests/third.values
deleted file mode 100644
index 675832a..0000000
--- a/tools/aconfig/aconfig/tests/third.values
+++ /dev/null
@@ -1,6 +0,0 @@
-flag_value {
- package: "com.android.aconfig.second_test"
- name: "testing_flag"
- state: DISABLED
- permission: READ_WRITE
-}
diff --git a/tools/aconfig/aconfig_storage_file/src/flag_info.rs b/tools/aconfig/aconfig_storage_file/src/flag_info.rs
index a49756d..f090396 100644
--- a/tools/aconfig/aconfig_storage_file/src/flag_info.rs
+++ b/tools/aconfig/aconfig_storage_file/src/flag_info.rs
@@ -227,7 +227,7 @@
let bytes = &flag_info_list.into_bytes();
let mut head = 0;
let version = read_u32_from_bytes(bytes, &mut head).unwrap();
- assert_eq!(version, 2);
+ assert_eq!(version, 1);
}
#[test]
diff --git a/tools/aconfig/aconfig_storage_file/src/flag_table.rs b/tools/aconfig/aconfig_storage_file/src/flag_table.rs
index be82c63..0588fe5 100644
--- a/tools/aconfig/aconfig_storage_file/src/flag_table.rs
+++ b/tools/aconfig/aconfig_storage_file/src/flag_table.rs
@@ -253,7 +253,7 @@
let bytes = &flag_table.into_bytes();
let mut head = 0;
let version = read_u32_from_bytes(bytes, &mut head).unwrap();
- assert_eq!(version, 2);
+ assert_eq!(version, 1);
}
#[test]
diff --git a/tools/aconfig/aconfig_storage_file/src/flag_value.rs b/tools/aconfig/aconfig_storage_file/src/flag_value.rs
index c4cf294..b64c10e 100644
--- a/tools/aconfig/aconfig_storage_file/src/flag_value.rs
+++ b/tools/aconfig/aconfig_storage_file/src/flag_value.rs
@@ -159,7 +159,7 @@
let bytes = &flag_value_list.into_bytes();
let mut head = 0;
let version = read_u32_from_bytes(bytes, &mut head).unwrap();
- assert_eq!(version, 2);
+ assert_eq!(version, 1);
}
#[test]
diff --git a/tools/aconfig/aconfig_storage_file/src/lib.rs b/tools/aconfig/aconfig_storage_file/src/lib.rs
index 19d0e51..cf52bc0 100644
--- a/tools/aconfig/aconfig_storage_file/src/lib.rs
+++ b/tools/aconfig/aconfig_storage_file/src/lib.rs
@@ -58,7 +58,7 @@
};
/// Storage file version
-pub const FILE_VERSION: u32 = 2;
+pub const FILE_VERSION: u32 = 1;
/// Good hash table prime number
pub(crate) const HASH_PRIMES: [u32; 29] = [
@@ -254,16 +254,6 @@
Ok(val)
}
-// Read and parse bytes as u64
-pub fn read_u64_from_bytes(buf: &[u8], head: &mut usize) -> Result<u64, AconfigStorageError> {
- let val =
- u64::from_le_bytes(buf[*head..*head + 8].try_into().map_err(|errmsg| {
- BytesParseFail(anyhow!("fail to parse u64 from bytes: {}", errmsg))
- })?);
- *head += 8;
- Ok(val)
-}
-
/// Read and parse bytes as string
pub(crate) fn read_str_from_bytes(
buf: &[u8],
diff --git a/tools/aconfig/aconfig_storage_file/src/package_table.rs b/tools/aconfig/aconfig_storage_file/src/package_table.rs
index 350f072..a5bd9e6 100644
--- a/tools/aconfig/aconfig_storage_file/src/package_table.rs
+++ b/tools/aconfig/aconfig_storage_file/src/package_table.rs
@@ -17,10 +17,7 @@
//! package table module defines the package table file format and methods for serialization
//! and deserialization
-use crate::{
- get_bucket_index, read_str_from_bytes, read_u32_from_bytes, read_u64_from_bytes,
- read_u8_from_bytes,
-};
+use crate::{get_bucket_index, read_str_from_bytes, read_u32_from_bytes, read_u8_from_bytes};
use crate::{AconfigStorageError, StorageFileType};
use anyhow::anyhow;
use serde::{Deserialize, Serialize};
@@ -100,7 +97,6 @@
pub struct PackageTableNode {
pub package_name: String,
pub package_id: u32,
- pub fingerprint: u64,
// The index of the first boolean flag in this aconfig package among all boolean
// flags in this container.
pub boolean_start_index: u32,
@@ -112,12 +108,8 @@
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(
f,
- "Package: {}, Id: {}, Fingerprint: {}, Boolean flag start index: {}, Next: {:?}",
- self.package_name,
- self.package_id,
- self.fingerprint,
- self.boolean_start_index,
- self.next_offset
+ "Package: {}, Id: {}, Boolean flag start index: {}, Next: {:?}",
+ self.package_name, self.package_id, self.boolean_start_index, self.next_offset
)?;
Ok(())
}
@@ -131,7 +123,6 @@
result.extend_from_slice(&(name_bytes.len() as u32).to_le_bytes());
result.extend_from_slice(name_bytes);
result.extend_from_slice(&self.package_id.to_le_bytes());
- result.extend_from_slice(&self.fingerprint.to_le_bytes());
result.extend_from_slice(&self.boolean_start_index.to_le_bytes());
result.extend_from_slice(&self.next_offset.unwrap_or(0).to_le_bytes());
result
@@ -143,7 +134,6 @@
let node = Self {
package_name: read_str_from_bytes(bytes, &mut head)?,
package_id: read_u32_from_bytes(bytes, &mut head)?,
- fingerprint: read_u64_from_bytes(bytes, &mut head)?,
boolean_start_index: read_u32_from_bytes(bytes, &mut head)?,
next_offset: match read_u32_from_bytes(bytes, &mut head)? {
0 => None,
@@ -261,7 +251,7 @@
let bytes = &package_table.into_bytes();
let mut head = 0;
let version = read_u32_from_bytes(bytes, &mut head).unwrap();
- assert_eq!(version, 2);
+ assert_eq!(version, 1);
}
#[test]
diff --git a/tools/aconfig/aconfig_storage_file/src/test_utils.rs b/tools/aconfig/aconfig_storage_file/src/test_utils.rs
index 11e2dc6..106666c 100644
--- a/tools/aconfig/aconfig_storage_file/src/test_utils.rs
+++ b/tools/aconfig/aconfig_storage_file/src/test_utils.rs
@@ -26,33 +26,30 @@
pub fn create_test_package_table() -> PackageTable {
let header = PackageTableHeader {
- version: 2,
+ version: 1,
container: String::from("mockup"),
file_type: StorageFileType::PackageMap as u8,
- file_size: 233,
+ file_size: 209,
num_packages: 3,
bucket_offset: 31,
node_offset: 59,
};
- let buckets: Vec<Option<u32>> = vec![Some(59), None, None, Some(117), None, None, None];
+ let buckets: Vec<Option<u32>> = vec![Some(59), None, None, Some(109), None, None, None];
let first_node = PackageTableNode {
package_name: String::from("com.android.aconfig.storage.test_2"),
package_id: 1,
- fingerprint: 0,
boolean_start_index: 3,
next_offset: None,
};
let second_node = PackageTableNode {
package_name: String::from("com.android.aconfig.storage.test_1"),
package_id: 0,
- fingerprint: 0,
boolean_start_index: 0,
- next_offset: Some(175),
+ next_offset: Some(159),
};
let third_node = PackageTableNode {
package_name: String::from("com.android.aconfig.storage.test_4"),
package_id: 2,
- fingerprint: 0,
boolean_start_index: 6,
next_offset: None,
};
@@ -81,7 +78,7 @@
pub fn create_test_flag_table() -> FlagTable {
let header = FlagTableHeader {
- version: 2,
+ version: 1,
container: String::from("mockup"),
file_type: StorageFileType::FlagMap as u8,
file_size: 321,
@@ -123,7 +120,7 @@
pub fn create_test_flag_value_list() -> FlagValueList {
let header = FlagValueHeader {
- version: 2,
+ version: 1,
container: String::from("mockup"),
file_type: StorageFileType::FlagVal as u8,
file_size: 35,
@@ -136,7 +133,7 @@
pub fn create_test_flag_info_list() -> FlagInfoList {
let header = FlagInfoHeader {
- version: 2,
+ version: 1,
container: String::from("mockup"),
file_type: StorageFileType::FlagInfo as u8,
file_size: 35,
diff --git a/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/ByteBufferReader.java b/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/ByteBufferReader.java
index 44a82ee..4bea083 100644
--- a/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/ByteBufferReader.java
+++ b/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/ByteBufferReader.java
@@ -37,10 +37,6 @@
return Short.toUnsignedInt(mByteBuffer.getShort());
}
- public long readLong() {
- return mByteBuffer.getLong();
- }
-
public int readInt() {
return this.mByteBuffer.getInt();
}
diff --git a/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/PackageTable.java b/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/PackageTable.java
index f1288f5..773b882 100644
--- a/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/PackageTable.java
+++ b/tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/PackageTable.java
@@ -118,7 +118,6 @@
private String mPackageName;
private int mPackageId;
- private long mFingerprint;
private int mBooleanStartIndex;
private int mNextOffset;
@@ -126,7 +125,6 @@
Node node = new Node();
node.mPackageName = reader.readString();
node.mPackageId = reader.readInt();
- node.mFingerprint = reader.readLong();
node.mBooleanStartIndex = reader.readInt();
node.mNextOffset = reader.readInt();
node.mNextOffset = node.mNextOffset == 0 ? -1 : node.mNextOffset;
@@ -152,7 +150,6 @@
return Objects.equals(mPackageName, other.mPackageName)
&& mPackageId == other.mPackageId
&& mBooleanStartIndex == other.mBooleanStartIndex
- && mFingerprint == other.mFingerprint
&& mNextOffset == other.mNextOffset;
}
@@ -168,10 +165,6 @@
return mBooleanStartIndex;
}
- public long getFingerprint() {
- return mFingerprint;
- }
-
public int getNextOffset() {
return mNextOffset;
}
diff --git a/tools/aconfig/aconfig_storage_file/tests/flag.info b/tools/aconfig/aconfig_storage_file/tests/flag.info
index 9db7fde..6223edf 100644
--- a/tools/aconfig/aconfig_storage_file/tests/flag.info
+++ b/tools/aconfig/aconfig_storage_file/tests/flag.info
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_file/tests/flag.map b/tools/aconfig/aconfig_storage_file/tests/flag.map
index cf4685c..e868f53 100644
--- a/tools/aconfig/aconfig_storage_file/tests/flag.map
+++ b/tools/aconfig/aconfig_storage_file/tests/flag.map
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_file/tests/flag.val b/tools/aconfig/aconfig_storage_file/tests/flag.val
index 37d4750..ed203d4 100644
--- a/tools/aconfig/aconfig_storage_file/tests/flag.val
+++ b/tools/aconfig/aconfig_storage_file/tests/flag.val
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_file/tests/package.map b/tools/aconfig/aconfig_storage_file/tests/package.map
index 358010c..6c46a03 100644
--- a/tools/aconfig/aconfig_storage_file/tests/package.map
+++ b/tools/aconfig/aconfig_storage_file/tests/package.map
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java b/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java
index e3b02cd..fd40d4c 100644
--- a/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java
+++ b/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java
@@ -33,7 +33,7 @@
public void testFlagTable_rightHeader() throws Exception {
FlagTable flagTable = FlagTable.fromBytes(TestDataUtils.getTestFlagMapByteBuffer());
FlagTable.Header header = flagTable.getHeader();
- assertEquals(2, header.getVersion());
+ assertEquals(1, header.getVersion());
assertEquals("mockup", header.getContainer());
assertEquals(FileType.FLAG_MAP, header.getFileType());
assertEquals(321, header.getFileSize());
diff --git a/tools/aconfig/aconfig_storage_file/tests/srcs/FlagValueListTest.java b/tools/aconfig/aconfig_storage_file/tests/srcs/FlagValueListTest.java
index ebc231c..1b0de63 100644
--- a/tools/aconfig/aconfig_storage_file/tests/srcs/FlagValueListTest.java
+++ b/tools/aconfig/aconfig_storage_file/tests/srcs/FlagValueListTest.java
@@ -36,7 +36,7 @@
FlagValueList flagValueList =
FlagValueList.fromBytes(TestDataUtils.getTestFlagValByteBuffer());
FlagValueList.Header header = flagValueList.getHeader();
- assertEquals(2, header.getVersion());
+ assertEquals(1, header.getVersion());
assertEquals("mockup", header.getContainer());
assertEquals(FileType.FLAG_VAL, header.getFileType());
assertEquals(35, header.getFileSize());
diff --git a/tools/aconfig/aconfig_storage_file/tests/srcs/PackageTableTest.java b/tools/aconfig/aconfig_storage_file/tests/srcs/PackageTableTest.java
index 6d56cee..e7e19d8 100644
--- a/tools/aconfig/aconfig_storage_file/tests/srcs/PackageTableTest.java
+++ b/tools/aconfig/aconfig_storage_file/tests/srcs/PackageTableTest.java
@@ -20,6 +20,7 @@
import android.aconfig.storage.FileType;
import android.aconfig.storage.PackageTable;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -27,40 +28,42 @@
@RunWith(JUnit4.class)
public class PackageTableTest {
- @Test
- public void testPackageTable_rightHeader() throws Exception {
- PackageTable packageTable = PackageTable.fromBytes(TestDataUtils.getTestPackageMapByteBuffer());
- PackageTable.Header header = packageTable.getHeader();
- assertEquals(2, header.getVersion());
- assertEquals("mockup", header.getContainer());
- assertEquals(FileType.PACKAGE_MAP, header.getFileType());
- assertEquals(209, header.getFileSize());
- assertEquals(3, header.getNumPackages());
- assertEquals(31, header.getBucketOffset());
- assertEquals(59, header.getNodeOffset());
- }
+ @Test
+ public void testPackageTable_rightHeader() throws Exception {
+ PackageTable packageTable =
+ PackageTable.fromBytes(TestDataUtils.getTestPackageMapByteBuffer());
+ PackageTable.Header header = packageTable.getHeader();
+ assertEquals(1, header.getVersion());
+ assertEquals("mockup", header.getContainer());
+ assertEquals(FileType.PACKAGE_MAP, header.getFileType());
+ assertEquals(209, header.getFileSize());
+ assertEquals(3, header.getNumPackages());
+ assertEquals(31, header.getBucketOffset());
+ assertEquals(59, header.getNodeOffset());
+ }
- @Test
- public void testPackageTable_rightNode() throws Exception {
- PackageTable packageTable = PackageTable.fromBytes(TestDataUtils.getTestPackageMapByteBuffer());
+ @Test
+ public void testPackageTable_rightNode() throws Exception {
+ PackageTable packageTable =
+ PackageTable.fromBytes(TestDataUtils.getTestPackageMapByteBuffer());
- PackageTable.Node node1 = packageTable.get("com.android.aconfig.storage.test_1");
- PackageTable.Node node2 = packageTable.get("com.android.aconfig.storage.test_2");
- PackageTable.Node node4 = packageTable.get("com.android.aconfig.storage.test_4");
+ PackageTable.Node node1 = packageTable.get("com.android.aconfig.storage.test_1");
+ PackageTable.Node node2 = packageTable.get("com.android.aconfig.storage.test_2");
+ PackageTable.Node node4 = packageTable.get("com.android.aconfig.storage.test_4");
- assertEquals("com.android.aconfig.storage.test_1", node1.getPackageName());
- assertEquals("com.android.aconfig.storage.test_2", node2.getPackageName());
- assertEquals("com.android.aconfig.storage.test_4", node4.getPackageName());
+ assertEquals("com.android.aconfig.storage.test_1", node1.getPackageName());
+ assertEquals("com.android.aconfig.storage.test_2", node2.getPackageName());
+ assertEquals("com.android.aconfig.storage.test_4", node4.getPackageName());
- assertEquals(0, node1.getPackageId());
- assertEquals(1, node2.getPackageId());
- assertEquals(2, node4.getPackageId());
+ assertEquals(0, node1.getPackageId());
+ assertEquals(1, node2.getPackageId());
+ assertEquals(2, node4.getPackageId());
- assertEquals(0, node1.getBooleanStartIndex());
- assertEquals(3, node2.getBooleanStartIndex());
- assertEquals(6, node4.getBooleanStartIndex());
+ assertEquals(0, node1.getBooleanStartIndex());
+ assertEquals(3, node2.getBooleanStartIndex());
+ assertEquals(6, node4.getBooleanStartIndex());
- assertEquals(175, node1.getNextOffset());
+ assertEquals(159, node1.getNextOffset());
assertEquals(-1, node2.getNextOffset());
assertEquals(-1, node4.getNextOffset());
}
diff --git a/tools/aconfig/aconfig_storage_read_api/src/lib.rs b/tools/aconfig/aconfig_storage_read_api/src/lib.rs
index 59aa749..d76cf3f 100644
--- a/tools/aconfig/aconfig_storage_read_api/src/lib.rs
+++ b/tools/aconfig/aconfig_storage_read_api/src/lib.rs
@@ -507,9 +507,9 @@
#[test]
// this test point locks down flag storage file version number query api
fn test_storage_version_query() {
- assert_eq!(get_storage_file_version("./tests/package.map").unwrap(), 2);
- assert_eq!(get_storage_file_version("./tests/flag.map").unwrap(), 2);
- assert_eq!(get_storage_file_version("./tests/flag.val").unwrap(), 2);
- assert_eq!(get_storage_file_version("./tests/flag.info").unwrap(), 2);
+ assert_eq!(get_storage_file_version("./tests/package.map").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./tests/flag.map").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./tests/flag.val").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./tests/flag.info").unwrap(), 1);
}
}
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/flag.info b/tools/aconfig/aconfig_storage_read_api/tests/flag.info
index 9db7fde..6223edf 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/flag.info
+++ b/tools/aconfig/aconfig_storage_read_api/tests/flag.info
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/flag.map b/tools/aconfig/aconfig_storage_read_api/tests/flag.map
index cf4685c..e868f53 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/flag.map
+++ b/tools/aconfig/aconfig_storage_read_api/tests/flag.map
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/flag.val b/tools/aconfig/aconfig_storage_read_api/tests/flag.val
index 37d4750..ed203d4 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/flag.val
+++ b/tools/aconfig/aconfig_storage_read_api/tests/flag.val
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/package.map b/tools/aconfig/aconfig_storage_read_api/tests/package.map
index 358010c..6c46a03 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/package.map
+++ b/tools/aconfig/aconfig_storage_read_api/tests/package.map
Binary files differ
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.cpp b/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.cpp
index 58460d1..6d29045 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.cpp
+++ b/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.cpp
@@ -80,16 +80,16 @@
TEST_F(AconfigStorageTest, test_storage_version_query) {
auto version = api::get_storage_file_version(package_map);
ASSERT_TRUE(version.ok());
- ASSERT_EQ(*version, 2);
+ ASSERT_EQ(*version, 1);
version = api::get_storage_file_version(flag_map);
ASSERT_TRUE(version.ok());
- ASSERT_EQ(*version, 2);
+ ASSERT_EQ(*version, 1);
version = api::get_storage_file_version(flag_val);
ASSERT_TRUE(version.ok());
- ASSERT_EQ(*version, 2);
+ ASSERT_EQ(*version, 1);
version = api::get_storage_file_version(flag_info);
ASSERT_TRUE(version.ok());
- ASSERT_EQ(*version, 2);
+ ASSERT_EQ(*version, 1);
}
/// Negative test to lock down the error when mapping none exist storage files
diff --git a/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs b/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs
index bd1b584..afc44d4 100644
--- a/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs
+++ b/tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs
@@ -200,9 +200,9 @@
#[test]
fn test_storage_version_query() {
- assert_eq!(get_storage_file_version("./package.map").unwrap(), 2);
- assert_eq!(get_storage_file_version("./flag.map").unwrap(), 2);
- assert_eq!(get_storage_file_version("./flag.val").unwrap(), 2);
- assert_eq!(get_storage_file_version("./flag.info").unwrap(), 2);
+ assert_eq!(get_storage_file_version("./package.map").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./flag.map").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./flag.val").unwrap(), 1);
+ assert_eq!(get_storage_file_version("./flag.info").unwrap(), 1);
}
}