return -EINVAL;
}
- ret = parse_manifest(root, manifest);
- if (ret != 0) {
- printf("Failed to parse_manifest(), ret=%d\n", ret);
- return ret;
+ if (!xmlStrEqual(root->name, "root")) {
+ printf("Invalid root node, %s\n", root->name);
+ return -EINVAL;
+ }
+
+ for (xmlNode *child = root->children; child; child = child->next) {
+ ret = parse_manifest(child, manifest);
+ if (ret != 0) {
+ printf("Failed to parse_manifest(), ret=%d\n", ret);
+ continue;
+ }
}
return 0;
using namespace std;
static char g_manifest_xml[] =
-"<manifest version=\"1.0\" type=\"platform\">"
-" <hal>"
-" <name>hal.device.display</name>"
-" <version>1.5</version>"
-" <transport>passthrough</transport>"
-" <interface>"
-" <name>hal_backend_device_display_data</name>"
-" </interface>"
-" <dependency>"
-" <hal>"
-" <name>hal.device.board</name>"
-" <version>1.0</version>"
-" <transport>passthrough</transport>"
-" <interface>"
-" <name>hal_backend_device_board_data</name>"
-" </interface>"
-" </hal>"
-" <hal>"
-" <name>hal.tdm</name>"
-" <version>1.0</version>"
-" <transport>passthrough</transport>"
-" <interface>"
-" <name>hal_backend_tdm_data</name>"
-" </interface>"
-" </hal>"
-" </dependency>"
-" </hal>"
-" <hal>"
-" <name>hal.something</name>"
-" <version>2.34</version>"
-" <transport>passthrough</transport>"
-" <interface>"
-" <name>hal_backend_something_data</name>"
-" </interface>"
-" </hal>"
-" <hal>"
-" <name>hal.test</name>"
-" <version>4.8</version>"
-" <transport>passthrough</transport>"
-" <interface>"
-" <name>hal_backend_test_data</name>"
-" </interface>"
-" </hal>"
-"</manifest>";
+"<root>"
+" <manifest version=\"1.0\" type=\"platform\">"
+" <hal>"
+" <name>hal.device.display</name>"
+" <version>1.5</version>"
+" <transport>passthrough</transport>"
+" <interface>"
+" <name>hal_backend_device_display_data</name>"
+" </interface>"
+" <dependency>"
+" <hal>"
+" <name>hal.device.board</name>"
+" <version>1.0</version>"
+" <transport>passthrough</transport>"
+" <interface>"
+" <name>hal_backend_device_board_data</name>"
+" </interface>"
+" </hal>"
+" <hal>"
+" <name>hal.tdm</name>"
+" <version>1.0</version>"
+" <transport>passthrough</transport>"
+" <interface>"
+" <name>hal_backend_tdm_data</name>"
+" </interface>"
+" </hal>"
+" </dependency>"
+" </hal>"
+" <hal>"
+" <name>hal.something</name>"
+" <version>2.34</version>"
+" <transport>passthrough</transport>"
+" <interface>"
+" <name>hal_backend_something_data</name>"
+" </interface>"
+" </hal>"
+" <hal>"
+" <name>hal.test</name>"
+" <version>4.8</version>"
+" <transport>passthrough</transport>"
+" <interface>"
+" <name>hal_backend_test_data</name>"
+" </interface>"
+" </hal>"
+" </manifest>"
+"</root>";
class HalccObjectTest : public ::testing::Test
{