* net-failed.lst : added a list of tests that fail on dot net
authorAndrew Skiba <andrews@mono-cvs.ximian.com>
Mon, 30 May 2005 08:39:31 +0000 (08:39 -0000)
committerAndrew Skiba <andrews@mono-cvs.ximian.com>
Mon, 30 May 2005 08:39:31 +0000 (08:39 -0000)
* Makefile : compiles on mono
* xmlconf.cs : commit it before I ruin it with new changes

svn path=/trunk/mcs/; revision=45183

mcs/class/System.XML/Test/System.Xml/W3C/ChangeLog
mcs/class/System.XML/Test/System.Xml/W3C/Makefile
mcs/class/System.XML/Test/System.Xml/W3C/net-failed.lst [new file with mode: 0644]
mcs/class/System.XML/Test/System.Xml/W3C/xmlconf.cs

index e3a1f3822eb0f7e94a62780844cb8237868a8733..c631932c317b9771f06a5980af3ceb838c483b01 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-30  Andrew Skiba  <andrews@mainsoft.com>
+
+       * net-failed.lst : added a list of tests that fail on dot net
+       * Makefile : compiles on mono
+       * xmlconf.cs : commit it before I ruin it with new changes
+
 2005-05-30  Andrew Skiba  <andrews@mainsoft.com>
 
        * xmlconf.cs : added. Compiles and runs on dot net, still misses many features.
index 68920d67642267d72413940fa601e2778b942971..737adbdfeefac76a0d46bfce7b9b1f360f08ca24 100644 (file)
@@ -1,7 +1,15 @@
+.SUFFIXES: .cs .exe
+\r
+RUNTIME=mono\r
+CSCOMPILE=mcs\r
 TEST_ARCHIVE=xmlts20031210.zip\r
 TEST_CATALOG=xmlconf/xmlconf.xml\r
+TEST_PROG=xmlconf.exe\r
+\r
+test: $(TEST_PROG)\r
 \r
-all:\r
+run-test: test\r
+       $(RUNTIME) $(TEST_PROG)\r
 \r
 test_archive: $(TEST_ARCHIVE)\r
 \r
@@ -12,3 +20,7 @@ $(TEST_ARCHIVE):
 \r
 $(TEST_CATALOG): $(TEST_ARCHIVE)\r
        unzip -un $(TEST_ARCHIVE)\r
+\r
+.cs.exe :
+       $(CSCOMPILE) $<
+
diff --git a/mcs/class/System.XML/Test/System.Xml/W3C/net-failed.lst b/mcs/class/System.XML/Test/System.Xml/W3C/net-failed.lst
new file mode 100644 (file)
index 0000000..e5e835b
--- /dev/null
@@ -0,0 +1,197 @@
+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
index 0128f2ff331b6d5a2783cbb977271f7c7429eb1f..91973ec5857e0c4ee8d760bb3e52beb4633c66d5 100644 (file)
@@ -6,29 +6,24 @@ using System.ComponentModel;
 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
@@ -52,13 +47,6 @@ namespace XmlConfTest {
                        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
@@ -80,23 +68,70 @@ namespace XmlConfTest {
                        }\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
@@ -109,9 +144,18 @@ namespace XmlConfTest {
                        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
@@ -122,11 +166,22 @@ namespace XmlConfTest {
                                                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
@@ -168,7 +223,7 @@ namespace XmlConfTest {
                        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
@@ -176,12 +231,32 @@ namespace XmlConfTest {
 \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