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

Commit ea498140 authored by Mårten Kongstad's avatar Mårten Kongstad
Browse files

aconfig: add 'verbose' dump format

Add a new --format=verbose dump output format. This is identical to the
default 'text' format but includes the source files from which the flag
declaration and values were read, and is intended to help debug why a
flag isn't set to some expected value.

Bug: 283910447
Test: atest aconfig.test
Test: printflags --format=verbose # manually inspect output
Change-Id: I03a1c8d940e7a0c6f91e986c5bafa4aa6cd1125a
parent 3fa2f078
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -213,6 +213,7 @@ pub fn create_device_config_sysprops(mut input: Input) -> Result<Vec<u8>> {
#[derive(Copy, Clone, Debug, PartialEq, Eq, ValueEnum)]
pub enum DumpFormat {
    Text,
    Verbose,
    Protobuf,
    Textproto,
}
@@ -237,6 +238,21 @@ pub fn dump_parsed_flags(mut input: Vec<Input>, format: DumpFormat) -> Result<Ve
                output.extend_from_slice(line.as_bytes());
            }
        }
        DumpFormat::Verbose => {
            for parsed_flag in parsed_flags.parsed_flag.into_iter() {
                let sources: Vec<_> =
                    parsed_flag.trace.iter().map(|tracepoint| tracepoint.source()).collect();
                let line = format!(
                    "{}/{}: {:?} + {:?} ({})\n",
                    parsed_flag.package(),
                    parsed_flag.name(),
                    parsed_flag.permission(),
                    parsed_flag.state(),
                    sources.join(", ")
                );
                output.extend_from_slice(line.as_bytes());
            }
        }
        DumpFormat::Protobuf => {
            parsed_flags.write_to_vec(&mut output)?;
        }