src/testlib/qtestlogger.cpp
branchRCL_3
changeset 14 c0432d11811c
parent 4 3b1da2848fc7
child 30 5dc02b23752f
--- a/src/testlib/qtestlogger.cpp	Wed Apr 21 12:15:23 2010 +0300
+++ b/src/testlib/qtestlogger.cpp	Wed Apr 21 20:15:53 2010 +0300
@@ -211,10 +211,7 @@
         QTest::qt_snprintf(buf, sizeof(buf), "%i", line);
         failureElement->addAttribute(QTest::AI_Line, buf);
         failureElement->addAttribute(QTest::AI_Description, description);
-        const char* tag = QTestResult::currentDataTag();
-        if (tag) {
-            failureElement->addAttribute(QTest::AI_Tag, tag);
-        }
+        addTag(failureElement);
         currentLogElement->addLogElement(failureElement);
     }
 
@@ -277,6 +274,27 @@
     currentLogElement->addLogElement(benchmarkElement);
 }
 
+void QTestLogger::addTag(QTestElement* element)
+{
+    const char *tag = QTestResult::currentDataTag();
+    const char *gtag = QTestResult::currentGlobalDataTag();
+    const char *filler = (tag && gtag) ? ":" : "";
+    if ((!tag || !tag[0]) && (!gtag || !gtag[0])) {
+        return;
+    }
+
+    if (!tag) {
+        tag = "";
+    }
+    if (!gtag) {
+        gtag = "";
+    }
+
+    QTestCharBuffer buf;
+    QTest::qt_asprintf(&buf, "%s%s%s", gtag, filler, tag);
+    element->addAttribute(QTest::AI_Tag, buf.constData());
+}
+
 void QTestLogger::addMessage(MessageTypes type, const char *message, const char *file, int line)
 {
     QTestElement *errorElement = new QTestElement(QTest::LET_Error);
@@ -297,7 +315,7 @@
         break;
     case QAbstractTestLogger::QWarning:
         ++qwarnCounter;
-        typeBuf = "qwarning";
+        typeBuf = "qwarn";
         break;
     case QAbstractTestLogger::QFatal:
         ++qfatalCounter;
@@ -318,6 +336,7 @@
 
     errorElement->addAttribute(QTest::AI_Type, typeBuf);
     errorElement->addAttribute(QTest::AI_Description, message);
+    addTag(errorElement);
 
     if(file)
         errorElement->addAttribute(QTest::AI_File, file);