libfdt: Add property iterator
Bug: 277993056
Test: atest liblibfdt.integration_test
Change-Id: I80449de22b2550e3907424c25f1148f52ba7d9bd
diff --git a/libs/libfdt/tests/api_test.rs b/libs/libfdt/tests/api_test.rs
index 513ffd8..9be1bf9 100644
--- a/libs/libfdt/tests/api_test.rs
+++ b/libs/libfdt/tests/api_test.rs
@@ -99,3 +99,23 @@
assert_eq!(node.name().unwrap().to_str().unwrap(), name);
}
}
+
+#[test]
+fn node_properties() {
+ let data = fs::read(TEST_TREE_WITH_NO_MEMORY_NODE_PATH).unwrap();
+ let fdt = Fdt::from_slice(&data).unwrap();
+ let root = fdt.root().unwrap();
+ let one_be = 0x1_u32.to_be_bytes();
+ let expected: Vec<(&str, &[u8])> = vec![
+ ("model", b"MyBoardName\0"),
+ ("compatible", b"MyBoardName\0MyBoardFamilyName\0"),
+ ("#address-cells", &one_be),
+ ("#size-cells", &one_be),
+ ("empty_prop", b""),
+ ];
+
+ for (prop, (name, value)) in root.properties().unwrap().zip(expected) {
+ assert_eq!(prop.name().unwrap().to_str().unwrap(), name);
+ assert_eq!(prop.value().unwrap(), value);
+ }
+}