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

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

Merge "Fix bug in write fingerprint logic." into main am: 8db5ee17 am: 10df1a09

parents fe3f14d3 10df1a09
Loading
Loading
Loading
Loading
+47 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ where
        p.boolean_start_index = boolean_start_index;
        boolean_start_index += p.boolean_flags.len() as u32;

        if version > 2 {
        if version >= 2 {
            let mut flag_names_vec =
                p.flag_names.clone().into_iter().map(String::from).collect::<Vec<_>>();
            let fingerprint = compute_flags_fingerprint(&mut flag_names_vec);
@@ -202,6 +202,7 @@ mod tests {
        assert!(packages[0].flag_names.contains("disabled_rw"));
        assert!(packages[0].flag_names.contains("enabled_ro"));
        assert_eq!(packages[0].boolean_start_index, 0);
        assert_eq!(packages[0].fingerprint, 0);

        assert_eq!(packages[1].package_name, "com.android.aconfig.storage.test_2");
        assert_eq!(packages[1].package_id, 1);
@@ -210,6 +211,7 @@ mod tests {
        assert!(packages[1].flag_names.contains("disabled_rw"));
        assert!(packages[1].flag_names.contains("enabled_fixed_ro"));
        assert_eq!(packages[1].boolean_start_index, 3);
        assert_eq!(packages[0].fingerprint, 0);

        assert_eq!(packages[2].package_name, "com.android.aconfig.storage.test_4");
        assert_eq!(packages[2].package_id, 2);
@@ -217,5 +219,49 @@ mod tests {
        assert!(packages[2].flag_names.contains("enabled_rw"));
        assert!(packages[2].flag_names.contains("enabled_fixed_ro"));
        assert_eq!(packages[2].boolean_start_index, 6);
        assert_eq!(packages[2].fingerprint, 0);
    }

    #[test]
    fn test_flag_package_with_fingerprint() {
        let caches = parse_all_test_flags();
        let packages = group_flags_by_package(caches.iter(), 2);

        for pkg in packages.iter() {
            let pkg_name = pkg.package_name;
            assert_eq!(pkg.flag_names.len(), pkg.boolean_flags.len());
            for pf in pkg.boolean_flags.iter() {
                assert!(pkg.flag_names.contains(pf.name()));
                assert_eq!(pf.package(), pkg_name);
            }
        }

        assert_eq!(packages.len(), 3);

        assert_eq!(packages[0].package_name, "com.android.aconfig.storage.test_1");
        assert_eq!(packages[0].package_id, 0);
        assert_eq!(packages[0].flag_names.len(), 3);
        assert!(packages[0].flag_names.contains("enabled_rw"));
        assert!(packages[0].flag_names.contains("disabled_rw"));
        assert!(packages[0].flag_names.contains("enabled_ro"));
        assert_eq!(packages[0].boolean_start_index, 0);
        assert_eq!(packages[0].fingerprint, 15248948510590158086u64);

        assert_eq!(packages[1].package_name, "com.android.aconfig.storage.test_2");
        assert_eq!(packages[1].package_id, 1);
        assert_eq!(packages[1].flag_names.len(), 3);
        assert!(packages[1].flag_names.contains("enabled_ro"));
        assert!(packages[1].flag_names.contains("disabled_rw"));
        assert!(packages[1].flag_names.contains("enabled_fixed_ro"));
        assert_eq!(packages[1].boolean_start_index, 3);
        assert_eq!(packages[1].fingerprint, 4431940502274857964u64);

        assert_eq!(packages[2].package_name, "com.android.aconfig.storage.test_4");
        assert_eq!(packages[2].package_id, 2);
        assert_eq!(packages[2].flag_names.len(), 2);
        assert!(packages[2].flag_names.contains("enabled_rw"));
        assert!(packages[2].flag_names.contains("enabled_fixed_ro"));
        assert_eq!(packages[2].boolean_start_index, 6);
        assert_eq!(packages[2].fingerprint, 16233229917711622375u64);
    }
}