/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the autotests of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 as published by the Free Software ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include "Global.h" #include "TestBaseLine.h" #include "TestGroup.h" #include "XSDTestSuiteHandler.h" #include "XSDTSTestCase.h" using namespace QPatternistSDK; extern QNetworkAccessManager s_networkManager; XSDTestSuiteHandler::XSDTestSuiteHandler(const QUrl &catalogFile) : m_ts(0) , m_catalogFile(catalogFile) , m_inSchemaTest(false) , m_inInstanceTest(false) , m_inTestGroup(false) , m_inDescription(false) , m_schemaBlacklisted(false) , m_counter(0) { Q_ASSERT(!m_catalogFile.isRelative()); m_ts = new TestSuite(); m_topLevelGroup = new TestGroup(m_ts); m_topLevelGroup->setTitle("XML Schema Test Suite"); m_ts->appendChild(m_topLevelGroup); // exclude these test cases, as they break our current state machine m_blackList << QLatin1String("addB099") << QLatin1String("addB118") << QLatin1String("elemJ003") << QLatin1String("elemJ011") << QLatin1String("elemZ004") << QLatin1String("elemZ020") << QLatin1String("groupH021v") << QLatin1String("groupJ009v") << QLatin1String("name00101m2") << QLatin1String("schL5") << QLatin1String("ste110") << QLatin1String("stZ007") << QLatin1String("stZ047") << QLatin1String("stZ055") << QLatin1String("addB049") << QLatin1String("addB068") << QLatin1String("addB078") << QLatin1String("addB078A") << QLatin1String("addB078B") << QLatin1String("addB167") << QLatin1String("addB191") << QLatin1String("isDefault060_2") << QLatin1String("isDefault069") << QLatin1String("annotB025") << QLatin1String("base64Binary_enumeration003_1321") << QLatin1String("anyURI_a001_1336") << QLatin1String("anyURI_a001_1336") << QLatin1String("anyURI_a003_1338") << QLatin1String("anyURI_a004_1339") << QLatin1String("anyURI_b004_1354") << QLatin1String("anyURI_b004_1354") << QLatin1String("anyURI_b006_1356") << QLatin1String("QName_length001_1357") << QLatin1String("QName_length003_1359") << QLatin1String("QName_minLength003_1362") << QLatin1String("QName_maxLength001_1364") << QLatin1String("NOTATION_length001_1372") << QLatin1String("NOTATION_length003_1374") << QLatin1String("NOTATION_minLength003_1377") << QLatin1String("NOTATION_maxLength001_1379") << QLatin1String("hexBinary003_2069") << QLatin1String("QName009_2092") << QLatin1String("dtZ107447_a_2245") << QLatin1String("elemE001") << QLatin1String("elemE002") << QLatin1String("elemE003") << QLatin1String("elemE004") << QLatin1String("elemE005") << QLatin1String("elemT026") << QLatin1String("elemT027") << QLatin1String("elemT028") << QLatin1String("elemT029") << QLatin1String("elemT054") << QLatin1String("elemT055") << QLatin1String("elemT056") << QLatin1String("elemT057") << QLatin1String("elemZ006") << QLatin1String("elemZ007") << QLatin1String("elemZ026") << QLatin1String("elemZ027_c") << QLatin1String("elemZ028c") << QLatin1String("elemZ028d") << QLatin1String("elemZ028f1") << QLatin1String("elemZ028f1") << QLatin1String("elemZ028f2") << QLatin1String("elemZ028f2") << QLatin1String("elemZ028f3") << QLatin1String("elemZ028f3") << QLatin1String("elemZ031") << QLatin1String("errF001") << QLatin1String("idC019") << QLatin1String("idL100") << QLatin1String("idZ011") << QLatin1String("idZ015") << QLatin1String("mgO013") << QLatin1String("particlesA012") << QLatin1String("particlesA013") << QLatin1String("particlesA014") << QLatin1String("particlesA015") << QLatin1String("particlesHa161") << QLatin1String("particlesHb008") << QLatin1String("particlesHb011") << QLatin1String("particlesIe003") << QLatin1String("particlesIg003") << QLatin1String("particlesIg004") << QLatin1String("particlesJb003") << QLatin1String("particlesJd003") << QLatin1String("particlesJf003") << QLatin1String("particlesJk003") << QLatin1String("particlesOb001") << QLatin1String("particlesOb002") << QLatin1String("particlesOb004") << QLatin1String("particlesOb008") << QLatin1String("particlesOb009") << QLatin1String("particlesOb013") << QLatin1String("particlesOb018") << QLatin1String("particlesQ005") << QLatin1String("particlesS002") << QLatin1String("particlesT002") << QLatin1String("particlesT009") << QLatin1String("particlesT014") << QLatin1String("particlesV001") << QLatin1String("particlesV002") << QLatin1String("particlesV020") << QLatin1String("particlesZ001") << QLatin1String("particlesZ005") << QLatin1String("particlesZ007") << QLatin1String("particlesZ023") << QLatin1String("particlesZ024") << QLatin1String("particlesZ026") << QLatin1String("particlesZ028") << QLatin1String("particlesZ033_c") << QLatin1String("particlesZ033_d") << QLatin1String("particlesZ033_e") << QLatin1String("particlesZ033_f") << QLatin1String("particlesZ033_g") << QLatin1String("particlesZ034_a1") << QLatin1String("particlesZ034_a2") << QLatin1String("particlesZ034_a3") << QLatin1String("particlesZ034_b") << QLatin1String("particlesZ035_a") << QLatin1String("particlesZ035_b") << QLatin1String("particlesZ036_a") << QLatin1String("particlesZ036_b1") << QLatin1String("particlesZ036_b2") << QLatin1String("particlesZ036_c") /* << QLatin1String("reC65") << QLatin1String("reC66") << QLatin1String("reC67") << QLatin1String("reC68") << QLatin1String("reF58") << QLatin1String("reG50") << QLatin1String("reJ11") << QLatin1String("reJ13") << QLatin1String("reJ19") << QLatin1String("reJ21") << QLatin1String("reJ23") << QLatin1String("reJ25") << QLatin1String("reJ29") << QLatin1String("reJ31") << QLatin1String("reJ33") << QLatin1String("reJ35") << QLatin1String("reJ61") << QLatin1String("reJ69") << QLatin1String("reJ75") << QLatin1String("reJ77") << QLatin1String("reL98") << QLatin1String("reL99") << QLatin1String("reM98") << QLatin1String("reN99") << QLatin1String("reS21") << QLatin1String("reS42") << QLatin1String("reT63") << QLatin1String("reT84") << QLatin1String("reDG2") << QLatin1String("RegexTest_9") << QLatin1String("RegexTest_11") << QLatin1String("RegexTest_14") << QLatin1String("RegexTest_15") << QLatin1String("RegexTest_16") << QLatin1String("RegexTest_17") << QLatin1String("RegexTest_23") << QLatin1String("RegexTest_24") << QLatin1String("RegexTest_25") << QLatin1String("RegexTest_26") << QLatin1String("RegexTest_27") << QLatin1String("RegexTest_28") << QLatin1String("RegexTest_30") << QLatin1String("RegexTest_30") << QLatin1String("RegexTest_33") << QLatin1String("RegexTest_34") << QLatin1String("RegexTest_34") << QLatin1String("RegexTest_43") << QLatin1String("RegexTest_44") << QLatin1String("RegexTest_45") << QLatin1String("RegexTest_46") << QLatin1String("RegexTest_47") << QLatin1String("RegexTest_48") << QLatin1String("RegexTest_49") << QLatin1String("RegexTest_50") << QLatin1String("RegexTest_51") << QLatin1String("RegexTest_52") << QLatin1String("RegexTest_53") << QLatin1String("RegexTest_54") << QLatin1String("RegexTest_55") << QLatin1String("RegexTest_56") << QLatin1String("RegexTest_57") << QLatin1String("RegexTest_57") << QLatin1String("RegexTest_58") << QLatin1String("RegexTest_58") << QLatin1String("RegexTest_65") << QLatin1String("RegexTest_113") << QLatin1String("RegexTest_116") << QLatin1String("RegexTest_119") << QLatin1String("RegexTest_120") << QLatin1String("RegexTest_121") << QLatin1String("RegexTest_141") << QLatin1String("RegexTest_142") << QLatin1String("RegexTest_143") << QLatin1String("RegexTest_145") << QLatin1String("RegexTest_146") << QLatin1String("RegexTest_147") << QLatin1String("RegexTest_148") << QLatin1String("RegexTest_149") << QLatin1String("RegexTest_150") << QLatin1String("RegexTest_151") << QLatin1String("RegexTest_152") << QLatin1String("RegexTest_154") << QLatin1String("RegexTest_155") << QLatin1String("RegexTest_156") << QLatin1String("RegexTest_157") << QLatin1String("RegexTest_158") << QLatin1String("RegexTest_163") << QLatin1String("RegexTest_164") << QLatin1String("RegexTest_165") << QLatin1String("RegexTest_166") << QLatin1String("RegexTest_167") << QLatin1String("RegexTest_168") << QLatin1String("RegexTest_169") << QLatin1String("RegexTest_170") << QLatin1String("RegexTest_171") << QLatin1String("RegexTest_172") << QLatin1String("RegexTest_173") << QLatin1String("RegexTest_174") << QLatin1String("RegexTest_178") << QLatin1String("RegexTest_194") << QLatin1String("RegexTest_194") << QLatin1String("RegexTest_195") << QLatin1String("RegexTest_195") << QLatin1String("RegexTest_196") << QLatin1String("RegexTest_196") << QLatin1String("RegexTest_197") << QLatin1String("RegexTest_198") << QLatin1String("RegexTest_199") << QLatin1String("RegexTest_200") << QLatin1String("RegexTest_200") << QLatin1String("RegexTest_201") << QLatin1String("RegexTest_201") << QLatin1String("RegexTest_202") << QLatin1String("RegexTest_202") << QLatin1String("RegexTest_203") << QLatin1String("RegexTest_204") << QLatin1String("RegexTest_205") << QLatin1String("RegexTest_206") << QLatin1String("RegexTest_207") << QLatin1String("RegexTest_208") << QLatin1String("RegexTest_209") << QLatin1String("RegexTest_209") << QLatin1String("RegexTest_210") << QLatin1String("RegexTest_210") << QLatin1String("RegexTest_211") << QLatin1String("RegexTest_211") << QLatin1String("RegexTest_212") << QLatin1String("RegexTest_213") << QLatin1String("RegexTest_214") << QLatin1String("RegexTest_215") << QLatin1String("RegexTest_216") << QLatin1String("RegexTest_217") << QLatin1String("RegexTest_218") << QLatin1String("RegexTest_220") << QLatin1String("RegexTest_221") << QLatin1String("RegexTest_222") << QLatin1String("RegexTest_226") << QLatin1String("RegexTest_230") << QLatin1String("RegexTest_232") << QLatin1String("RegexTest_233") << QLatin1String("RegexTest_294") << QLatin1String("RegexTest_294") << QLatin1String("RegexTest_295") << QLatin1String("RegexTest_295") << QLatin1String("RegexTest_299") << QLatin1String("RegexTest_300") << QLatin1String("RegexTest_301") << QLatin1String("RegexTest_302") << QLatin1String("RegexTest_303") << QLatin1String("RegexTest_304") << QLatin1String("RegexTest_305") << QLatin1String("RegexTest_306") << QLatin1String("RegexTest_307") << QLatin1String("RegexTest_308") << QLatin1String("RegexTest_309") << QLatin1String("RegexTest_310") << QLatin1String("RegexTest_311") << QLatin1String("RegexTest_312") << QLatin1String("RegexTest_313") << QLatin1String("RegexTest_314") << QLatin1String("RegexTest_315") << QLatin1String("RegexTest_315") << QLatin1String("RegexTest_316") << QLatin1String("RegexTest_316") << QLatin1String("RegexTest_317") << QLatin1String("RegexTest_317") << QLatin1String("RegexTest_440") << QLatin1String("RegexTest_441") << QLatin1String("RegexTest_442") << QLatin1String("RegexTest_443") << QLatin1String("RegexTest_448") << QLatin1String("RegexTest_449") << QLatin1String("RegexTest_450") << QLatin1String("RegexTest_451") << QLatin1String("RegexTest_458") << QLatin1String("RegexTest_464") << QLatin1String("RegexTest_464") << QLatin1String("RegexTest_465") << QLatin1String("RegexTest_469") << QLatin1String("RegexTest_470") << QLatin1String("RegexTest_471") << QLatin1String("RegexTest_472") << QLatin1String("RegexTest_473") << QLatin1String("RegexTest_477") << QLatin1String("RegexTest_478") << QLatin1String("RegexTest_478") << QLatin1String("RegexTest_479") << QLatin1String("RegexTest_480") << QLatin1String("RegexTest_481") << QLatin1String("RegexTest_482") << QLatin1String("RegexTest_482") << QLatin1String("RegexTest_483") << QLatin1String("RegexTest_483") << QLatin1String("RegexTest_484") << QLatin1String("RegexTest_487") << QLatin1String("RegexTest_516") << QLatin1String("RegexTest_516") << QLatin1String("RegexTest_517") << QLatin1String("RegexTest_517") << QLatin1String("RegexTest_518") << QLatin1String("RegexTest_518") << QLatin1String("RegexTest_519") << QLatin1String("RegexTest_519") << QLatin1String("RegexTest_521") << QLatin1String("RegexTest_523") << QLatin1String("RegexTest_524") << QLatin1String("RegexTest_524") << QLatin1String("RegexTest_586") << QLatin1String("RegexTest_587") << QLatin1String("RegexTest_592") << QLatin1String("RegexTest_593") << QLatin1String("RegexTest_594") << QLatin1String("RegexTest_595") << QLatin1String("RegexTest_596") << QLatin1String("RegexTest_597") << QLatin1String("RegexTest_598") << QLatin1String("RegexTest_599") << QLatin1String("RegexTest_600") << QLatin1String("RegexTest_601") << QLatin1String("RegexTest_602") << QLatin1String("RegexTest_603") << QLatin1String("RegexTest_604") << QLatin1String("RegexTest_605") << QLatin1String("RegexTest_648") << QLatin1String("RegexTest_655") << QLatin1String("RegexTest_688") << QLatin1String("RegexTest_696") << QLatin1String("RegexTest_697") << QLatin1String("RegexTest_698") << QLatin1String("RegexTest_700") << QLatin1String("RegexTest_701") << QLatin1String("RegexTest_702") << QLatin1String("RegexTest_703") << QLatin1String("RegexTest_704") << QLatin1String("RegexTest_705") << QLatin1String("RegexTest_706") << QLatin1String("RegexTest_707") << QLatin1String("RegexTest_717") << QLatin1String("RegexTest_718") << QLatin1String("RegexTest_719") << QLatin1String("RegexTest_724") << QLatin1String("RegexTest_725") << QLatin1String("RegexTest_726") << QLatin1String("RegexTest_727") << QLatin1String("RegexTest_728") << QLatin1String("RegexTest_729") << QLatin1String("RegexTest_730") << QLatin1String("RegexTest_731") << QLatin1String("RegexTest_732") << QLatin1String("RegexTest_733") << QLatin1String("RegexTest_743") << QLatin1String("RegexTest_755") << QLatin1String("RegexTest_756") << QLatin1String("RegexTest_761") << QLatin1String("RegexTest_762") << QLatin1String("RegexTest_781") << QLatin1String("RegexTest_782") << QLatin1String("RegexTest_783") << QLatin1String("RegexTest_790") << QLatin1String("RegexTest_791") << QLatin1String("RegexTest_824") << QLatin1String("RegexTest_826") << QLatin1String("RegexTest_827") << QLatin1String("RegexTest_836") << QLatin1String("RegexTest_837") << QLatin1String("RegexTest_841") << QLatin1String("RegexTest_842") << QLatin1String("RegexTest_843") << QLatin1String("RegexTest_844") << QLatin1String("RegexTest_845") << QLatin1String("RegexTest_846") << QLatin1String("RegexTest_847") << QLatin1String("RegexTest_848") << QLatin1String("RegexTest_851") << QLatin1String("RegexTest_852") << QLatin1String("RegexTest_853") << QLatin1String("RegexTest_854") << QLatin1String("RegexTest_855") << QLatin1String("RegexTest_856") << QLatin1String("RegexTest_857") << QLatin1String("RegexTest_861") << QLatin1String("RegexTest_862") << QLatin1String("RegexTest_863") << QLatin1String("RegexTest_864") << QLatin1String("RegexTest_865") << QLatin1String("RegexTest_866") << QLatin1String("RegexTest_870") << QLatin1String("RegexTest_879") << QLatin1String("RegexTest_880") << QLatin1String("RegexTest_888") << QLatin1String("RegexTest_889") << QLatin1String("RegexTest_890") << QLatin1String("RegexTest_891") << QLatin1String("RegexTest_892") << QLatin1String("RegexTest_893") << QLatin1String("RegexTest_894") << QLatin1String("RegexTest_895") << QLatin1String("RegexTest_896") << QLatin1String("RegexTest_897") << QLatin1String("RegexTest_898") << QLatin1String("RegexTest_899") << QLatin1String("RegexTest_900") << QLatin1String("RegexTest_901") << QLatin1String("RegexTest_902") << QLatin1String("RegexTest_903") << QLatin1String("RegexTest_904") << QLatin1String("RegexTest_905") << QLatin1String("RegexTest_906") << QLatin1String("RegexTest_907") << QLatin1String("RegexTest_908") << QLatin1String("RegexTest_909") << QLatin1String("RegexTest_910") << QLatin1String("RegexTest_911") << QLatin1String("RegexTest_912") << QLatin1String("RegexTest_913") << QLatin1String("RegexTest_914") << QLatin1String("RegexTest_915") << QLatin1String("RegexTest_916") << QLatin1String("RegexTest_917") << QLatin1String("RegexTest_918") << QLatin1String("RegexTest_919") << QLatin1String("RegexTest_920") << QLatin1String("RegexTest_921") << QLatin1String("RegexTest_922") << QLatin1String("RegexTest_923") << QLatin1String("RegexTest_924") << QLatin1String("RegexTest_925") << QLatin1String("RegexTest_926") << QLatin1String("RegexTest_928") << QLatin1String("RegexTest_929") << QLatin1String("RegexTest_930") << QLatin1String("RegexTest_936") << QLatin1String("RegexTest_937") << QLatin1String("RegexTest_938") << QLatin1String("RegexTest_939") << QLatin1String("RegexTest_940") << QLatin1String("RegexTest_941") << QLatin1String("RegexTest_942") << QLatin1String("RegexTest_943") << QLatin1String("RegexTest_944") << QLatin1String("RegexTest_945") << QLatin1String("RegexTest_946") << QLatin1String("RegexTest_949") << QLatin1String("RegexTest_950") << QLatin1String("RegexTest_951") << QLatin1String("RegexTest_952") << QLatin1String("RegexTest_953") << QLatin1String("RegexTest_954") << QLatin1String("RegexTest_955") << QLatin1String("RegexTest_956") << QLatin1String("RegexTest_957") << QLatin1String("RegexTest_958") << QLatin1String("RegexTest_959") << QLatin1String("RegexTest_960") << QLatin1String("RegexTest_961") << QLatin1String("RegexTest_962") << QLatin1String("RegexTest_963") << QLatin1String("RegexTest_964") << QLatin1String("RegexTest_976") << QLatin1String("RegexTest_977") << QLatin1String("RegexTest_988") << QLatin1String("RegexTest_989") << QLatin1String("RegexTest_990") << QLatin1String("RegexTest_991") << QLatin1String("RegexTest_994") << QLatin1String("RegexTest_995") << QLatin1String("RegexTest_996") << QLatin1String("RegexTest_997") << QLatin1String("RegexTest_1000") << QLatin1String("RegexTest_1001") << QLatin1String("RegexTest_1002") << QLatin1String("RegexTest_1003") << QLatin1String("RegexTest_1004") << QLatin1String("RegexTest_1007") << QLatin1String("RegexTest_1008") << QLatin1String("RegexTest_1009") << QLatin1String("RegexTest_1010") << QLatin1String("RegexTest_1011") << QLatin1String("RegexTest_1012") << QLatin1String("RegexTest_1013") << QLatin1String("RegexTest_1014") << QLatin1String("RegexTest_1015") << QLatin1String("RegexTest_1016") << QLatin1String("RegexTest_1017") << QLatin1String("RegexTest_1018") << QLatin1String("RegexTest_1019") << QLatin1String("RegexTest_1070") << QLatin1String("RegexTest_1071") << QLatin1String("RegexTest_1076") << QLatin1String("RegexTest_1077") << QLatin1String("RegexTest_1078") << QLatin1String("RegexTest_1079") << QLatin1String("RegexTest_1080") << QLatin1String("RegexTest_1081") << QLatin1String("RegexTest_1082") << QLatin1String("RegexTest_1083") << QLatin1String("RegexTest_1084") << QLatin1String("RegexTest_1085") << QLatin1String("RegexTest_1086") << QLatin1String("RegexTest_1087") << QLatin1String("RegexTest_1088") << QLatin1String("RegexTest_1089") << QLatin1String("RegexTest_1132") << QLatin1String("RegexTest_1139") << QLatin1String("RegexTest_1172") << QLatin1String("RegexTest_1180") << QLatin1String("RegexTest_1181") << QLatin1String("RegexTest_1182") << QLatin1String("RegexTest_1184") << QLatin1String("RegexTest_1185") << QLatin1String("RegexTest_1186") << QLatin1String("RegexTest_1187") << QLatin1String("RegexTest_1188") << QLatin1String("RegexTest_1189") << QLatin1String("RegexTest_1190") << QLatin1String("RegexTest_1191") << QLatin1String("RegexTest_1201") << QLatin1String("RegexTest_1202") << QLatin1String("RegexTest_1203") << QLatin1String("RegexTest_1208") << QLatin1String("RegexTest_1209") << QLatin1String("RegexTest_1210") << QLatin1String("RegexTest_1211") << QLatin1String("RegexTest_1212") << QLatin1String("RegexTest_1213") << QLatin1String("RegexTest_1214") << QLatin1String("RegexTest_1215") << QLatin1String("RegexTest_1216") << QLatin1String("RegexTest_1217") << QLatin1String("RegexTest_1227") << QLatin1String("RegexTest_1239") << QLatin1String("RegexTest_1240") << QLatin1String("RegexTest_1245") << QLatin1String("RegexTest_1246") << QLatin1String("RegexTest_1265") << QLatin1String("RegexTest_1266") << QLatin1String("RegexTest_1267") << QLatin1String("RegexTest_1274") << QLatin1String("RegexTest_1275") << QLatin1String("RegexTest_1308") << QLatin1String("RegexTest_1310") << QLatin1String("RegexTest_1311") << QLatin1String("RegexTest_1320") << QLatin1String("RegexTest_1321") << QLatin1String("RegexTest_1322") << QLatin1String("RegexTest_1323") << QLatin1String("RegexTest_1324") << QLatin1String("RegexTest_1325") << QLatin1String("RegexTest_1326") << QLatin1String("RegexTest_1327") << QLatin1String("RegexTest_1328") << QLatin1String("RegexTest_1329") << QLatin1String("RegexTest_1330") << QLatin1String("RegexTest_1331") << QLatin1String("RegexTest_1332") << QLatin1String("RegexTest_1335") << QLatin1String("RegexTest_1336") << QLatin1String("RegexTest_1337") << QLatin1String("RegexTest_1338") << QLatin1String("RegexTest_1339") << QLatin1String("RegexTest_1340") << QLatin1String("RegexTest_1341") << QLatin1String("RegexTest_1345") << QLatin1String("RegexTest_1346") << QLatin1String("RegexTest_1347") << QLatin1String("RegexTest_1348") << QLatin1String("RegexTest_1349") << QLatin1String("RegexTest_1350") << QLatin1String("RegexTest_1354") << QLatin1String("RegexTest_1363") << QLatin1String("RegexTest_1364") << QLatin1String("RegexTest_1365") << QLatin1String("RegexTest_1372") << QLatin1String("RegexTest_1373") << QLatin1String("RegexTest_1374") << QLatin1String("RegexTest_1375") << QLatin1String("RegexTest_1376") << QLatin1String("RegexTest_1377") << QLatin1String("RegexTest_1378") << QLatin1String("RegexTest_1379") << QLatin1String("RegexTest_1380") << QLatin1String("RegexTest_1381") << QLatin1String("RegexTest_1382") << QLatin1String("RegexTest_1383") << QLatin1String("RegexTest_1384") << QLatin1String("RegexTest_1385") << QLatin1String("RegexTest_1386") << QLatin1String("RegexTest_1387") << QLatin1String("RegexTest_1388") << QLatin1String("RegexTest_1389") << QLatin1String("RegexTest_1390") << QLatin1String("RegexTest_1391") << QLatin1String("RegexTest_1392") << QLatin1String("RegexTest_1393") << QLatin1String("RegexTest_1394") << QLatin1String("RegexTest_1395") << QLatin1String("RegexTest_1396") << QLatin1String("RegexTest_1397") << QLatin1String("RegexTest_1398") << QLatin1String("RegexTest_1399") << QLatin1String("RegexTest_1400") << QLatin1String("RegexTest_1401") << QLatin1String("RegexTest_1402") << QLatin1String("RegexTest_1403") << QLatin1String("RegexTest_1404") << QLatin1String("RegexTest_1405") << QLatin1String("RegexTest_1406") << QLatin1String("RegexTest_1407") << QLatin1String("RegexTest_1408") << QLatin1String("RegexTest_1409") << QLatin1String("RegexTest_1410") << QLatin1String("RegexTest_1412") << QLatin1String("RegexTest_1413") << QLatin1String("RegexTest_1414") << QLatin1String("RegexTest_1420") << QLatin1String("RegexTest_1421") << QLatin1String("RegexTest_1422") << QLatin1String("RegexTest_1423") << QLatin1String("RegexTest_1424") << QLatin1String("RegexTest_1425") << QLatin1String("RegexTest_1426") << QLatin1String("RegexTest_1427") << QLatin1String("RegexTest_1428") << QLatin1String("RegexTest_1429") << QLatin1String("RegexTest_1430") << QLatin1String("RegexTest_1433") << QLatin1String("RegexTest_1434") << QLatin1String("RegexTest_1435") << QLatin1String("RegexTest_1436") << QLatin1String("RegexTest_1437") << QLatin1String("RegexTest_1438") << QLatin1String("RegexTest_1439") << QLatin1String("RegexTest_1440") << QLatin1String("RegexTest_1441") << QLatin1String("RegexTest_1442") << QLatin1String("RegexTest_1443") << QLatin1String("RegexTest_1444") << QLatin1String("RegexTest_1445") << QLatin1String("RegexTest_1446") << QLatin1String("RegexTest_1447") << QLatin1String("RegexTest_1448") << QLatin1String("RegexTest_1451") << QLatin1String("RegexTest_1452") << QLatin1String("RegexTest_1453") << QLatin1String("RegexTest_1454") << QLatin1String("RegexTest_1455") << QLatin1String("RegexTest_1456") << QLatin1String("RegexTest_1472") << QLatin1String("RegexTest_1473") << QLatin1String("RegexTest_1474") << QLatin1String("RegexTest_1475") << QLatin1String("RegexTest_1478") << QLatin1String("RegexTest_1479") << QLatin1String("RegexTest_1480") << QLatin1String("RegexTest_1481") << QLatin1String("RegexTest_1484") << QLatin1String("RegexTest_1485") << QLatin1String("RegexTest_1486") << QLatin1String("RegexTest_1487") << QLatin1String("RegexTest_1488") << QLatin1String("RegexTest_1491") << QLatin1String("RegexTest_1492") << QLatin1String("RegexTest_1493") << QLatin1String("RegexTest_1494") << QLatin1String("RegexTest_1495") << QLatin1String("RegexTest_1496") << QLatin1String("RegexTest_1497") << QLatin1String("RegexTest_1498") << QLatin1String("RegexTest_1499") << QLatin1String("RegexTest_1500") << QLatin1String("RegexTest_1501") << QLatin1String("RegexTest_1502") << QLatin1String("RegexTest_1503") << QLatin1String("RegexTest_1543") << QLatin1String("RegexTest_1544") << QLatin1String("reZ001") */ << QLatin1String("schA2") << QLatin1String("schA5") << QLatin1String("schA7") << QLatin1String("schD8") << QLatin1String("schG3") << QLatin1String("schG6") << QLatin1String("schG9") << QLatin1String("schG11") << QLatin1String("schG12") << QLatin1String("schU1") << QLatin1String("schU3") << QLatin1String("schU4") << QLatin1String("schU5") << QLatin1String("schZ004") << QLatin1String("schZ005") << QLatin1String("schZ012_a") << QLatin1String("stZ041") << QLatin1String("wildZ010"); } bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &/*qName*/, const QXmlAttributes &atts) { if(namespaceURI != QString::fromLatin1("http://www.w3.org/XML/2004/xml-schema-test-suite/")) return true; if (localName == QLatin1String("testSet")) { m_currentTestSet = new TestGroup(m_topLevelGroup); Q_ASSERT(m_currentTestSet); m_currentTestSet->setTitle(atts.value("name")); m_topLevelGroup->appendChild(m_currentTestSet); } else if (localName == QLatin1String("testGroup")) { m_currentTestGroup = new TestGroup(m_currentTestSet); Q_ASSERT(m_currentTestGroup); m_currentTestGroup->setTitle(atts.value("name")); m_currentTestSet->appendChild(m_currentTestGroup); m_inTestGroup = true; } else if (localName == QLatin1String("schemaTest")) { if (m_blackList.contains(atts.value("name"))) { m_currentTestCase = 0; m_schemaBlacklisted = true; return true; } m_schemaBlacklisted = false; m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::SchemaTest); Q_ASSERT(m_currentTestCase); m_counter++; m_currentTestCase->setName(QString::number(m_counter) + atts.value("name")); m_currentTestGroup->appendChild(m_currentTestCase); m_currentTestCase->setParent(m_currentTestGroup); m_inSchemaTest = true; } else if (localName == QLatin1String("instanceTest")) { if (m_schemaBlacklisted) { m_currentTestCase = 0; return true; } m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::InstanceTest); Q_ASSERT(m_currentTestCase); m_counter++; m_currentTestCase->setName(QString::number(m_counter) + atts.value("name")); m_currentTestGroup->appendChild(m_currentTestCase); m_inInstanceTest = true; } else if (localName == QLatin1String("schemaDocument") || localName == QLatin1String("instanceDocument")) { if (m_inSchemaTest) { m_currentTestCase->setSchemaUri(QUrl(atts.value("xlink:href"))); if (m_currentSchemaLink.isEmpty()) // we only use the first schema document for validation m_currentSchemaLink = atts.value("xlink:href"); } if (m_inInstanceTest) { m_currentTestCase->setInstanceUri(QUrl(atts.value("xlink:href"))); m_currentTestCase->setSchemaUri(QUrl(m_currentSchemaLink)); } } else if (localName == QLatin1String("expected") && (m_inSchemaTest || m_inInstanceTest)) { TestBaseLine *baseLine = new TestBaseLine(TestBaseLine::SchemaIsValid); if (atts.value("validity") == QLatin1String("valid")) { baseLine->setDetails(QLatin1String("true")); m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:valid")); } else { baseLine->setDetails(QLatin1String("false")); m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:invalid")); } m_currentTestCase->addBaseLine(baseLine); } else if (localName == QLatin1String("documentation") && m_inTestGroup) { m_inDescription = true; } return true; } bool XSDTestSuiteHandler::endElement(const QString &/*namespaceURI*/, const QString &localName, const QString &/*qName*/) { if (localName == QLatin1String("testGroup")) { m_inTestGroup = false; m_currentTestGroup->setDescription(m_documentation); m_documentation.clear(); m_currentSchemaLink.clear(); if (m_currentTestGroup->childCount() == 0) m_currentTestSet->removeLast(); } else if (localName == QLatin1String("schemaTest")) m_inSchemaTest = false; else if (localName == QLatin1String("instanceTest")) m_inInstanceTest = false; else if (localName == QLatin1String("documentation")) m_inDescription = false; return true; } bool XSDTestSuiteHandler::characters(const QString &ch) { if (m_inDescription) m_documentation += ch; return true; } TestSuite *XSDTestSuiteHandler::testSuite() const { return m_ts; } // vim: et:ts=4:sw=4:sts=4