--- /dev/null
+not-wf-sa-144
+not-wf-sa-145
+valid-sa-012
+inv-dtd01
+el05
+inv-not-sa05
+inv-not-sa06
+inv-not-sa07
+inv-not-sa08
+inv-not-sa09
+inv-not-sa10
+inv-not-sa11
+inv-not-sa12
+inv-not-sa13
+attr09
+attr10
+attr11
+attr12
+attr13
+attr14
+attr16
+utf16b
+utf16l
+not-wf-sa03
+o-p01pass1
+o-p01pass3
+o-p03pass1
+o-p04pass1
+o-p05pass1
+o-p10pass1
+o-p14pass1
+o-p15pass1
+o-p16pass1
+o-p16pass2
+o-p16pass3
+o-p18pass1
+o-p22pass1
+o-p22pass2
+o-p22pass3
+o-p23pass1
+o-p23pass2
+o-p23pass3
+o-p23pass4
+o-p24pass1
+o-p24pass2
+o-p24pass3
+o-p24pass4
+o-p25pass1
+o-p25pass2
+o-p26pass1
+o-p27pass1
+o-p27pass2
+o-p27pass3
+o-p27pass4
+o-p32pass1
+o-p32pass2
+o-p39pass1
+o-p39pass2
+o-p40pass1
+o-p40pass2
+o-p40pass3
+o-p40pass4
+o-p41pass1
+o-p41pass2
+o-p42pass1
+o-p42pass2
+o-p44pass1
+o-p44pass2
+o-p44pass3
+o-p44pass4
+o-p44pass5
+o-p66pass1
+o-p66fail5
+o-p66fail6
+ibm-invalid-P32-ibm32i03.xml
+ibm-invalid-P51-ibm51i03.xml
+ibm-invalid-P60-ibm60i03.xml
+ibm-invalid-P60-ibm60i04.xml
+ibm-not-wf-p28a-ibm28an01.xml
+ibm-not-wf-P32-ibm32n09.xml
+ibm-not-wf-P41-ibm41n13.xml
+ibm-not-wf-P41-ibm41n14.xml
+ibm-not-wf-P66-ibm66n12.xml
+ibm-not-wf-P66-ibm66n13.xml
+ibm-not-wf-P66-ibm66n14.xml
+ibm-not-wf-P66-ibm66n15.xml
+ibm-not-wf-P68-ibm68n06.xml
+ibm-valid-P12-ibm12v03.xml
+ibm-valid-P13-ibm13v01.xml
+ibm-1-1-valid-P46-ibm46i01.xml
+ibm-1-1-valid-P46-ibm46i02.xml
+ibm-1-1-valid-P02-ibm02v01.xml
+ibm-1-1-valid-P02-ibm02v02.xml
+ibm-1-1-valid-P02-ibm02v03.xml
+ibm-1-1-valid-P02-ibm02v04.xml
+ibm-1-1-valid-P02-ibm02v05.xml
+ibm-1-1-valid-P02-ibm02v06.xml
+ibm-1-1-valid-P03-ibm03v01.xml
+ibm-1-1-valid-P03-ibm03v02.xml
+ibm-1-1-valid-P03-ibm03v03.xml
+ibm-1-1-valid-P03-ibm03v04.xml
+ibm-1-1-valid-P03-ibm03v05.xml
+ibm-1-1-valid-P03-ibm03v06.xml
+ibm-1-1-valid-P03-ibm03v07.xml
+ibm-1-1-valid-P03-ibm03v08.xml
+ibm-1-1-valid-P03-ibm03v09.xml
+ibm-1-1-valid-P04-ibm04v01.xml
+ibm-1-1-valid-P04-ibm04av01.xml
+ibm-1-1-valid-P05-ibm05v01.xml
+ibm-1-1-valid-P05-ibm05v02.xml
+ibm-1-1-valid-P05-ibm05v03.xml
+ibm-1-1-valid-P05-ibm05v04.xml
+ibm-1-1-valid-P05-ibm05v05.xml
+ibm-1-1-valid-P047-ibm07v01.xml
+ibm-1-1-valid-P77-ibm77v01.xml
+ibm-1-1-valid-P77-ibm77v02.xml
+ibm-1-1-valid-P77-ibm77v03.xml
+ibm-1-1-valid-P77-ibm77v04.xml
+ibm-1-1-valid-P77-ibm77v05.xml
+ibm-1-1-valid-P77-ibm77v06.xml
+ibm-1-1-valid-P77-ibm77v07.xml
+ibm-1-1-valid-P77-ibm77v08.xml
+ibm-1-1-valid-P77-ibm77v09.xml
+ibm-1-1-valid-P77-ibm77v10.xml
+ibm-1-1-valid-P77-ibm77v11.xml
+ibm-1-1-valid-P77-ibm77v12.xml
+ibm-1-1-valid-P77-ibm77v13.xml
+ibm-1-1-valid-P77-ibm77v14.xml
+ibm-1-1-valid-P77-ibm77v15.xml
+ibm-1-1-valid-P77-ibm77v16.xml
+ibm-1-1-valid-P77-ibm77v17.xml
+ibm-1-1-valid-P77-ibm77v18.xml
+ibm-1-1-valid-P77-ibm77v19.xml
+ibm-1-1-valid-P77-ibm77v20.xml
+ibm-1-1-valid-P77-ibm77v21.xml
+ibm-1-1-valid-P77-ibm77v22.xml
+ibm-1-1-valid-P77-ibm77v23.xml
+ibm-1-1-valid-P77-ibm77v24.xml
+ibm-1-1-valid-P77-ibm77v25.xml
+ibm-1-1-valid-P77-ibm77v26.xml
+ibm-1-1-valid-P77-ibm77v27.xml
+ibm-1-1-valid-P77-ibm77v28.xml
+ibm-1-1-valid-P77-ibm77v29.xml
+ibm-1-1-valid-P77-ibm77v30.xml
+rmt-e2e-2a
+rmt-e2e-2b
+rmt-e2e-9a
+rmt-e2e-9b
+rmt-e2e-20
+rmt-e2e-27
+rmt-e2e-50
+rmt-001
+rmt-002
+rmt-006
+rmt-007
+rmt-015
+rmt-017
+rmt-018
+rmt-023
+rmt-025
+rmt-027
+rmt-029
+rmt-031
+rmt-033
+rmt-035
+rmt-037
+rmt-042
+rmt-043
+rmt-045
+rmt-047
+rmt-049
+rmt-051
+rmt-053
+rmt-054
+rmt-ns10-011
+rmt-ns10-012
+rmt-ns10-017
+rmt-ns10-018
+rmt-ns10-019
+rmt-ns10-020
+rmt-ns10-021
+rmt-ns10-022
+rmt-ns10-024
+rmt-ns10-027
+rmt-ns10-028
+rmt-ns10-030
+rmt-ns10-034
+rmt-ns10-037
+rmt-ns10-038
+rmt-ns10-039
+rmt-ns10-040
+rmt-ns10-041
+rmt-ns11-001
+rmt-ns11-002
+rmt-ns11-003
+rmt-ns11-004
+rmt-ns11-006
using System.Reflection;\r
\r
namespace XmlConfTest {\r
- class CommandLineOptionAttribute:Attribute{\r
- char _short;\r
- string _long; //FIXME: use long form, too\r
- public CommandLineOptionAttribute (char a_short, string a_long):base() {\r
- _short = a_short;\r
- _long = a_long;\r
- }\r
- \r
- public CommandLineOptionAttribute (char a_short):this (a_short, null) {\r
- }\r
+ class XmlConfTest {\r
+ \r
+ #region Command Line Options Handling\r
\r
- public override string ToString() {\r
- return _short.ToString();\r
- }\r
- }\r
+ class CommandLineOptionAttribute:Attribute{\r
+ char _short;\r
+ string _long; //FIXME: use long form, too\r
+ public CommandLineOptionAttribute (char a_short, string a_long):base() {\r
+ _short = a_short;\r
+ _long = a_long;\r
+ }\r
+ \r
+ public CommandLineOptionAttribute (char a_short):this (a_short, null) {\r
+ }\r
\r
- class XmlConfTest {\r
- static int Main (string[] args)\r
- {\r
- if (!new XmlConfTest(args).Run ())\r
- return 1;\r
- else\r
- return 0;\r
+ public override string ToString() {\r
+ return _short.ToString();\r
+ }\r
}\r
\r
static void PrintUsage () {\r
return h;\r
}\r
\r
- string [] _args;\r
-\r
- ArrayList slowTests = new ArrayList ();\r
- [CommandLineOptionAttribute ('s')]\r
- [Description ("do run slow tests (skipped by default)")]\r
- bool runSlow = false;\r
-\r
public bool ParseOptions () {\r
if (_args.Length < 1)\r
return true;\r
}\r
return true;\r
}\r
+ #endregion\r
\r
+ string [] _args;\r
+\r
+ #region statistics fields\r
+ int totalCount = 0;\r
+ int performedCount = 0;\r
+ int passedCount = 0;\r
+ int failedCount = 0;\r
+ int regressionsCount = 0; //failures not listed in knownFailures.lst\r
+ int fixedCount = 0; //tested known to fail that passed\r
+ #endregion\r
+\r
+\r
+ #region test list fields\r
+ ArrayList slowTests = new ArrayList ();\r
+ ArrayList igroredTests = new ArrayList ();\r
+ ArrayList knownFailures = new ArrayList ();\r
+ StreamWriter failedList;\r
+ StreamWriter fixedList;\r
+ #endregion\r
+\r
+ #region command line option fields\r
+ [CommandLineOption ('s')]\r
+ [Description ("do run slow tests (skipped by default)")]\r
+ bool runSlow = false;\r
+\r
+ [CommandLineOption ('i')]\r
+ [Description ("do run tests being ignored by default")]\r
+ bool runIgnored = false;\r
+ #endregion\r
+\r
+ static int Main (string[] args)\r
+ {\r
+ if (!new XmlConfTest(args).Run ())\r
+ return 1;\r
+ else\r
+ return 0;\r
+ }\r
+\r
+ #region ReadStrings ()\r
static void ReadStrings (ArrayList array, string filename)\r
{\r
- if (File.Exists (filename))\r
- using (StreamReader reader = new StreamReader (filename)) {\r
- foreach (string s_ in reader.ReadToEnd ().Split ("\n".ToCharArray ())) {
- string s = s_.Trim ();
- if (s.Length > 0)
- array.Add (s);
- }\r
+ if (!File.Exists (filename))\r
+ return;\r
+\r
+ using (StreamReader reader = new StreamReader (filename)) {\r
+ foreach (string s_ in reader.ReadToEnd ().Split ("\n".ToCharArray ())) {
+ string s = s_.Trim ();
+ if (s.Length > 0)
+ array.Add (s);
}\r
+ }\r
}\r
+ #endregion\r
\r
XmlConfTest (string [] args)\r
{\r
_args = args;\r
+ failedList = new StreamWriter ("failed.lst", false);\r
+ fixedList = new StreamWriter ("fixed.lst", false);\r
ReadStrings (slowTests, "slow.lst");\r
+ ReadStrings (igroredTests, "ignored.lst");\r
+ ReadStrings (knownFailures, "knownFailures.lst");\r
}\r
\r
bool Run ()\r
catalog.Load (@"xmlconf\xmlconf.xml");\r
\r
foreach (XmlElement test in catalog.SelectNodes ("//TEST")) {\r
+ ++totalCount;\r
+\r
string testId = test.GetAttribute ("ID");\r
- if (!runSlow && slowTests.Contains (testId))\r
+ \r
+ if (!runSlow && slowTests.Contains (testId)) {\r
+ continue;\r
+ }\r
+\r
+ if (!runIgnored && igroredTests.Contains (testId)) {\r
continue;\r
+ }\r
+\r
DateTime start = DateTime.Now;\r
res &= PerformTest (test); \r
TimeSpan span = DateTime.Now - start;\r
wr.WriteLine (testId);\r
}\r
}\r
+\r
+ Console.Error.WriteLine ("\n*********");\r
+ Console.Error.WriteLine ("Total:{0}", totalCount);\r
+ Console.Error.WriteLine ("Performed:{0}", performedCount);\r
+ Console.Error.WriteLine ("Passed:{0}", passedCount);\r
+ Console.Error.WriteLine ("Failed:{0}", failedCount);\r
+ Console.Error.WriteLine ("Regressions:{0}", regressionsCount);\r
+ Console.Error.WriteLine ("Fixed:{0}", fixedCount);\r
+\r
return res;\r
}\r
\r
bool PerformTest (XmlElement test)\r
{\r
+ ++performedCount;\r
+\r
string type = test.GetAttribute ("TYPE");\r
if (type == "error")\r
return true; //save time\r
case "not-wf":\r
return !nonValidatingPassed && !validatingPassed;\r
case "error":\r
- return true;\r
+ return true; //readers can optionally accept or reject errors\r
default:\r
throw new ArgumentException ("Bad test type", "type");\r
}\r
\r
void Report (XmlElement test, bool isok, bool nonValidatingPassed, bool validatingPassed)\r
{\r
+ string testId = test.GetAttribute ("ID");\r
+\r
if (isok) {\r
+ ++passedCount;\r
+ if (knownFailures.Contains (testId)) {\r
+ ++fixedCount;\r
+ fixedList.WriteLine (testId);\r
+ }\r
+\r
Console.Error.Write (".");\r
return;\r
}\r
\r
+ ++failedCount;\r
+\r
+ if (knownFailures.Contains (testId)) {\r
+ Console.Error.Write ("k");\r
+ return;\r
+ }\r
+\r
+ ++regressionsCount;\r
Console.Error.Write ("E");\r
+ failedList.Write ("*** Test failed:\t{0}\ttype:{1}\tnonValidatingPassed:{2},validatingPassed:{3}\t",\r
+ testId, test.GetAttribute ("TYPE"), nonValidatingPassed, validatingPassed);\r
+ failedList.WriteLine (test.InnerXml);\r
+ failedList.Flush ();\r
}\r
}\r
}\r