def test_vnfd_parse(self):
         self.remove_temp_dir()
-        csar_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf"
         input_parameters = [{"value": "222222", "key": "sdncontroller"}]
-        vcpe = ["vgw"]
+        vcpe = ["vgw", "infra", "vbng", "vbrgemu", "vgmux"]
+        sriov_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf/vcpesriov"
         for vcpe_part in vcpe:
-            csar_file = ("%s/%s.csar" % (csar_path, vcpe_part))
+            csar_file = ("%s/%s.csar" % (sriov_path, vcpe_part))
             logger.debug("csar_file:%s", csar_file)
             vnfd_json = parse_vnfd(csar_file, input_parameters)
             metadata = json.loads(vnfd_json).get("metadata")
-            logger.debug("metadata:%s", metadata)
+            logger.debug("sriov metadata:%s", metadata)
+            self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", ""))
+
+        dpdk_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf/vcpedpdk"
+        for vcpe_part in vcpe:
+            csar_file = ("%s/%s.csar" % (dpdk_path, vcpe_part))
+            logger.debug("csar_file:%s", csar_file)
+            vnfd_json = parse_vnfd(csar_file, input_parameters)
+            metadata = json.loads(vnfd_json).get("metadata")
+            logger.debug("dpdk metadata:%s", metadata)
             self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", ""))
 
     def test_pnfd_parse(self):
 
         rets = []
         inject_files = []
         for node in nodeTemplates:
-            logger.error("nodeTemplates :%s", node)
+            logger.debug("nodeTemplates :%s", node)
             if self.isNodeTypeX(node, node_types, VDU_COMPUTE_TYPE):
                 ret = {}
                 ret['vdu_id'] = node['name']
                 ret['properties'] = node['properties']
                 if 'inject_files' in node['properties']:
                     inject_files = node['properties']['inject_files']
-                if inject_files is not None:
+                if isinstance(inject_files, list):
                     for inject_file in inject_files:
                         source_path = os.path.join(self.basepath, inject_file['source_path'])
                         with open(source_path, "rb") as f:
                             source_data = f.read()
                             source_data_base64 = source_data.encode("base64")
                             inject_file["source_data_base64"] = source_data_base64
+                elif isinstance(inject_files, dict):
+                    source_path = os.path.join(self.basepath, inject_files['source_path'])
+                    with open(source_path, "rb") as f:
+                        source_data = f.read()
+                        source_data_base64 = source_data.encode("base64")
+                        inject_files["source_data_base64"] = source_data_base64
+                else:
+                    logger.warn("inject_files %s format is not right.", inject_files)
+
                 virtual_storages = self.getRequirementByName(node, 'virtual_storage')
                 ret['virtual_storages'] = map(functools.partial(self._trans_virtual_storage), virtual_storages)
                 ret['dependencies'] = map(lambda x: self.get_requirement_node_name(x), self.getNodeDependencys(node))