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

Commit 64fe724e authored by Marybeth Fair's avatar Marybeth Fair Committed by Gerrit Code Review
Browse files

Merge "Add fingerprint info to package context." into main

parents ff26bd34 db9227d7
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);
    }