Move cts_audio_quality off abandoned tinyxml.
Bug: http://b/30215664
Change-Id: I5b7d831960751b3dacdd4a0b53161051faef5d56
diff --git a/suite/audio_quality/executable/Android.mk b/suite/audio_quality/executable/Android.mk
index 26b5379..b22d542 100644
--- a/suite/audio_quality/executable/Android.mk
+++ b/suite/audio_quality/executable/Android.mk
@@ -17,9 +17,8 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/include external/tinyalsa/include/ libcore/include \
- $(LOCAL_PATH)/../lib/src
-LOCAL_STATIC_LIBRARIES += libutils liblog libcutils libtinyalsa libtinyxml
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../lib/include $(LOCAL_PATH)/../lib/src
+LOCAL_STATIC_LIBRARIES += libutils liblog libcutils libtinyalsa libtinyxml2
LOCAL_WHOLE_STATIC_LIBRARIES := libcts_audio_quality
LOCAL_CFLAGS:= -g -fno-exceptions
LOCAL_LDFLAGS:= -g -lrt -ldl -lm -fno-exceptions -lpthread
diff --git a/suite/audio_quality/lib/Android.mk b/suite/audio_quality/lib/Android.mk
index 44fbebb..cd19e85 100644
--- a/suite/audio_quality/lib/Android.mk
+++ b/suite/audio_quality/lib/Android.mk
@@ -17,9 +17,8 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/src \
- external/tinyalsa/include/ external/tinyxml/ libcore/include
-LOCAL_STATIC_LIBRARIES += libutils liblog libtinyalsa libcutils libtinyxml
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/src
+LOCAL_STATIC_LIBRARIES += libutils liblog libtinyalsa libcutils libtinyxml2
LOCAL_CFLAGS:= -g -fno-exceptions
LOCAL_LDFLAGS:= -g -lrt -ldl -lm -fno-exceptions
LOCAL_MODULE_HOST_OS := linux
diff --git a/suite/audio_quality/lib/include/GenericFactory.h b/suite/audio_quality/lib/include/GenericFactory.h
index 9f74b7f..9dc9c02 100644
--- a/suite/audio_quality/lib/include/GenericFactory.h
+++ b/suite/audio_quality/lib/include/GenericFactory.h
@@ -26,7 +26,7 @@
*/
class GenericFactory {
public:
-
+ virtual ~GenericFactory();
virtual ClientInterface* createClientInterface();
virtual TaskGeneric* createTask(TaskGeneric::TaskType type);
};
diff --git a/suite/audio_quality/lib/include/task/ModelBuilder.h b/suite/audio_quality/lib/include/task/ModelBuilder.h
index d8d9e6b..c997000 100644
--- a/suite/audio_quality/lib/include/task/ModelBuilder.h
+++ b/suite/audio_quality/lib/include/task/ModelBuilder.h
@@ -21,8 +21,9 @@
#include <utils/String8.h>
#include "TaskAll.h"
-class TiXmlElement;
-
+namespace tinyxml2 {
+class XMLElement;
+};
class GenericFactory;
@@ -48,11 +49,11 @@
};
private:
- virtual bool parseAttributes(const TiXmlElement& elem, TaskGeneric& task);
- virtual TaskGeneric* parseGeneric(const TiXmlElement& elem, int tableIndex);
- virtual TaskCase* parseCase(const TiXmlElement& root);
- virtual TaskBatch* parseBatch(const TiXmlElement& root, const android::String8& xmlFileName);
- virtual TaskCase* parseInclude(const TiXmlElement& elem, const android::String8& path);
+ virtual bool parseAttributes(const tinyxml2::XMLElement& elem, TaskGeneric& task);
+ virtual TaskGeneric* parseGeneric(const tinyxml2::XMLElement& elem, int tableIndex);
+ virtual TaskCase* parseCase(const tinyxml2::XMLElement& root);
+ virtual TaskBatch* parseBatch(const tinyxml2::XMLElement& root, const android::String8& xmlFileName);
+ virtual TaskCase* parseInclude(const tinyxml2::XMLElement& elem, const android::String8& path);
struct ParsingInfo {
const char* name; // XML element name
diff --git a/suite/audio_quality/lib/src/GenericFactory.cpp b/suite/audio_quality/lib/src/GenericFactory.cpp
index 2402055..d70d907 100644
--- a/suite/audio_quality/lib/src/GenericFactory.cpp
+++ b/suite/audio_quality/lib/src/GenericFactory.cpp
@@ -69,3 +69,6 @@
LOGD("GenericFactory::createTask 0x%x, type %d", task, type);
return task;
}
+
+GenericFactory::~GenericFactory() {
+}
diff --git a/suite/audio_quality/lib/src/task/ModelBuilder.cpp b/suite/audio_quality/lib/src/task/ModelBuilder.cpp
index dc06ffc..78e5138 100644
--- a/suite/audio_quality/lib/src/task/ModelBuilder.cpp
+++ b/suite/audio_quality/lib/src/task/ModelBuilder.cpp
@@ -14,7 +14,7 @@
* the License.
*/
-#include <tinyxml.h>
+#include <tinyxml2.h>
#include <memory>
@@ -22,6 +22,8 @@
#include "GenericFactory.h"
#include "task/ModelBuilder.h"
+using namespace tinyxml2;
+
static const int MAX_NO_CHILDREN = 8;
static const ModelBuilder::ChildInfo CASE_TABLE[] = {
{ TaskGeneric::ETaskSetup, true },
@@ -83,12 +85,13 @@
TaskGeneric* ModelBuilder::parseTestDescriptionXml(const android::String8& xmlFileName,
bool caseOnly)
{
- TiXmlDocument doc(xmlFileName.string());
- if (!doc.LoadFile()) {
- LOGE("ModelBuilder::parseTestDescriptionXml cannot load file %s", xmlFileName.string());
+ XMLDocument doc;
+ int error = doc.LoadFile(xmlFileName.string());
+ if (error != XML_NO_ERROR) {
+ LOGE("ModelBuilder::parseTestDescriptionXml cannot load file %s: %d", xmlFileName.string(), error);
return NULL;
}
- const TiXmlElement* root;
+ const XMLElement* root;
if ((root = doc.FirstChildElement("case")) != NULL) {
return parseCase(*root);
} else if (!caseOnly && ((root = doc.FirstChildElement("batch")) != NULL)) {
@@ -99,7 +102,7 @@
}
}
-TaskGeneric* ModelBuilder::parseGeneric(const TiXmlElement& self, int tableIndex)
+TaskGeneric* ModelBuilder::parseGeneric(const XMLElement& self, int tableIndex)
{
TaskGeneric::TaskType typeSelf(mParsingTable[tableIndex].type);
int Nchildren = mParsingTable[tableIndex].Nchildren;
@@ -118,7 +121,7 @@
}
// handle children
- const TiXmlElement* child = self.FirstChildElement();
+ const XMLElement* child = self.FirstChildElement();
while (child != NULL) {
TaskGeneric::TaskType childType(TaskGeneric::ETaskInvalid);
int i;
@@ -175,14 +178,14 @@
}
-TaskCase* ModelBuilder::parseCase(const TiXmlElement& root)
+TaskCase* ModelBuilder::parseCase(const XMLElement& root)
{
// position 0 of mParsingTable should be "case"
return reinterpret_cast<TaskCase*>(parseGeneric(root, 0));
}
-TaskBatch* ModelBuilder::parseBatch(const TiXmlElement& root, const android::String8& xmlFileName)
+TaskBatch* ModelBuilder::parseBatch(const XMLElement& root, const android::String8& xmlFileName)
{
std::unique_ptr<TaskBatch> batch(
reinterpret_cast<TaskBatch*>(mFactory->createTask(TaskGeneric::ETaskBatch)));
@@ -194,7 +197,7 @@
return NULL;
}
- const TiXmlElement* inc = root.FirstChildElement("include");
+ const XMLElement* inc = root.FirstChildElement("include");
if (inc == NULL) {
LOGE("ModelBuilder::handleBatch no include inside batch");
return NULL;
@@ -231,7 +234,7 @@
return batch.release();
}
-TaskCase* ModelBuilder::parseInclude(const TiXmlElement& elem, const android::String8& path)
+TaskCase* ModelBuilder::parseInclude(const XMLElement& elem, const android::String8& path)
{
const char* fileName = elem.Attribute("file");
if (fileName == NULL) {
@@ -245,9 +248,9 @@
return reinterpret_cast<TaskCase*>(parseTestDescriptionXml(incFile, true));
}
-bool ModelBuilder::parseAttributes(const TiXmlElement& elem, TaskGeneric& task)
+bool ModelBuilder::parseAttributes(const XMLElement& elem, TaskGeneric& task)
{
- const TiXmlAttribute* attr = elem.FirstAttribute();
+ const XMLAttribute* attr = elem.FirstAttribute();
while (1) {
if (attr == NULL) {
break;
diff --git a/suite/audio_quality/test/Android.mk b/suite/audio_quality/test/Android.mk
index 5af29f0..7a84802 100644
--- a/suite/audio_quality/test/Android.mk
+++ b/suite/audio_quality/test/Android.mk
@@ -22,15 +22,13 @@
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../lib/include \
$(LOCAL_PATH)/../lib/src \
- external/tinyalsa/include/ \
- libcore/include \
LOCAL_STATIC_LIBRARIES := \
libutils \
liblog \
libcutils \
libtinyalsa \
- libtinyxml \
+ libtinyxml2 \
# need to keep everything in libcts_.. Otherwise, linker will drop some
# functions and linker error happens