diff options
author | 2024-05-14 21:01:21 +0000 | |
---|---|---|
committer | 2024-05-14 21:01:21 +0000 | |
commit | b63973dfc217fc701d967a8cf83c71b34a54fa2c (patch) | |
tree | 17895efe79dd34f162130877deb2f35ff1e16287 | |
parent | a4b1e92ee0bda805cb147c565997f84e037a3666 (diff) | |
parent | 1f9d55d2ab4ed2fd8445fbed067467af0e4e9706 (diff) |
Merge "Fix bug in device path proto reading" into main
-rw-r--r-- | tools/aconfig/aconfig_device_paths/src/lib.rs | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/tools/aconfig/aconfig_device_paths/src/lib.rs b/tools/aconfig/aconfig_device_paths/src/lib.rs index c5a6bff1f7..7480b3002c 100644 --- a/tools/aconfig/aconfig_device_paths/src/lib.rs +++ b/tools/aconfig/aconfig_device_paths/src/lib.rs @@ -21,11 +21,19 @@ use std::path::PathBuf; use std::fs; +fn read_partition_paths() -> Vec<PathBuf> { + include_str!("../partition_aconfig_flags_paths.txt") + .split(',') + .map(|s| s.trim().trim_matches('"')) + .filter(|s| !s.is_empty()) + .map(|s| PathBuf::from(s.to_string())) + .collect() +} + /// Determine all paths that contain an aconfig protobuf file. pub fn parsed_flags_proto_paths() -> Result<Vec<PathBuf>> { - let mut result: Vec<PathBuf> = [include_str!("../partition_aconfig_flags_paths.txt")] - .map(|s| PathBuf::from(s.to_string())) - .to_vec(); + let mut result: Vec<PathBuf> = read_partition_paths(); + for dir in fs::read_dir("/apex")? { let dir = dir?; @@ -45,3 +53,23 @@ pub fn parsed_flags_proto_paths() -> Result<Vec<PathBuf>> { Ok(result) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_read_partition_paths() { + assert_eq!(read_partition_paths().len(), 4); + + assert_eq!( + read_partition_paths(), + vec![ + PathBuf::from("/system/etc/aconfig_flags.pb"), + PathBuf::from("/system_ext/etc/aconfig_flags.pb"), + PathBuf::from("/product/etc/aconfig_flags.pb"), + PathBuf::from("/vendor/etc/aconfig_flags.pb") + ] + ); + } +} |