diff --git a/tools/aconfig/src/commands.rs b/tools/aconfig/src/commands.rs index 0ac84b24a2..bf4592175c 100644 --- a/tools/aconfig/src/commands.rs +++ b/tools/aconfig/src/commands.rs @@ -127,6 +127,8 @@ pub fn parse_flags(package: &str, declarations: Vec, values: Vec) } } + // 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)?; diff --git a/tools/aconfig/src/protos.rs b/tools/aconfig/src/protos.rs index a621b87c34..4ddada7994 100644 --- a/tools/aconfig/src/protos.rs +++ b/tools/aconfig/src/protos.rs @@ -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()) } diff --git a/tools/aconfig/tests/test.aconfig b/tools/aconfig/tests/test.aconfig index a8f665223d..d7ac919a60 100644 --- a/tools/aconfig/tests/test.aconfig +++ b/tools/aconfig/tests/test.aconfig @@ -1,24 +1,5 @@ package: "com.android.aconfig.test" -# This flag's final value is calculated from: -# - test.aconfig: DISABLED + READ_WRITE (default) -# - first.values: DISABLED + READ_ONLY -flag { - name: "disabled_ro" - namespace: "aconfig_test" - description: "This flag is DISABLED + READ_ONLY" - bug: "123" -} - -# This flag's final value is calculated from: -# - test.aconfig: DISABLED + READ_WRITE (default) -flag { - name: "disabled_rw" - namespace: "aconfig_test" - description: "This flag is DISABLED + READ_WRITE" - bug: "456" -} - # This flag's final value is calculated from: # - test.aconfig: DISABLED + READ_WRITE (default) # - first.values: DISABLED + READ_WRITE @@ -40,3 +21,22 @@ flag { 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_ONLY +flag { + name: "disabled_ro" + namespace: "aconfig_test" + description: "This flag is DISABLED + READ_ONLY" + bug: "123" +} + +# This flag's final value is calculated from: +# - test.aconfig: DISABLED + READ_WRITE (default) +flag { + name: "disabled_rw" + namespace: "aconfig_test" + description: "This flag is DISABLED + READ_WRITE" + bug: "456" +}