diff --git a/level_zero/CMakeLists.txt b/level_zero/CMakeLists.txt index db583be5b8..d1ba7cb1c1 100644 --- a/level_zero/CMakeLists.txt +++ b/level_zero/CMakeLists.txt @@ -65,14 +65,6 @@ if(BUILD_WITH_L0) endif() if(UNIX) - # Xml Package - find_package(LibXml2) - if(PC_LIBXML_FOUND) - include_directories(SYSTEM ${LIBXML2_INCLUDE_DIR}) - message(STATUS "LibXml2 Library headers directory: ${LIBXML2_INCLUDE_DIR}") - else() - message(STATUS "LibXml2 Library headers not available. Building without.") - endif() # Netlink and Generic Netlink find_path(LIBGENL_INCLUDE_DIR netlink/genl/genl.h PATH_SUFFIXES libnl3) if(LIBGENL_INCLUDE_DIR) diff --git a/level_zero/tools/source/sysman/linux/os_sysman_imp.cpp b/level_zero/tools/source/sysman/linux/os_sysman_imp.cpp index 927079c80c..dd766e692b 100644 --- a/level_zero/tools/source/sysman/linux/os_sysman_imp.cpp +++ b/level_zero/tools/source/sysman/linux/os_sysman_imp.cpp @@ -12,7 +12,6 @@ namespace L0 { ze_result_t LinuxSysmanImp::init() { - pXmlParser = XmlParser::create(); pFwUtilInterface = FirmwareUtil::create(); pFsAccess = FsAccess::create(); UNRECOVERABLE_IF(nullptr == pFsAccess); @@ -52,10 +51,6 @@ PmuInterface *LinuxSysmanImp::getPmuInterface() { return pPmuInterface; } -XmlParser *LinuxSysmanImp::getXmlParser() { - return pXmlParser; -} - FirmwareUtil *LinuxSysmanImp::getFwUtilInterface() { return pFwUtilInterface; } @@ -140,10 +135,6 @@ LinuxSysmanImp::~LinuxSysmanImp() { delete pFsAccess; pFsAccess = nullptr; } - if (nullptr != pXmlParser) { - delete pXmlParser; - pXmlParser = nullptr; - } if (nullptr != pFwUtilInterface) { delete pFwUtilInterface; pFwUtilInterface = nullptr; diff --git a/level_zero/tools/source/sysman/linux/os_sysman_imp.h b/level_zero/tools/source/sysman/linux/os_sysman_imp.h index 98902e2fc9..233379e169 100644 --- a/level_zero/tools/source/sysman/linux/os_sysman_imp.h +++ b/level_zero/tools/source/sysman/linux/os_sysman_imp.h @@ -15,7 +15,6 @@ #include "level_zero/tools/source/sysman/linux/fs_access.h" #include "level_zero/tools/source/sysman/linux/pmt/pmt.h" #include "level_zero/tools/source/sysman/linux/pmu/pmu_imp.h" -#include "level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h" #include "level_zero/tools/source/sysman/sysman_imp.h" #include @@ -30,7 +29,6 @@ class LinuxSysmanImp : public OsSysman, NEO::NonCopyableOrMovableClass { ze_result_t init() override; - XmlParser *getXmlParser(); PmuInterface *getPmuInterface(); FirmwareUtil *getFwUtilInterface(); FsAccess &getFsAccess(); @@ -44,7 +42,6 @@ class LinuxSysmanImp : public OsSysman, NEO::NonCopyableOrMovableClass { void releasePmtObject(); protected: - XmlParser *pXmlParser = nullptr; FsAccess *pFsAccess = nullptr; ProcfsAccess *pProcfsAccess = nullptr; SysfsAccess *pSysfsAccess = nullptr; diff --git a/level_zero/tools/source/sysman/linux/xml_parser/CMakeLists.txt b/level_zero/tools/source/sysman/linux/xml_parser/CMakeLists.txt deleted file mode 100644 index 0403ba604d..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (C) 2020 Intel Corporation -# -# SPDX-License-Identifier: MIT -# - -if(PC_LIBXML_FOUND) - set(L0_SRCS_TOOLS_SYSMAN_LINUX_XML_PARSER - ${CMAKE_CURRENT_SOURCE_DIR}/xml_parser_imp.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/xml_parser_imp.h - ${CMAKE_CURRENT_SOURCE_DIR}/xml2_api.h - ${CMAKE_CURRENT_SOURCE_DIR}/xml2_api.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/xml_parser.h - ) -else() - set(L0_SRCS_TOOLS_SYSMAN_LINUX_XML_PARSER - ${CMAKE_CURRENT_SOURCE_DIR}/xml_parser_stub.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/xml_parser.h - ) -endif() - -if(UNIX) - target_sources(${L0_STATIC_LIB_NAME} - PRIVATE - ${L0_SRCS_TOOLS_SYSMAN_LINUX_XML_PARSER} - ) -endif() - -# Make our source files visible to parent -set_property(GLOBAL PROPERTY L0_SRCS_TOOLS_SYSMAN_XML_PARSER_LINUX ${L0_SRCS_TOOLS_SYSMAN_XML_PARSER_LINUX}) diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.cpp b/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.cpp deleted file mode 100644 index cdccd1cd54..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.cpp +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "level_zero/tools/source/sysman/linux/xml_parser/xml2_api.h" - -namespace L0 { - -const std::string Xml2Api::xml2LibraryFile = "libxml2.so.2"; -const std::string Xml2Api::xmlInitParserRoutine = "xmlInitParser"; -const std::string Xml2Api::xmlCleanupParserRoutine = "xmlCleanupParser"; -const std::string Xml2Api::xmlReadFileRoutine = "xmlReadFile"; -const std::string Xml2Api::xmlReadMemoryRoutine = "xmlReadMemory"; -const std::string Xml2Api::xmlFreeDocRoutine = "xmlFreeDoc"; -const std::string Xml2Api::xmlXPathNewContextRoutine = "xmlXPathNewContext"; -const std::string Xml2Api::xmlXPathFreeContextRoutine = "xmlXPathFreeContext"; -const std::string Xml2Api::xmlXPathEvalRoutine = "xmlXPathEval"; -const std::string Xml2Api::xmlXPathNodeEvalRoutine = "xmlXPathNodeEval"; -const std::string Xml2Api::xmlXPathCastNodeToStringRoutine = "xmlXPathCastNodeToString"; -const std::string Xml2Api::xmlXPathFreeObjectRoutine = "xmlXPathFreeObject"; -const std::string Xml2Api::xmlGetNodePathRoutine = "xmlGetNodePath"; -const std::string Xml2Api::xmlGetPropRoutine = "xmlGetProp"; -const std::string Xml2Api::xmlMemGetRoutine = "xmlMemGet"; - -template -bool Xml2Api::getProcAddr(const std::string name, T &proc) { - void *addr; - addr = libraryHandle->getProcAddress(name); - proc = reinterpret_cast(addr); - return nullptr != proc; -} - -bool Xml2Api::loadEntryPoints() { - bool ok = true; - ok = ok && getProcAddr(xmlInitParserRoutine, xmlInitParserEntry); - ok = ok && getProcAddr(xmlCleanupParserRoutine, xmlCleanupParserEntry); - ok = ok && getProcAddr(xmlReadFileRoutine, xmlReadFileEntry); - ok = ok && getProcAddr(xmlReadMemoryRoutine, xmlReadMemoryEntry); - ok = ok && getProcAddr(xmlFreeDocRoutine, xmlFreeDocEntry); - ok = ok && getProcAddr(xmlXPathNewContextRoutine, xmlXPathNewContextEntry); - ok = ok && getProcAddr(xmlXPathFreeContextRoutine, xmlXPathFreeContextEntry); - ok = ok && getProcAddr(xmlXPathEvalRoutine, xmlXPathEvalEntry); - ok = ok && getProcAddr(xmlXPathNodeEvalRoutine, xmlXPathNodeEvalEntry); - ok = ok && getProcAddr(xmlXPathCastNodeToStringRoutine, xmlXPathCastNodeToStringEntry); - ok = ok && getProcAddr(xmlXPathFreeObjectRoutine, xmlXPathFreeObjectEntry); - ok = ok && getProcAddr(xmlGetNodePathRoutine, xmlGetNodePathEntry); - ok = ok && getProcAddr(xmlGetPropRoutine, xmlGetPropEntry); - - // Can't just get the symbol for xmlFree. Use xmlMemGet to find the xmlFree routine the library is using - pXmlMemGet xmlMemGetEntry; - ok = ok && getProcAddr(xmlMemGetRoutine, xmlMemGetEntry); - ok = ok && !(*xmlMemGetEntry)(&xmlFreeEntry, nullptr, nullptr, nullptr); - return ok; -} - -void Xml2Api::xmlInitParser() { - UNRECOVERABLE_IF(nullptr == xmlInitParserEntry); - (*xmlInitParserEntry)(); - return; -} - -void Xml2Api::xmlCleanupParser() { - UNRECOVERABLE_IF(nullptr == xmlCleanupParserEntry); - (*xmlCleanupParserEntry)(); - return; -} - -xmlDocPtr Xml2Api::xmlReadFile(const std::string filename, int options) { - UNRECOVERABLE_IF(nullptr == xmlReadFileEntry); - return (*xmlReadFileEntry)(filename.c_str(), NULL, options); -} - -xmlDocPtr Xml2Api::xmlReadMemory(const std::string buffer, int options) { - UNRECOVERABLE_IF(nullptr == xmlReadMemoryEntry); - const char *cbuf = buffer.c_str(); - int size = static_cast(buffer.length()); - return (*xmlReadMemoryEntry)(cbuf, size, NULL, NULL, options); -} - -void Xml2Api::xmlFreeDoc(xmlDocPtr doc) { - UNRECOVERABLE_IF(nullptr == xmlFreeDocEntry); - (*xmlFreeDocEntry)(doc); - return; -} - -xmlXPathContextPtr Xml2Api::xmlXPathNewContext(xmlDocPtr doc) { - UNRECOVERABLE_IF(nullptr == xmlXPathNewContextEntry); - return (*xmlXPathNewContextEntry)(doc); -} - -void Xml2Api::xmlXPathFreeContext(xmlXPathContextPtr cntx) { - UNRECOVERABLE_IF(nullptr == xmlXPathFreeContextEntry); - (*xmlXPathFreeContextEntry)(cntx); - return; -} - -xmlXPathObjectPtr Xml2Api::xmlXPathEval(const std::string expr, xmlXPathContextPtr cntx) { - UNRECOVERABLE_IF(nullptr == xmlXPathEvalEntry); - return (*xmlXPathEvalEntry)(reinterpret_cast(expr.c_str()), cntx); -} - -xmlXPathObjectPtr Xml2Api::xmlXPathNodeEval(xmlNodePtr node, const std::string expr, xmlXPathContextPtr cntx) { - UNRECOVERABLE_IF(nullptr == xmlXPathNodeEvalEntry); - return (*xmlXPathNodeEvalEntry)(node, reinterpret_cast(expr.c_str()), cntx); -} - -std::string Xml2Api::xmlXPathCastNodeToString(xmlNodePtr node) { - UNRECOVERABLE_IF(nullptr == xmlXPathCastNodeToStringEntry); - xmlChar *pXmlChar = (*xmlXPathCastNodeToStringEntry)(node); - if (nullptr == pXmlChar) { - return std::string(); - } else { - std::string str(reinterpret_cast(pXmlChar)); - this->xmlFree(pXmlChar); - return str; - } -} - -void Xml2Api::xmlXPathFreeObject(xmlXPathObjectPtr obj) { - UNRECOVERABLE_IF(nullptr == xmlXPathFreeObjectEntry); - (*xmlXPathFreeObjectEntry)(obj); - return; -} - -std::string Xml2Api::xmlGetNodePath(const xmlNodePtr node) { - UNRECOVERABLE_IF(nullptr == xmlGetNodePathEntry); - xmlChar *pXmlChar = (*xmlGetNodePathEntry)(node); - if (nullptr == pXmlChar) { - return std::string(); - } else { - std::string str(reinterpret_cast(pXmlChar)); - this->xmlFree(pXmlChar); - return str; - } -} - -std::string Xml2Api::xmlGetProp(const xmlNodePtr node, std::string prop) { - UNRECOVERABLE_IF(nullptr == xmlGetPropEntry); - xmlChar *pXmlChar = (*xmlGetPropEntry)(node, reinterpret_cast(prop.c_str())); - if (nullptr == pXmlChar) { - return std::string(); - } else { - std::string str(reinterpret_cast(pXmlChar)); - this->xmlFree(pXmlChar); - return str; - } -} - -void Xml2Api::xmlFree(void *obj) { - UNRECOVERABLE_IF(nullptr == xmlFreeEntry); - (*xmlFreeEntry)(obj); - return; -} - -Xml2Api *Xml2Api::create() { - Xml2Api *pXml2Api = new Xml2Api; - UNRECOVERABLE_IF(nullptr == pXml2Api); - - pXml2Api->libraryHandle = NEO::OsLibrary::load(xml2LibraryFile); - if (pXml2Api->libraryHandle == nullptr || !pXml2Api->loadEntryPoints()) { - delete pXml2Api; - return nullptr; - } - return pXml2Api; -} - -Xml2Api::~Xml2Api() { - if (nullptr != libraryHandle) { - delete libraryHandle; - libraryHandle = nullptr; - } -} -} // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.h b/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.h deleted file mode 100644 index 401d3be9c9..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml2_api.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once -#include "shared/source/helpers/non_copyable_or_moveable.h" - -#include "level_zero/core/source/device/device.h" - -#include -#include -#include -#include - -namespace L0 { - -typedef void (*pXmlInitParser)(); -typedef void (*pXmlCleanupParser)(); -typedef xmlDocPtr (*pXmlReadFile)(const char *, const char *, int); -typedef xmlDocPtr (*pXmlReadMemory)(const char *, int, const char *, const char *, int); -typedef void (*pXmlFreeDoc)(xmlDocPtr); -typedef xmlXPathContextPtr (*pXmlXPathNewContext)(xmlDocPtr); -typedef void (*pXmlXPathFreeContext)(xmlXPathContextPtr); -typedef xmlXPathObjectPtr (*pXmlXPathEval)(const xmlChar *, xmlXPathContextPtr); -typedef xmlXPathObjectPtr (*pXmlXPathNodeEval)(xmlNodePtr, const xmlChar *, xmlXPathContextPtr); -typedef xmlChar *(*pXmlXPathCastNodeToString)(xmlNodePtr); -typedef void (*pXmlXPathFreeObject)(xmlXPathObjectPtr); -typedef xmlChar *(*pXmlGetNodePath)(const xmlNodePtr); -typedef xmlChar *(*pXmlGetProp)(const xmlNodePtr, const xmlChar *); -typedef int (*pXmlMemGet)(xmlFreeFunc *, xmlMallocFunc *, xmlReallocFunc *, xmlStrdupFunc *); - -class Xml2Api : public NEO::NonCopyableOrMovableClass { - public: - void xmlInitParser(); - void xmlCleanupParser(); - xmlDocPtr xmlReadFile(const std::string filename, int options); - xmlDocPtr xmlReadMemory(const std::string buffer, int options); - void xmlFreeDoc(xmlDocPtr doc); - xmlXPathContextPtr xmlXPathNewContext(xmlDocPtr doc); - void xmlXPathFreeContext(xmlXPathContextPtr); - xmlXPathObjectPtr xmlXPathEval(const std::string expr, xmlXPathContextPtr cntx); - xmlXPathObjectPtr xmlXPathNodeEval(xmlNodePtr node, const std::string expr, xmlXPathContextPtr cntx); - std::string xmlXPathCastNodeToString(xmlNodePtr node); - void xmlXPathFreeObject(xmlXPathObjectPtr obj); - std::string xmlGetNodePath(const xmlNodePtr node); - std::string xmlGetProp(const xmlNodePtr node, std::string prop); - - ~Xml2Api(); - static Xml2Api *create(); - - private: - template - bool getProcAddr(const std::string name, T &proc); - Xml2Api() = default; - - bool loadEntryPoints(); - void xmlFree(void *obj); - - NEO::OsLibrary *libraryHandle = nullptr; - static const std::string xml2LibraryFile; - static const std::string xmlInitParserRoutine; - static const std::string xmlCleanupParserRoutine; - static const std::string xmlReadFileRoutine; - static const std::string xmlReadMemoryRoutine; - static const std::string xmlFreeDocRoutine; - static const std::string xmlXPathNewContextRoutine; - static const std::string xmlXPathFreeContextRoutine; - static const std::string xmlXPathEvalRoutine; - static const std::string xmlXPathNodeEvalRoutine; - static const std::string xmlXPathCastNodeToStringRoutine; - static const std::string xmlXPathFreeObjectRoutine; - static const std::string xmlGetNodePathRoutine; - static const std::string xmlGetPropRoutine; - static const std::string xmlMemGetRoutine; - - pXmlInitParser xmlInitParserEntry = nullptr; - pXmlCleanupParser xmlCleanupParserEntry = nullptr; - pXmlReadFile xmlReadFileEntry = nullptr; - pXmlReadMemory xmlReadMemoryEntry = nullptr; - pXmlFreeDoc xmlFreeDocEntry = nullptr; - pXmlXPathNewContext xmlXPathNewContextEntry = nullptr; - pXmlXPathFreeContext xmlXPathFreeContextEntry = nullptr; - pXmlXPathEval xmlXPathEvalEntry = nullptr; - pXmlXPathNodeEval xmlXPathNodeEvalEntry = nullptr; - pXmlXPathCastNodeToString xmlXPathCastNodeToStringEntry = nullptr; - pXmlXPathFreeObject xmlXPathFreeObjectEntry = nullptr; - pXmlGetNodePath xmlGetNodePathEntry = nullptr; - pXmlGetProp xmlGetPropEntry = nullptr; - xmlFreeFunc xmlFreeEntry = nullptr; -}; - -} // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h b/level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h deleted file mode 100644 index a6fb5946ba..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once - -#include -#include - -namespace L0 { - -class XmlNode { - public: - virtual ~XmlNode() = default; - - virtual std::vector xPath(std::string path) = 0; - virtual std::string getName() = 0; - virtual std::string getPath() = 0; - virtual std::string getText() = 0; - virtual std::string getAttribute(std::string attribute) = 0; -}; - -class XmlDoc { - public: - virtual ~XmlDoc() = default; - - virtual std::vector xPath(std::string path) = 0; -}; - -class XmlParser { - public: - virtual ~XmlParser() = default; - - virtual XmlDoc *parseFile(std::string filename) = 0; - virtual XmlDoc *parseBuffer(std::string buffer) = 0; - - static XmlParser *create(); -}; - -} // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.cpp b/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.cpp deleted file mode 100644 index 7963e74aef..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "sysman/linux/xml_parser/xml_parser_imp.h" - -namespace L0 { - -std::vector XmlNodeImp::xPath(std::string path) { - std::vector nodes; - xmlXPathContextPtr cntx = pXml2Api->xmlXPathNewContext(doc); - if (nullptr != cntx) { - xmlXPathObjectPtr xpathObj = pXml2Api->xmlXPathNodeEval(node, path, cntx); - if (nullptr != xpathObj) { - xmlNodeSetPtr nodeset = xpathObj->nodesetval; - for (int i = 0; i < xmlXPathNodeSetGetLength(nodeset); i++) { - xmlNodePtr node = xmlXPathNodeSetItem(nodeset, i); - if (nullptr == node) { - continue; - } - XmlNodeImp *pXmlNodeImp = new XmlNodeImp(pXml2Api, doc, node); - UNRECOVERABLE_IF(nullptr == pXmlNodeImp); - nodes.push_back(pXmlNodeImp); - } - pXml2Api->xmlXPathFreeObject(xpathObj); - } - pXml2Api->xmlXPathFreeContext(cntx); - } - return nodes; -} - -std::string XmlNodeImp::getName() { - return std::string(reinterpret_cast(node->name)); -} - -std::string XmlNodeImp::getPath() { - return pXml2Api->xmlGetNodePath(node); -} - -std::string XmlNodeImp::getText() { - return pXml2Api->xmlXPathCastNodeToString(node); -} - -std::string XmlNodeImp::getAttribute(std::string attribute) { - return pXml2Api->xmlGetProp(node, attribute); -} - -std::vector XmlDocImp::xPath(std::string path) { - std::vector nodes; - xmlXPathContextPtr cntx = pXml2Api->xmlXPathNewContext(doc); - if (nullptr != cntx) { - xmlXPathObjectPtr xpathObj = pXml2Api->xmlXPathEval(path, cntx); - if (nullptr != xpathObj) { - xmlNodeSetPtr nodeset = xpathObj->nodesetval; - for (int i = 0; i < xmlXPathNodeSetGetLength(nodeset); i++) { - xmlNodePtr node = xmlXPathNodeSetItem(nodeset, i); - if (nullptr == node) { - continue; - } - XmlNodeImp *pXmlNodeImp = new XmlNodeImp(pXml2Api, doc, node); - UNRECOVERABLE_IF(nullptr == pXmlNodeImp); - nodes.push_back(pXmlNodeImp); - } - pXml2Api->xmlXPathFreeObject(xpathObj); - } - pXml2Api->xmlXPathFreeContext(cntx); - } - return nodes; -} - -XmlDoc *XmlDocImp::parseFile(Xml2Api *pXml2Api, std::string filename) { - // Don't allow the parser to print errors or warnings. Don't allow network file access. - xmlDocPtr doc = pXml2Api->xmlReadFile(filename, XML_PARSE_NOERROR | XML_PARSE_NOWARNING | XML_PARSE_NONET); - if (nullptr != doc) { - return new XmlDocImp(pXml2Api, doc); - } - return nullptr; -} - -XmlDoc *XmlDocImp::parseBuffer(Xml2Api *pXml2Api, std::string buffer) { - // Don't allow the parser to print errors or warnings. Don't allow network file access. - xmlDocPtr doc = pXml2Api->xmlReadMemory(buffer, XML_PARSE_NOERROR | XML_PARSE_NOWARNING | XML_PARSE_NONET); - if (nullptr != doc) { - return new XmlDocImp(pXml2Api, doc); - } - return nullptr; -} - -XmlDocImp::~XmlDocImp() { - pXml2Api->xmlFreeDoc(doc); -} - -XmlDoc *XmlParserImp::parseFile(std::string filename) { - return XmlDocImp::parseFile(pXml2Api, filename); -} - -XmlDoc *XmlParserImp::parseBuffer(std::string buffer) { - return XmlDocImp::parseBuffer(pXml2Api, buffer); -} - -XmlParserImp::XmlParserImp() { - pXml2Api = Xml2Api::create(); - if (nullptr != pXml2Api) { - pXml2Api->xmlInitParser(); - } -} - -XmlParserImp::~XmlParserImp() { - if (nullptr != pXml2Api) { - pXml2Api->xmlCleanupParser(); - delete pXml2Api; - pXml2Api = nullptr; - } -} - -XmlParser *XmlParser::create() { - XmlParserImp *pXmlParserImp = new XmlParserImp; - UNRECOVERABLE_IF(nullptr == pXmlParserImp); - if (!pXmlParserImp->isAvailable()) { - delete pXmlParserImp; - pXmlParserImp = nullptr; - } - return pXmlParserImp; -} - -} // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.h b/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.h deleted file mode 100644 index 30b7cb0f89..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_imp.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once - -#include "shared/source/helpers/non_copyable_or_moveable.h" - -#include "level_zero/tools/source/sysman/linux/xml_parser/xml2_api.h" -#include "level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h" - -namespace L0 { - -class XmlNodeImp : public XmlNode, NEO::NonCopyableOrMovableClass { - public: - XmlNodeImp() = delete; - XmlNodeImp(Xml2Api *pXml2Api, xmlDocPtr doc, xmlNodePtr node) : pXml2Api(pXml2Api), doc(doc), node(node) {} - ~XmlNodeImp() override = default; - - std::vector xPath(std::string path) override; - std::string getName() override; - std::string getPath() override; - std::string getText() override; - std::string getAttribute(std::string attribute) override; - - private: - Xml2Api *pXml2Api = nullptr; - xmlDocPtr doc = nullptr; - xmlNodePtr node = nullptr; -}; - -class XmlDocImp : public XmlDoc, NEO::NonCopyableOrMovableClass { - public: - XmlDocImp() = delete; - ~XmlDocImp() override; - - std::vector xPath(std::string path) override; - - static XmlDoc *parseFile(Xml2Api *pXml2Api, std::string filename); - static XmlDoc *parseBuffer(Xml2Api *pXml2Api, std::string buffer); - - private: - XmlDocImp(Xml2Api *pXml2Api, xmlDocPtr doc) : pXml2Api(pXml2Api), doc(doc) {} - - Xml2Api *pXml2Api = nullptr; - xmlDocPtr doc = nullptr; -}; - -class XmlParserImp : public XmlParser, NEO::NonCopyableOrMovableClass { - public: - XmlParserImp(); - ~XmlParserImp() override; - - XmlDoc *parseFile(std::string filename) override; - XmlDoc *parseBuffer(std::string buffer) override; - - bool isAvailable() { return nullptr != pXml2Api; } - - private: - Xml2Api *pXml2Api = nullptr; -}; - -} // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_stub.cpp b/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_stub.cpp deleted file mode 100644 index ccda4b15af..0000000000 --- a/level_zero/tools/source/sysman/linux/xml_parser/xml_parser_stub.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "sysman/linux/xml_parser/xml_parser.h" - -namespace L0 { - -XmlParser *XmlParser::create() { - return nullptr; -} - -} // namespace L0 diff --git a/level_zero/tools/test/unit_tests/sources/sysman/linux/mock_sysman_fixture.h b/level_zero/tools/test/unit_tests/sources/sysman/linux/mock_sysman_fixture.h index 2ee69abd43..b24f0e3dc9 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/linux/mock_sysman_fixture.h +++ b/level_zero/tools/test/unit_tests/sources/sysman/linux/mock_sysman_fixture.h @@ -38,7 +38,6 @@ class PublicLinuxSysmanImp : public L0::LinuxSysmanImp { using LinuxSysmanImp::pPmuInterface; using LinuxSysmanImp::pProcfsAccess; using LinuxSysmanImp::pSysfsAccess; - using LinuxSysmanImp::pXmlParser; }; class SysmanDeviceFixture : public DeviceFixture, public ::testing::Test { diff --git a/level_zero/tools/test/unit_tests/sources/sysman/linux/test_sysman.cpp b/level_zero/tools/test/unit_tests/sources/sysman/linux/test_sysman.cpp index 3807bdd75c..9ec0741745 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/linux/test_sysman.cpp +++ b/level_zero/tools/test/unit_tests/sources/sysman/linux/test_sysman.cpp @@ -175,16 +175,6 @@ TEST_F(SysmanDeviceFixture, GivenPmuInterfaceHandleWhenCallinggetPmuInterfaceThe EXPECT_EQ(pLinuxSysmanImp->getPmuInterface(), pLinuxSysmanImp->pPmuInterface); } -TEST_F(SysmanDeviceFixture, GivenXmlParserHandleWhenCallinggetXmlParserThenCreatedXmlParserHandleWillBeRetrieved) { - if (pLinuxSysmanImp->pXmlParser != nullptr) { - //delete previously allocated XmlParser - delete pLinuxSysmanImp->pXmlParser; - pLinuxSysmanImp->pXmlParser = nullptr; - } - pLinuxSysmanImp->pXmlParser = XmlParser::create(); - EXPECT_EQ(pLinuxSysmanImp->getXmlParser(), pLinuxSysmanImp->pXmlParser); -} - TEST_F(SysmanDeviceFixture, GivenFwUtilInterfaceHandleWhenCallinggetFwUtilInterfaceThenCreatedFwUtilInterfaceHandleWillBeRetrieved) { if (pLinuxSysmanImp->pFwUtilInterface != nullptr) { //delete previously allocated FwUtilInterface diff --git a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/CMakeLists.txt b/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/CMakeLists.txt deleted file mode 100644 index 2cc801bbb9..0000000000 --- a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (C) 2020 Intel Corporation -# -# SPDX-License-Identifier: MIT -# - -target_sources(${TARGET_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt -) - -add_subdirectories() diff --git a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/CMakeLists.txt b/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/CMakeLists.txt deleted file mode 100644 index e50d0aff32..0000000000 --- a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (C) 2020 Intel Corporation -# -# SPDX-License-Identifier: MIT -# - -if(UNIX) - target_sources(${TARGET_NAME} - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - ${CMAKE_CURRENT_SOURCE_DIR}/test_sysman_xml_parser.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/sample_xml.h - ) -endif() diff --git a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/sample_xml.h b/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/sample_xml.h deleted file mode 100644 index 3c43f87dd6..0000000000 --- a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/sample_xml.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2020 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once -#include - -namespace L0 { -namespace ult { - -std::string testXmlBuffer( - "\n" - "\n" - " \n" - " \n" - " \n" - " text one\n" - " \n" - " \n" - " text two\n" - " 2\n" - " \n" - " \n" - " text three\n" - " 3\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n"); - -} // namespace ult -} // namespace L0 diff --git a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/test_sysman_xml_parser.cpp b/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/test_sysman_xml_parser.cpp deleted file mode 100644 index d3a9683e1e..0000000000 --- a/level_zero/tools/test/unit_tests/sources/sysman/xml_parser/linux/test_sysman_xml_parser.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 2020-2021 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h" -#include "level_zero/tools/source/sysman/linux/xml_parser/xml_parser.h" -#include "level_zero/tools/source/sysman/sysman_imp.h" - -#include "gtest/gtest.h" -#include "sample_xml.h" - -namespace L0 { -namespace ult { - -class SysmanXmlParserFixture : public ::testing::Test { - - protected: - XmlParser *pXmlParser = nullptr; - XmlDoc *pXmlDoc = nullptr; - - void SetUp() override { - pXmlParser = XmlParser::create(); - - if (nullptr == pXmlParser) { - GTEST_SKIP(); - } - - pXmlDoc = pXmlParser->parseBuffer(testXmlBuffer); - ASSERT_NE(pXmlDoc, nullptr); - } - void TearDown() override { - if (nullptr != pXmlDoc) { - delete pXmlDoc; - pXmlDoc = nullptr; - } - if (nullptr != pXmlParser) { - delete pXmlParser; - pXmlParser = nullptr; - } - } -}; -TEST_F(SysmanXmlParserFixture, GivenValidXPathWhenCallingXmlDocXPathWithValidXmlDocThenVerifyXPathReturnsCorrectXmlNodes) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("/testElement/testSubElement")); - EXPECT_EQ(xmlNodes.size(), 2U); - for (auto pXmlNode : xmlNodes) { - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenValidXPathWhenCallingXmlNodeXPathWithValidXmlNodeThenVerifyXPathReturnsCorrectXmlNodes) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("/testElement/testSubElement[@prop='A']")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::vector subXmlNodes = pXmlNode->xPath(std::string("testSubSubElement")); - EXPECT_EQ(subXmlNodes.size(), 3U); - for (auto pSubXmlNode : subXmlNodes) { - delete pSubXmlNode; - } - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenValidXmlodeWhenCallingXmlNodeGetTextThenVerifyGetTextReturnsCorrectText) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("/testElement/testSubElement[@prop='A']")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::vector subXmlNodes = pXmlNode->xPath(std::string("testSubSubElement/testTextElement[contains(text(),'two')]")); - EXPECT_EQ(subXmlNodes.size(), 1U); - for (auto pSubXmlNode : subXmlNodes) { - std::string text = pSubXmlNode->getText(); - EXPECT_STREQ(text.c_str(), "text two"); - delete pSubXmlNode; - } - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenEmptyXmlNodeWhenCallingXmlNodeGetTextThenVerifyGetTextReturnsEmptyString) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::string text = pXmlNode->getText(); - EXPECT_EQ(0U, text.length()); - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenValidAttributeWhenCallingXmlNodeGetAttributeWithValidNodeThenVerifyXmlNodeGetAttributeReturnsCorrectString) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::string attrib; - attrib = pXmlNode->getAttribute(std::string("attribOne")); - EXPECT_STREQ(attrib.c_str(), "valueOne"); - attrib = pXmlNode->getAttribute(std::string("attribTwo")); - EXPECT_STREQ(attrib.c_str(), "valueTwo"); - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenValidXmlNodeWhenCallingXmlNodeGetNameThenVerifyXmlNodeGetNameReturnsCorrectString) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::string name; - name = pXmlNode->getName(); - EXPECT_STREQ(name.c_str(), "testEmptyElement"); - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenValidXmlNodeWhenCallingXmlNodeGetPathThenVerifyXmlNodeGetPathReturnsCorrectString) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::string path; - path = pXmlNode->getPath(); - EXPECT_STREQ(path.c_str(), "/testElement/testSubElement[1]/testSubSubElement[1]/testEmptyElement"); - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenMissingAttributeWhenCallingXmlNodeGetAttributeWithValidNodeThenVerifyXmlNodeGetAttributeReturnsEmptyString) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::string attrib; - attrib = pXmlNode->getAttribute(std::string("noSushAttrib")); - EXPECT_EQ(0U, attrib.length()); - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenNonExistentFileWhenCallingParseFileThenVerifyParseFileReturnsNullptr) { - - XmlDoc *pNoXmlDoc = pXmlParser->parseFile(std::string("NoSuchFile.xml")); - EXPECT_EQ(pNoXmlDoc, nullptr); -} -TEST_F(SysmanXmlParserFixture, GivenInvalidXmlBufferFileWhenCallingParseBufferThenVerifyParseBufferReturnsNullptr) { - - std::string invalidXmlBuffer = testXmlBuffer.substr(2); // omit starting parseBuffer(invalidXmlBuffer); - EXPECT_EQ(pInvalidXmlDoc, nullptr); -} -TEST_F(SysmanXmlParserFixture, GivenNonExistentXPathWhenCallingXmlDocXPathWithValidXmlDocVerifyXmlDocXPathReturnsEmptyVector) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/NoSuchElement")); - EXPECT_EQ(xmlNodes.size(), 0U); - for (auto pXmlNode : xmlNodes) { - delete pXmlNode; - } -} -TEST_F(SysmanXmlParserFixture, GivenNonExistentXPathWhenCallingXmlNodeXPathWithValidXmlNodeThenVerifyXmlNodeXPathReturnsEmptyVector) { - - std::vector xmlNodes = pXmlDoc->xPath(std::string("//testSubSubElement[@id='one']/testEmptyElement")); - EXPECT_EQ(xmlNodes.size(), 1U); - for (auto pXmlNode : xmlNodes) { - std::vector subXmlNodes = pXmlNode->xPath(std::string("NoSuchElement")); - EXPECT_EQ(subXmlNodes.size(), 0U); - for (auto pSubXmlNode : subXmlNodes) { - delete pSubXmlNode; - } - delete pXmlNode; - } -} - -} // namespace ult -} // namespace L0