Loading tools/aconfig/aconfig_storage_read_api/src/lib.rs +6 −3 Original line number Diff line number Diff line Loading @@ -433,21 +433,24 @@ mod tests { get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } Loading tools/aconfig/aconfig_storage_read_api/src/package_table_query.rs +44 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ use anyhow::anyhow; pub struct PackageReadContext { pub package_id: u32, pub boolean_start_index: u32, pub fingerprint: u64, } /// Query package read context: package id and start index Loading Loading @@ -62,6 +63,7 @@ pub fn find_package_read_context( return Ok(Some(PackageReadContext { package_id: interpreted_node.package_id, boolean_start_index: interpreted_node.boolean_start_index, fingerprint: interpreted_node.fingerprint, })); } match interpreted_node.next_offset { Loading @@ -84,19 +86,58 @@ mod tests { find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } #[test] // this test point locks down table query fn test_package_query_v2() { let package_table = create_test_package_table(2).into_bytes(); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 15248948510590158086u64, }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 4431940502274857964u64, }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 16233229917711622375u64, }; assert_eq!(package_context, expected_package_context); } Loading tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs +49 −3 Original line number Diff line number Diff line Loading @@ -64,21 +64,67 @@ mod aconfig_storage_rust_test { get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } #[test] fn test_package_context_query_with_fingerprint() { let storage_dir = create_test_storage_files(2); // SAFETY: // The safety here is ensured as the test process will not write to temp storage file let package_mapped_file = unsafe { get_mapped_file(&storage_dir, "mockup", StorageFileType::PackageMap).unwrap() }; let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 15248948510590158086u64, }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 4431940502274857964u64, }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 16233229917711622375u64, }; assert_eq!(package_context, expected_package_context); } Loading Loading
tools/aconfig/aconfig_storage_read_api/src/lib.rs +6 −3 Original line number Diff line number Diff line Loading @@ -433,21 +433,24 @@ mod tests { get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } Loading
tools/aconfig/aconfig_storage_read_api/src/package_table_query.rs +44 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ use anyhow::anyhow; pub struct PackageReadContext { pub package_id: u32, pub boolean_start_index: u32, pub fingerprint: u64, } /// Query package read context: package id and start index Loading Loading @@ -62,6 +63,7 @@ pub fn find_package_read_context( return Ok(Some(PackageReadContext { package_id: interpreted_node.package_id, boolean_start_index: interpreted_node.boolean_start_index, fingerprint: interpreted_node.fingerprint, })); } match interpreted_node.next_offset { Loading @@ -84,19 +86,58 @@ mod tests { find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } #[test] // this test point locks down table query fn test_package_query_v2() { let package_table = create_test_package_table(2).into_bytes(); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 15248948510590158086u64, }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 4431940502274857964u64, }; assert_eq!(package_context, expected_package_context); let package_context = find_package_read_context(&package_table[..], "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 16233229917711622375u64, }; assert_eq!(package_context, expected_package_context); } Loading
tools/aconfig/aconfig_storage_read_api/tests/storage_read_api_test.rs +49 −3 Original line number Diff line number Diff line Loading @@ -64,21 +64,67 @@ mod aconfig_storage_rust_test { get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0 }; let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3 }; let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6 }; let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 0 }; assert_eq!(package_context, expected_package_context); } #[test] fn test_package_context_query_with_fingerprint() { let storage_dir = create_test_storage_files(2); // SAFETY: // The safety here is ensured as the test process will not write to temp storage file let package_mapped_file = unsafe { get_mapped_file(&storage_dir, "mockup", StorageFileType::PackageMap).unwrap() }; let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_1") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 0, boolean_start_index: 0, fingerprint: 15248948510590158086u64, }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_2") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 1, boolean_start_index: 3, fingerprint: 4431940502274857964u64, }; assert_eq!(package_context, expected_package_context); let package_context = get_package_read_context(&package_mapped_file, "com.android.aconfig.storage.test_4") .unwrap() .unwrap(); let expected_package_context = PackageReadContext { package_id: 2, boolean_start_index: 6, fingerprint: 16233229917711622375u64, }; assert_eq!(package_context, expected_package_context); } Loading