summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-05-14 21:01:21 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-05-14 21:01:21 +0000
commitb63973dfc217fc701d967a8cf83c71b34a54fa2c (patch)
tree17895efe79dd34f162130877deb2f35ff1e16287
parenta4b1e92ee0bda805cb147c565997f84e037a3666 (diff)
parent1f9d55d2ab4ed2fd8445fbed067467af0e4e9706 (diff)
Merge "Fix bug in device path proto reading" into main
-rw-r--r--tools/aconfig/aconfig_device_paths/src/lib.rs34
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")
+ ]
+ );
+ }
+}