Changeset 769 for trunk/src/testlib/qtestxmlstreamer.cpp
- Timestamp:
- Aug 2, 2010, 9:27:30 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.3 (added) merged: 768 /branches/vendor/nokia/qt/current merged: 767 /branches/vendor/nokia/qt/4.6.2 removed
- Property svn:mergeinfo changed
-
trunk/src/testlib/qtestxmlstreamer.cpp
r651 r769 112 112 QXmlTestLogger::xmlCdata(&cdataDesc, element->attributeValue(QTest::AI_Description)); 113 113 114 QTest::qt_asprintf(formatted, "<Message type=\"%s\" %s=\"%s\" %s=\"%s\">\n <Description><![CDATA[%s]]></Description>\n</Message>\n", 114 QTestCharBuffer tagbuf; 115 if (element->attribute(QTest::AI_Tag)) { 116 QTestCharBuffer cdataTag; 117 QXmlTestLogger::xmlCdata(&cdataTag, element->attributeValue(QTest::AI_Tag)); 118 QTest::qt_asprintf(&tagbuf, " <DataTag><![CDATA[%s]]></DataTag>\n", cdataTag.constData()); 119 } 120 121 QTest::qt_asprintf(formatted, "<Message type=\"%s\" %s=\"%s\" %s=\"%s\">\n%s <Description><![CDATA[%s]]></Description>\n</Message>\n", 115 122 element->attributeValue(QTest::AI_Type), 116 123 element->attributeName(QTest::AI_File), … … 118 125 element->attributeName(QTest::AI_Line), 119 126 element->attributeValue(QTest::AI_Line), 127 tagbuf.constData(), 120 128 cdataDesc.constData()); 121 129 break; … … 150 158 151 159 if (element->elementType() == QTest::LET_TestCase) { 152 QTest::qt_asprintf(formatted, "</TestFunction>\n"); 160 bool failed = false; 161 for (QTestElement* child = element->childElements(); child; child = child->nextElement()) { 162 if ( child->elementType() == QTest::LET_Failure 163 && child->attribute(QTest::AI_Result) 164 && ( !strcmp(child->attributeValue(QTest::AI_Result), "fail") 165 || !strcmp(child->attributeValue(QTest::AI_Result), "xpass")) 166 ) 167 { 168 failed = true; 169 break; 170 } 171 } 172 173 // For passing functions, no Incident has been output yet. 174 // For failing functions, we already output one. 175 // Please note: we are outputting "pass" even if there was an xfail etc. 176 // This is by design (arguably bad design, but dangerous to change now!) 177 if (element->attribute(QTest::AI_Result) && !failed) { 178 QTest::qt_asprintf(formatted, "<Incident type=\"pass\" file=\"\" line=\"0\" />\n</TestFunction>\n"); 179 } 180 else { 181 QTest::qt_asprintf(formatted, "</TestFunction>\n"); 182 } 153 183 } else { 154 184 formatted->data()[0] = '\0'; … … 158 188 void QTestXmlStreamer::formatBeforeAttributes(const QTestElement *element, QTestCharBuffer *formatted) const 159 189 { 160 if(!element || !formatted) 190 Q_UNUSED(element); 191 if (!formatted) 161 192 return; 162 193 163 if (element->elementType() == QTest::LET_TestCase && element->attribute(QTest::AI_Result)){ 164 QTestCharBuffer buf; 165 QTestCharBuffer quotedFile; 166 QXmlTestLogger::xmlQuote("edFile, element->attributeValue(QTest::AI_File)); 167 168 QTest::qt_asprintf(&buf, "%s=\"%s\" %s=\"%s\"", 169 element->attributeName(QTest::AI_File), 170 quotedFile.constData(), 171 element->attributeName(QTest::AI_Line), 172 element->attributeValue(QTest::AI_Line)); 173 174 if( !element->childElements() ) { 175 QTest::qt_asprintf(formatted, "<Incident type=\"%s\" %s/>\n", 176 element->attributeValue(QTest::AI_Result), buf.constData()); 177 } else { 178 formatted->data()[0] = '\0'; 179 } 180 } else { 181 formatted->data()[0] = '\0'; 182 } 194 formatted->data()[0] = '\0'; 183 195 } 184 196
Note:
See TracChangeset
for help on using the changeset viewer.