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

Commit ff6983d2 authored by Marybeth Fair's avatar Marybeth Fair Committed by Automerger Merge Worker
Browse files

Merge "Add fingerprint info to package context." into main am: 64fe724e am: bf9fb081

parents d9d82167 bf9fb081
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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);
    }

+44 −3
Original line number Diff line number Diff line
@@ -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
@@ -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 {
@@ -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);
    }

+49 −3
Original line number Diff line number Diff line
@@ -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);
    }