Merge "Fix bug in device path proto reading" into main
diff --git a/tools/aconfig/aconfig_device_paths/src/lib.rs b/tools/aconfig/aconfig_device_paths/src/lib.rs
index c5a6bff..7480b30 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::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 @@
 
     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")
+            ]
+        );
+    }
+}