From a80e298d34a3cfcaf1f89bc9c808c8b175095c4f Mon Sep 17 00:00:00 2001 From: Marybeth Fair Date: Mon, 23 Sep 2024 19:37:21 +0000 Subject: [PATCH] Revert "Add fingerprint to packages.map." This reverts commit 769d8eed378d468be6c8d840343772510752e4f1. Reason for revert: Caused crashed in places where old version files were present. Change-Id: I7d529773226cd834979400aa018c47bbf6891b72 --- tools/aconfig/aconfig/Android.bp | 8 -- tools/aconfig/aconfig/src/commands.rs | 74 +++++------------- tools/aconfig/aconfig/src/storage/mod.rs | 9 +-- .../aconfig/src/storage/package_table.rs | 1 - tools/aconfig/aconfig/src/test.rs | 18 ----- tools/aconfig/aconfig/tests/test.aconfig | 2 +- .../aconfig/tests/test_second_package.aconfig | 12 --- tools/aconfig/aconfig/tests/third.values | 6 -- .../aconfig_storage_file/src/flag_info.rs | 2 +- .../aconfig_storage_file/src/flag_table.rs | 2 +- .../aconfig_storage_file/src/flag_value.rs | 2 +- tools/aconfig/aconfig_storage_file/src/lib.rs | 12 +-- .../aconfig_storage_file/src/package_table.rs | 18 +---- .../aconfig_storage_file/src/test_utils.rs | 17 ++-- .../aconfig/storage/ByteBufferReader.java | 4 - .../android/aconfig/storage/PackageTable.java | 7 -- .../aconfig_storage_file/tests/flag.info | Bin 35 -> 35 bytes .../aconfig_storage_file/tests/flag.map | Bin 321 -> 321 bytes .../aconfig_storage_file/tests/flag.val | Bin 35 -> 35 bytes .../aconfig_storage_file/tests/package.map | Bin 233 -> 209 bytes .../tests/srcs/FlagTableTest.java | 2 +- .../tests/srcs/FlagValueListTest.java | 2 +- .../tests/srcs/PackageTableTest.java | 59 +++++++------- .../aconfig_storage_read_api/src/lib.rs | 8 +- .../aconfig_storage_read_api/tests/flag.info | Bin 35 -> 35 bytes .../aconfig_storage_read_api/tests/flag.map | Bin 321 -> 321 bytes .../aconfig_storage_read_api/tests/flag.val | Bin 35 -> 35 bytes .../tests/package.map | Bin 233 -> 209 bytes .../tests/storage_read_api_test.cpp | 8 +- .../tests/storage_read_api_test.rs | 8 +- 30 files changed, 80 insertions(+), 201 deletions(-) delete mode 100644 tools/aconfig/aconfig/tests/test_second_package.aconfig delete mode 100644 tools/aconfig/aconfig/tests/third.values diff --git a/tools/aconfig/aconfig/Android.bp b/tools/aconfig/aconfig/Android.bp index 5037783fb5..68521af91f 100644 --- a/tools/aconfig/aconfig/Android.bp +++ b/tools/aconfig/aconfig/Android.bp @@ -68,14 +68,6 @@ aconfig_values { ], } -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 b5854165bc..797a893ff1 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 @@ where Ok(flag_ids) } -// Creates a fingerprint of the flag names. Sorts the vector. -pub fn compute_flags_fingerprint(flag_names: &mut Vec) -> Result { - 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 { - let separated_flags: Vec = flags.parsed_flag.into_iter().collect::>(); +pub fn compute_flag_offsets_fingerprint(flags_map: &HashMap) -> Result { + 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::>(); - 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,46 +449,15 @@ mod tests { #[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::>(); - 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 diff --git a/tools/aconfig/aconfig/src/storage/mod.rs b/tools/aconfig/aconfig/src/storage/mod.rs index efce24e422..73339f24b3 100644 --- a/tools/aconfig/aconfig/src/storage/mod.rs +++ b/tools/aconfig/aconfig/src/storage/mod.rs @@ -25,14 +25,12 @@ use crate::storage::{ 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 @@ impl<'a> FlagPackage<'a> { FlagPackage { package_name, package_id, - fingerprint: 0, flag_names: HashSet::new(), boolean_flags: vec![], boolean_start_index: 0, @@ -81,8 +78,6 @@ where 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 @@ mod tests { use super::*; use crate::Input; - use aconfig_protos::ProtoParsedFlags; - pub fn parse_all_test_flags() -> Vec { let aconfig_files = [ ( diff --git a/tools/aconfig/aconfig/src/storage/package_table.rs b/tools/aconfig/aconfig/src/storage/package_table.rs index 33bb0774e0..c53602f9cb 100644 --- a/tools/aconfig/aconfig/src/storage/package_table.rs +++ b/tools/aconfig/aconfig/src/storage/package_table.rs @@ -48,7 +48,6 @@ impl PackageTableNodeWrapper { 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 a19b372aac..7409cda6e8 100644 --- a/tools/aconfig/aconfig/src/test.rs +++ b/tools/aconfig/aconfig/src/test.rs @@ -295,24 +295,6 @@ parsed_flag { 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 { 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 a818b2332e..c11508aabc 100644 --- a/tools/aconfig/aconfig/tests/test.aconfig +++ b/tools/aconfig/aconfig/tests/test.aconfig @@ -86,4 +86,4 @@ flag { 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 a8740b85dd..0000000000 --- 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 675832a4bc..0000000000 --- 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 a49756d012..f090396901 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 @@ mod tests { 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 be82c63028..0588fe5039 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 @@ mod tests { 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 c4cf29451e..b64c10ecdd 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 @@ mod tests { 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 19d0e51e61..cf52bc017d 100644 --- a/tools/aconfig/aconfig_storage_file/src/lib.rs +++ b/tools/aconfig/aconfig_storage_file/src/lib.rs @@ -58,7 +58,7 @@ use crate::AconfigStorageError::{ }; /// 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 @@ pub fn read_u32_from_bytes(buf: &[u8], head: &mut usize) -> Result Result { - 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 350f072df2..a5bd9e6446 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 @@ impl PackageTableHeader { 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 @@ impl fmt::Debug for PackageTableNode { 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 @@ impl PackageTableNode { 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 @@ impl PackageTableNode { 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 @@ mod tests { 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 11e2dc688e..106666c47f 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 @@ use tempfile::NamedTempFile; 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> = vec![Some(59), None, None, Some(117), None, None, None]; + let buckets: Vec> = 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 @@ impl FlagTableNode { 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_table() -> FlagTable { 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_value_list() -> FlagValueList { 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 44a82ee1c7..4bea0836f0 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 @@ public class ByteBufferReader { 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 f1288f5ea6..773b882f4a 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 @@ public class PackageTable { private String mPackageName; private int mPackageId; - private long mFingerprint; private int mBooleanStartIndex; private int mNextOffset; @@ -126,7 +125,6 @@ public class PackageTable { 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 @@ public class PackageTable { return Objects.equals(mPackageName, other.mPackageName) && mPackageId == other.mPackageId && mBooleanStartIndex == other.mBooleanStartIndex - && mFingerprint == other.mFingerprint && mNextOffset == other.mNextOffset; } @@ -168,10 +165,6 @@ public class PackageTable { 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 9db7fde7aedb036210391ed5e566611f25740aaf..6223edf369cbd0635aa34de23a676b1cf8aa3667 100644 GIT binary patch delta 7 OcmY#ZW@Mbms0085t^oZ2 delta 7 OcmY#ZW@MVks0085vH<=7 diff --git a/tools/aconfig/aconfig_storage_file/tests/flag.map b/tools/aconfig/aconfig_storage_file/tests/flag.map index cf4685ceb47f29c1f5268ceaf0247e5716127c67..e868f53d7e599f130604faac1fd20149e73cb821 100644 GIT binary patch delta 10 RcmX@ebdZUWaU-JxBLEQ(0(<}f delta 10 RcmX@ebdZUWX(OWpBLEQ;0(}4g diff --git a/tools/aconfig/aconfig_storage_file/tests/flag.val b/tools/aconfig/aconfig_storage_file/tests/flag.val index 37d4750206acbd5a3924f2aec4a75c75e4fe153f..ed203d4d13d068fc22d4136d413fe1fbd82cc57d 100644 GIT binary patch delta 7 OcmY#ZW@Mbms0085t^oZ2 delta 7 OcmY#ZW@MVks0085vH<=7 diff --git a/tools/aconfig/aconfig_storage_file/tests/package.map b/tools/aconfig/aconfig_storage_file/tests/package.map index 358010cf37cd8e82691b9f8c0e5d8d0f938671ab..6c46a0339cf94dde5e32e3e345835f8e893f6fba 100644 GIT binary patch delta 31 icmaFKc#)BjaU!D@W9~#9%Za&WjPob1(dA%cfB*oFKnE)T delta 70 ucmcb}_>z&4X(FQ*W9dX4OI`*jU=V%BS!bD*7`iXON1z;RDC<6d#F9)vx diff --git a/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java b/tools/aconfig/aconfig_storage_file/tests/srcs/FlagTableTest.java index e3b02cd666..fd40d4c4ef 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 class FlagTableTest { 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 ebc231c2dd..1b0de630c7 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 @@ public class FlagValueListTest { 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 6d56ceed96..e7e19d8d51 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 static org.junit.Assert.assertEquals; 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 @@ import org.junit.runners.JUnit4; @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 59aa749c74..d76cf3fe4e 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 @@ mod tests { #[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 9db7fde7aedb036210391ed5e566611f25740aaf..6223edf369cbd0635aa34de23a676b1cf8aa3667 100644 GIT binary patch delta 7 OcmY#ZW@Mbms0085t^oZ2 delta 7 OcmY#ZW@MVks0085vH<=7 diff --git a/tools/aconfig/aconfig_storage_read_api/tests/flag.map b/tools/aconfig/aconfig_storage_read_api/tests/flag.map index cf4685ceb47f29c1f5268ceaf0247e5716127c67..e868f53d7e599f130604faac1fd20149e73cb821 100644 GIT binary patch delta 10 RcmX@ebdZUWaU-JxBLEQ(0(<}f delta 10 RcmX@ebdZUWX(OWpBLEQ;0(}4g diff --git a/tools/aconfig/aconfig_storage_read_api/tests/flag.val b/tools/aconfig/aconfig_storage_read_api/tests/flag.val index 37d4750206acbd5a3924f2aec4a75c75e4fe153f..ed203d4d13d068fc22d4136d413fe1fbd82cc57d 100644 GIT binary patch delta 7 OcmY#ZW@Mbms0085t^oZ2 delta 7 OcmY#ZW@MVks0085vH<=7 diff --git a/tools/aconfig/aconfig_storage_read_api/tests/package.map b/tools/aconfig/aconfig_storage_read_api/tests/package.map index 358010cf37cd8e82691b9f8c0e5d8d0f938671ab..6c46a0339cf94dde5e32e3e345835f8e893f6fba 100644 GIT binary patch delta 31 icmaFKc#)BjaU!D@W9~#9%Za&WjPob1(dA%cfB*oFKnE)T delta 70 ucmcb}_>z&4X(FQ*W9dX4OI`*jU=V%BS!bD*7`iXON1z;RDC<6d#F9)vx 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 58460d1ac7..6d29045efe 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 @@ class AconfigStorageTest : public ::testing::Test { 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 bd1b5843f1..afc44d4d70 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 @@ mod aconfig_storage_rust_test { #[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); } }