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

Commit 92cf0ec2 authored by Zhi Dou's avatar Zhi Dou
Browse files

Aconfig: sort the parsed flag order in create-cache

This change will sorted the parsed flags from the declarations. Without
this change the code will expect the passed in declarations sorted.
After this change the code will still guarantee the parsed flags in the
cache is sorted, but it won't expect the passed in declarations are
sorted

Test: atest aconfig.test
Bug: 291926035
Change-Id: I5f0637fe770003224b128591890e04277bc09345
parent 0ee11559
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -127,6 +127,8 @@ pub fn parse_flags(package: &str, declarations: Vec<Input>, values: Vec<Input>)
        }
    }

    // Create a sorted parsed_flags
    crate::protos::parsed_flags::sort_parsed_flags(&mut parsed_flags);
    crate::protos::parsed_flags::verify_fields(&parsed_flags)?;
    let mut output = Vec::new();
    parsed_flags.write_to_vec(&mut output)?;
+4 −0
Original line number Diff line number Diff line
@@ -255,6 +255,10 @@ pub mod parsed_flags {
        Ok(merged)
    }

    pub fn sort_parsed_flags(pf: &mut ProtoParsedFlags) {
        pf.parsed_flag.sort_by_key(create_sorting_key);
    }

    fn create_sorting_key(pf: &ProtoParsedFlag) -> String {
        format!("{}.{}", pf.package(), pf.name())
    }
+17 −17
Original line number Diff line number Diff line
@@ -2,41 +2,41 @@ package: "com.android.aconfig.test"

# This flag's final value is calculated from:
# - test.aconfig: DISABLED + READ_WRITE (default)
# - first.values: DISABLED + READ_ONLY
# - first.values: DISABLED + READ_WRITE
# - second.values: ENABLED + READ_ONLY
flag {
    name: "disabled_ro"
    name: "enabled_ro"
    namespace: "aconfig_test"
    description: "This flag is DISABLED + READ_ONLY"
    bug: "123"
    description: "This flag is ENABLED + READ_ONLY"
    bug: "789"
    bug: "abc"
}

# This flag's final value is calculated from:
# - test.aconfig: DISABLED + READ_WRITE (default)
# - first.values: ENABLED + READ_WRITE
flag {
    name: "disabled_rw"
    name: "enabled_rw"
    namespace: "aconfig_test"
    description: "This flag is DISABLED + READ_WRITE"
    bug: "456"
    description: "This flag is ENABLED + READ_WRITE"
    # no bug field: bug is not mandatory
}

# This flag's final value is calculated from:
# - test.aconfig: DISABLED + READ_WRITE (default)
# - first.values: DISABLED + READ_WRITE
# - second.values: ENABLED + READ_ONLY
# - first.values: DISABLED + READ_ONLY
flag {
    name: "enabled_ro"
    name: "disabled_ro"
    namespace: "aconfig_test"
    description: "This flag is ENABLED + READ_ONLY"
    bug: "789"
    bug: "abc"
    description: "This flag is DISABLED + READ_ONLY"
    bug: "123"
}

# This flag's final value is calculated from:
# - test.aconfig: DISABLED + READ_WRITE (default)
# - first.values: ENABLED + READ_WRITE
flag {
    name: "enabled_rw"
    name: "disabled_rw"
    namespace: "aconfig_test"
    description: "This flag is ENABLED + READ_WRITE"
    # no bug field: bug is not mandatory
    description: "This flag is DISABLED + READ_WRITE"
    bug: "456"
}